{"version":3,"sources":["./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/app.component.html","./src/app/controls/Admin/Invoice/add-invoice/add-invoice.component.html","./src/app/controls/Admin/Invoice/invoice-detail/invoice-detail.component.html","./src/app/controls/Admin/Invoice/invoice-list/invoice-list.component.html","./src/app/controls/Admin/Invoice/invoice-list/invoice-view/invoice-view.component.html","./src/app/controls/Admin/broker/add-broker/add-broker.component.html","./src/app/controls/Admin/broker/broker-list/broker-list.component.html","./src/app/controls/Admin/claims/Claim-payment/claim-payment.component.html","./src/app/controls/Admin/claims/claim-line-item/claim-view/claim-view.component.html","./src/app/controls/Admin/claims/claim-payments-list/claim-payments-list.component.html","./src/app/controls/Admin/claims/claims-list/claims-list.component.html","./src/app/controls/Admin/claims/members-without-claims-list/members-without-claims-list.component.html","./src/app/controls/Admin/employee/add-dependent/add-dependent.component.html","./src/app/controls/Admin/employee/completionLink/completed-link/completed-link.component.html","./src/app/controls/Admin/employee/enrollment/enrollment.component.html","./src/app/controls/Admin/groups/add-group/add-edit.component.html","./src/app/controls/Admin/groups/group-list/group-list.component.html","./src/app/controls/Admin/groups/group-list/group-name-renderer/group-name-renderer.html","./src/app/controls/Admin/groups/group-members-family/add-edit-family-members/add-edit-family-members.component.html","./src/app/controls/Admin/groups/group-members-family/group-members-family-list/group-members-family-list.component.html","./src/app/controls/Admin/groups/group-members-family/update-family-members/update-family-members.component.html","./src/app/controls/Admin/groups/group-members/add-claim/add-claim.component.html","./src/app/controls/Admin/groups/group-members/add-member/add-edit-member.component.html","./src/app/controls/Admin/groups/group-members/group-member-list/group-member-list.component.html","./src/app/controls/Admin/groups/group-members/update-member/update-member.component.html","./src/app/controls/Admin/groups/group-members/view-member-hra/view-member-hra.component.html","./src/app/controls/Admin/groups/group-view/group-view.component.html","./src/app/controls/Admin/groups/update-group/update-group.component.html","./src/app/controls/Admin/indemnitybenefits/add-indemnitybenefit/add-edit.component.html","./src/app/controls/Admin/indemnitybenefits/indemnitybenefit-list/indemnitybenefit-list.component.html","./src/app/controls/Admin/indemnitybenefits/update-indemnitybenefit/update-indemnitybenefit.component.html","./src/app/controls/Admin/leads/lead-list/lead-list.component.html","./src/app/controls/Admin/leads/upload-lead/upload-lead.component.html","./src/app/controls/Admin/members/enrollment/enrollment.component.html","./src/app/controls/Admin/members/member-list/member-list.component.html","./src/app/controls/Admin/members/member-list/member-name-renderer/member-name-renderer.html","./src/app/controls/Admin/members/member-view/member-view.component.html","./src/app/controls/Admin/period/add-period/add-period.component.html","./src/app/controls/Admin/period/period-list/period-list.component.html","./src/app/controls/Admin/period/period-schedule-plan/edit-period-schedule-plan/edit-period-schedule-plan.component.html","./src/app/controls/Admin/period/period-schedule-plan/period-schedule-plan.component.html","./src/app/controls/Admin/period/period-schedule-plan/update-period-schedule-plan/update-period-schedule-plan.component.html","./src/app/controls/Admin/period/period-schedule/edit-period-schedule/edit-period-schedule.component.html","./src/app/controls/Admin/period/period-schedule/period-schedule.component.html","./src/app/controls/Admin/period/period-schedule/update-period-schedule/update-period-schedule.component.html","./src/app/controls/Admin/plans/add-plan/add-edit.component.html","./src/app/controls/Admin/plans/plan-list/plan-list.component.html","./src/app/controls/Admin/plans/update-plan/update-plan.component.html","./src/app/controls/Admin/videos/add-video/add-edit.component.html","./src/app/controls/Admin/videos/update-video/update-video.component.html","./src/app/controls/Admin/videos/video-list/video-list.component.html","./src/app/controls/Admin/wellnessprogresses/medicalreceipt-list/medicalreceipt-list.component.html","./src/app/controls/Admin/wellnessprogresses/update-medicalreceipt/update-medicalreceipt.component.html","./src/app/controls/Broker/broker-group-members/broker-group-members.component.html","./src/app/controls/Broker/broker-groups/broker-groups.component.html","./src/app/controls/Members/categories-listing/categories-listing/categories-listing.component.html","./src/app/controls/Members/my-video-list/my-video-list.component.html","./src/app/controls/Members/video-player/video-player/video-player.component.html","./src/app/controls/Members/vimeo-player/vimeo-player.component.html","./src/app/controls/Members/welcome/welcome.component.html","./src/app/controls/Members/wellnessprogresses/add-medicalreceipt/add-medicalreceipt.component.html","./src/app/controls/Members/wellnessprogresses/view-medicalreceipt/view-medicalreceipt.component.html","./src/app/controls/Members/wellnessprogresses/view-wellnessprogress/view-wellnessprogress.component.html","./src/app/controls/Plans/select-plans/select-plans.component.html","./src/app/controls/ThankYou/thankyou.component.html","./src/app/controls/change-password/change-password.component.html","./src/app/controls/enrollment/add-dependent/add-dependent.component.html","./src/app/controls/enrollment/enrollment.component.html","./src/app/controls/enrollment/lead-validate/lead-validate.component.html","./src/app/controls/error-redirection/invalid-enrollment-link/invalid-enrollment-link.component.html","./src/app/controls/forgot-password/forgot-password.component.html","./src/app/controls/hra/hra.component.html","./src/app/controls/login/login.component.html","./src/app/controls/manage-profile/manage-profile.component.html","./src/app/controls/pop-up/popup/popup.component.html","./src/app/controls/register/register.component.html","./src/app/controls/reset-password/reset-password.component.html","./src/app/controls/set-password/set-password.component.html","./src/app/data-driven/dynamic-form-builder/dynamic-form-builder.component.html","./src/app/data-driven/dynamic-form/dynamic-form.component.html","./src/app/shared/controls/alert/alert.component.html","./src/app/shared/controls/captcha/captcha.component.html","./src/app/shared/controls/input-icon/input-icon.ctrl.html","./src/app/shared/controls/layout/copy-right/copyright.ctrl.html","./src/app/shared/controls/layout/footer/footer.ctrl.html","./src/app/shared/controls/layout/hero-image/hero-image.ctrl.html","./src/app/shared/controls/layout/layout-form/layout-form.ctrl.html","./src/app/shared/controls/layout/two-panel/two-panel-layout.ctrl.html","./src/app/shared/controls/modal/modal.component.html","./src/app/shared/controls/nav-menu/nav-menu.component.html","./src/app/shared/controls/popupcomponent/popupcomponent.component.html","./src/app/shared/controls/renderers/button-renderer/btn.renderer.html","./src/app/shared/controls/signature/signature-pad/signature-pad.component.html","./src/app/shared/controls/successAlert/success-message-dialog/success-message-dialog.component.html","./src/get-lead/get-lead.component.html","./src/$_lazy_route_resource lazy namespace object","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/app.routing.ts","./src/app/controls/Admin/Invoice/add-invoice/add-invoice.component.scss","./src/app/controls/Admin/Invoice/add-invoice/add-invoice.component.ts","./src/app/controls/Admin/Invoice/invoice-detail/invoice-detail.component.css","./src/app/controls/Admin/Invoice/invoice-detail/invoice-detail.component.ts","./src/app/controls/Admin/Invoice/invoice-list/invoice-list.component.css","./src/app/controls/Admin/Invoice/invoice-list/invoice-list.component.ts","./src/app/controls/Admin/Invoice/invoice-list/invoice-view/invoice-view.component.scss","./src/app/controls/Admin/Invoice/invoice-list/invoice-view/invoice-view.component.ts","./src/app/controls/Admin/admin.module.ts","./src/app/controls/Admin/broker/add-broker/add-broker.component.scss","./src/app/controls/Admin/broker/add-broker/add-broker.component.ts","./src/app/controls/Admin/broker/broker-list/broker-list.component.scss","./src/app/controls/Admin/broker/broker-list/broker-list.component.ts","./src/app/controls/Admin/claims/Claim-payment/claim-payment.component.scss","./src/app/controls/Admin/claims/Claim-payment/claim-payment.component.ts","./src/app/controls/Admin/claims/claim-line-item/claim-view/claim-view.component.scss","./src/app/controls/Admin/claims/claim-line-item/claim-view/claim-view.component.ts","./src/app/controls/Admin/claims/claim-payments-list/claim-payments-list.component.css","./src/app/controls/Admin/claims/claim-payments-list/claim-payments-list.component.ts","./src/app/controls/Admin/claims/claims-list/claims-list.component.scss","./src/app/controls/Admin/claims/claims-list/claims-list.component.ts","./src/app/controls/Admin/claims/members-without-claims-list/members-without-claims-list.component.scss","./src/app/controls/Admin/claims/members-without-claims-list/members-without-claims-list.component.ts","./src/app/controls/Admin/employee/add-dependent/add-dependent.component.css","./src/app/controls/Admin/employee/add-dependent/add-dependent.component.ts","./src/app/controls/Admin/employee/completionLink/completed-link/completed-link.component.css","./src/app/controls/Admin/employee/completionLink/completed-link/completed-link.component.ts","./src/app/controls/Admin/employee/enrollment/enrollment.component.scss","./src/app/controls/Admin/employee/enrollment/enrollment.component.ts","./src/app/controls/Admin/groups/add-group/add-edit.component.ts","./src/app/controls/Admin/groups/group-list/group-list.component.ts","./src/app/controls/Admin/groups/group-list/group-name-renderer/group-name-renderer.scss","./src/app/controls/Admin/groups/group-list/group-name-renderer/group-name-renderer.ts","./src/app/controls/Admin/groups/group-members-family/add-edit-family-members/add-edit-family-members.component.ts","./src/app/controls/Admin/groups/group-members-family/group-members-family-list/group-members-family-list.component.scss","./src/app/controls/Admin/groups/group-members-family/group-members-family-list/group-members-family-list.component.ts","./src/app/controls/Admin/groups/group-members-family/update-family-members/update-family-members.component.ts","./src/app/controls/Admin/groups/group-members/add-claim/add-claim.component.scss","./src/app/controls/Admin/groups/group-members/add-claim/add-claim.component.ts","./src/app/controls/Admin/groups/group-members/add-member/add-edit-member.component.scss","./src/app/controls/Admin/groups/group-members/add-member/add-edit-member.component.ts","./src/app/controls/Admin/groups/group-members/group-member-list/group-member-list.component.scss","./src/app/controls/Admin/groups/group-members/group-member-list/group-member-list.component.ts","./src/app/controls/Admin/groups/group-members/update-member/update-member.component.ts","./src/app/controls/Admin/groups/group-members/view-member-hra/view-member-hra.component.scss","./src/app/controls/Admin/groups/group-members/view-member-hra/view-member-hra.component.ts","./src/app/controls/Admin/groups/group-view/group-view.component.scss","./src/app/controls/Admin/groups/group-view/group-view.component.ts","./src/app/controls/Admin/groups/update-group/update-group.component.ts","./src/app/controls/Admin/indemnitybenefits/add-indemnitybenefit/add-edit.component.ts","./src/app/controls/Admin/indemnitybenefits/indemnitybenefit-list/indemnitybenefit-list.component.ts","./src/app/controls/Admin/indemnitybenefits/update-indemnitybenefit/update-indemnitybenefit.component.ts","./src/app/controls/Admin/leads/lead-list/lead-list.component.css","./src/app/controls/Admin/leads/lead-list/lead-list.component.ts","./src/app/controls/Admin/leads/upload-lead/upload-lead.component.css","./src/app/controls/Admin/leads/upload-lead/upload-lead.component.ts","./src/app/controls/Admin/members/enrollment/enrollment.component.css","./src/app/controls/Admin/members/enrollment/enrollment.component.ts","./src/app/controls/Admin/members/member-list/member-list.component.ts","./src/app/controls/Admin/members/member-list/member-name-renderer/member-name-renderer.scss","./src/app/controls/Admin/members/member-list/member-name-renderer/member-name-renderer.ts","./src/app/controls/Admin/members/member-view/member-view.component.css","./src/app/controls/Admin/members/member-view/member-view.component.ts","./src/app/controls/Admin/period/add-period/add-period.component.scss","./src/app/controls/Admin/period/add-period/add-period.component.ts","./src/app/controls/Admin/period/period-list/period-list.component.scss","./src/app/controls/Admin/period/period-list/period-list.component.ts","./src/app/controls/Admin/period/period-schedule-plan/edit-period-schedule-plan/edit-period-schedule-plan.component.scss","./src/app/controls/Admin/period/period-schedule-plan/edit-period-schedule-plan/edit-period-schedule-plan.component.ts","./src/app/controls/Admin/period/period-schedule-plan/period-schedule-plan.component.scss","./src/app/controls/Admin/period/period-schedule-plan/period-schedule-plan.component.ts","./src/app/controls/Admin/period/period-schedule-plan/update-period-schedule-plan/update-period-schedule-plan.component.ts","./src/app/controls/Admin/period/period-schedule/edit-period-schedule/edit-period-schedule.component.scss","./src/app/controls/Admin/period/period-schedule/edit-period-schedule/edit-period-schedule.component.ts","./src/app/controls/Admin/period/period-schedule/period-schedule.component.scss","./src/app/controls/Admin/period/period-schedule/period-schedule.component.ts","./src/app/controls/Admin/period/period-schedule/update-period-schedule/update-period-schedule.component.ts","./src/app/controls/Admin/period/renderButton/view-button-renderer.component.ts","./src/app/controls/Admin/plans/add-plan/add-edit.component.ts","./src/app/controls/Admin/plans/plan-list/plan-list.component.scss","./src/app/controls/Admin/plans/plan-list/plan-list.component.ts","./src/app/controls/Admin/plans/update-plan/update-plan.component.ts","./src/app/controls/Admin/videos/add-video/add-edit.component.ts","./src/app/controls/Admin/videos/update-video/update-video.component.ts","./src/app/controls/Admin/videos/video-list/video-list.component.scss","./src/app/controls/Admin/videos/video-list/video-list.component.ts","./src/app/controls/Admin/wellnessprogresses/medicalreceipt-list/medicalreceipt-list.component.ts","./src/app/controls/Admin/wellnessprogresses/update-medicalreceipt/update-medicalreceipt.component.ts","./src/app/controls/Broker/broker-group-members/broker-group-members.component.css","./src/app/controls/Broker/broker-group-members/broker-group-members.component.ts","./src/app/controls/Broker/broker-groups/broker-groups.component.scss","./src/app/controls/Broker/broker-groups/broker-groups.component.ts","./src/app/controls/Broker/broker.module.ts","./src/app/controls/Members/categories-listing/categories-listing/categories-listing.component.scss","./src/app/controls/Members/categories-listing/categories-listing/categories-listing.component.ts","./src/app/controls/Members/my-video-list/my-video-list.component.scss","./src/app/controls/Members/my-video-list/my-video-list.component.ts","./src/app/controls/Members/video-player/video-player/video-player.component.scss","./src/app/controls/Members/video-player/video-player/video-player.component.ts","./src/app/controls/Members/vimeo-player/vimeo-player.component.ts","./src/app/controls/Members/welcome/welcome.component.scss","./src/app/controls/Members/welcome/welcome.component.ts","./src/app/controls/Members/wellnessprogresses/add-medicalreceipt/add-medicalreceipt.component.ts","./src/app/controls/Members/wellnessprogresses/view-medicalreceipt/view-medicalreceipt.component.ts","./src/app/controls/Members/wellnessprogresses/view-wellnessprogress/view-wellnessprogress.component.ts","./src/app/controls/Plans/select-plans/select-plans.component.css","./src/app/controls/Plans/select-plans/select-plans.component.ts","./src/app/controls/StateManagement/User/user.query.ts","./src/app/controls/StateManagement/User/user.store.ts","./src/app/controls/ThankYou/thankyou.component.scss","./src/app/controls/ThankYou/thankyou.component.ts","./src/app/controls/change-password/change-password.component.ts","./src/app/controls/enrollment/add-dependent/add-dependent.component.css","./src/app/controls/enrollment/add-dependent/add-dependent.component.ts","./src/app/controls/enrollment/enrollment.component.css","./src/app/controls/enrollment/enrollment.component.ts","./src/app/controls/enrollment/enrollment.module.ts","./src/app/controls/enrollment/lead-validate/lead-validate.component.css","./src/app/controls/enrollment/lead-validate/lead-validate.component.ts","./src/app/controls/error-redirection/invalid-enrollment-link/invalid-enrollment-link.component.css","./src/app/controls/error-redirection/invalid-enrollment-link/invalid-enrollment-link.component.ts","./src/app/controls/forgot-password/forgot-password.component.scss","./src/app/controls/forgot-password/forgot-password.component.ts","./src/app/controls/hra/hra.component.scss","./src/app/controls/hra/hra.component.ts","./src/app/controls/login/login.component.scss","./src/app/controls/login/login.component.ts","./src/app/controls/manage-profile/manage-profile.component.css","./src/app/controls/manage-profile/manage-profile.component.ts","./src/app/controls/pop-up/popup/popup.component.css","./src/app/controls/pop-up/popup/popup.component.ts","./src/app/controls/register/register.component.scss","./src/app/controls/register/register.component.ts","./src/app/controls/reset-password/reset-password.component.scss","./src/app/controls/reset-password/reset-password.component.ts","./src/app/controls/set-password/set-password.component.scss","./src/app/controls/set-password/set-password.component.ts","./src/app/data-driven/dynamic-control.Service.ts","./src/app/data-driven/dynamic-control.base.ts","./src/app/data-driven/dynamic-form-builder/dynamic-form-builder.component.scss","./src/app/data-driven/dynamic-form-builder/dynamic-form-builder.component.ts","./src/app/data-driven/dynamic-form/dynamic-form.component.scss","./src/app/data-driven/dynamic-form/dynamic-form.component.ts","./src/app/data-driven/question.service.ts","./src/app/helpers/auth-admin.gaurd.ts","./src/app/helpers/auth-broker.gaurd.ts","./src/app/helpers/auth-member.guard.ts","./src/app/helpers/auth.guard.ts","./src/app/helpers/error.interceptor.ts","./src/app/helpers/format.ts","./src/app/helpers/get-url.ts","./src/app/helpers/jwt.interceptor.ts","./src/app/helpers/must-match.validators.ts","./src/app/helpers/validators.service.ts","./src/app/models/UserToken.ts","./src/app/models/VideoWithUserDetails.ts","./src/app/models/claim.ts","./src/app/models/claimPayment.ts","./src/app/models/enums/categoryType.ts","./src/app/models/enums/invoiceStatus.ts","./src/app/models/enums/invoiceType.ts","./src/app/models/enums/memberStatus.ts","./src/app/models/enums/wellnessProgressReviewStatus.ts","./src/app/models/group.ts","./src/app/models/invoice.ts","./src/app/models/member.ts","./src/app/models/modalOptions.ts","./src/app/services/ApiEndPoints.ts","./src/app/services/alertService.service.ts","./src/app/services/alertify.service.ts","./src/app/services/authentication.service.ts","./src/app/services/broker.service.ts","./src/app/services/categories.service.ts","./src/app/services/claim.service.ts","./src/app/services/claimPayment.service.ts","./src/app/services/crudservice.ts","./src/app/services/employees.service.ts","./src/app/services/enrollment.service.ts","./src/app/services/group.service.ts","./src/app/services/hmalead.service.ts","./src/app/services/hra.service.ts","./src/app/services/indemnityBenefit.service.ts","./src/app/services/invoice.service.ts","./src/app/services/jwt-token.service.ts","./src/app/services/member.service.ts","./src/app/services/period.service.ts","./src/app/services/periodSchedule.service.ts","./src/app/services/plan.service.ts","./src/app/services/shared.service.ts","./src/app/services/signature.service.ts","./src/app/services/user-video.service.ts","./src/app/services/user.service.ts","./src/app/services/video.service.ts","./src/app/services/vimeo.service.ts","./src/app/services/wellnessProgressService.service.ts","./src/app/shared/controls/alert/alert.component.ts","./src/app/shared/controls/captcha/captcha.component.css","./src/app/shared/controls/captcha/captcha.component.ts","./src/app/shared/controls/input-icon/index.ts","./src/app/shared/controls/input-icon/input-icon.ctrl.scss","./src/app/shared/controls/input-icon/input-icon.ctrl.ts","./src/app/shared/controls/input-icon/shared-input-icon.module.ts","./src/app/shared/controls/layout/copy-right/copyright.ctrl.scss","./src/app/shared/controls/layout/copy-right/copyright.ctrl.ts","./src/app/shared/controls/layout/footer/footer.ctrl.scss","./src/app/shared/controls/layout/footer/footer.ctrl.ts","./src/app/shared/controls/layout/hero-image/hero-image.ctrl.scss","./src/app/shared/controls/layout/hero-image/hero-image.ctrl.ts","./src/app/shared/controls/layout/layout-form/layout-form.ctrl.scss","./src/app/shared/controls/layout/layout-form/layout-form.ctrl.ts","./src/app/shared/controls/layout/shared-layout.module.ts","./src/app/shared/controls/layout/two-panel/two-panel-layout.ctrl.scss","./src/app/shared/controls/layout/two-panel/two-panel-layout.ctrl.ts","./src/app/shared/controls/modal/modal.component.ts","./src/app/shared/controls/modal/modal.service.ts","./src/app/shared/controls/nav-menu/nav-menu.component.scss","./src/app/shared/controls/nav-menu/nav-menu.component.ts","./src/app/shared/controls/popupcomponent/popupcomponent.component.css","./src/app/shared/controls/popupcomponent/popupcomponent.component.ts","./src/app/shared/controls/renderers/button-renderer/btn.renderer.scss","./src/app/shared/controls/renderers/button-renderer/btn.renderer.ts","./src/app/shared/controls/signature/signature-pad/signature-pad.component.css","./src/app/shared/controls/signature/signature-pad/signature-pad.component.ts","./src/app/shared/controls/successAlert/success-message-dialog/success-message-dialog.component.css","./src/app/shared/controls/successAlert/success-message-dialog/success-message-dialog.component.ts","./src/app/shared/pipes/vimeo-url.pipe.ts","./src/app/shared/shared.module.ts","./src/environments/environment.ts","./src/get-lead/get-lead.component.css","./src/get-lead/get-lead.component.ts","./src/main.ts","./src/mask.pipe.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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","file":"main-es2016.js","sourcesContent":["var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ps\": \"./node_modules/moment/locale/ar-ps.js\",\n\t\"./ar-ps.js\": \"./node_modules/moment/locale/ar-ps.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku-kmr\": \"./node_modules/moment/locale/ku-kmr.js\",\n\t\"./ku-kmr.js\": \"./node_modules/moment/locale/ku-kmr.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","export default \"\\n \\n
\\n \\n \\n
\\n \\n\\n\"","export default \"
\\n
\\n

Creating invoice for - {{groupData.name}}

\\n
\\n\\n
\\n
\\n\\n \\n \\n \\n
\\n
\\n
Invoice
\\n
\\n\\n\\n
\\n\\n\\n
\\n\\n
\\n \\n \\n \\n
\\n
\\n\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n
\\n
\\n
Update Invoice
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Payment Amount is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
Are you sure you want to cancel ?
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"
\\n \\n
\\n\\n
Invoice #{{invoice.number}}
\\n\\n\\n\\n
\\n\\n
\\n\\n
\\n
\\n\\n\\n
: {{invoice.groupName}}
\\n\\n\\n\\n
: {{invoice.startDate ? (invoice.startDate| date: 'MM-dd-yyyy') : '' }} to {{invoice.endDate ? (invoice.endDate| date: 'MM-dd-yyyy') : '' }}
\\n\\n\\n\\n
: {{invoice.dueDate ? (invoice.dueDate| date: 'MM-dd-yyyy') : '' }}
\\n\\n
: {{invoice.status}}
\\n\\n\\n
: ${{invoice.amount}}
\\n
\\n
\\n
\\n
\\n \\n\\n\\n
{{groupDetail.addressLine1}}
\\n
{{groupDetail.addressLine2}}
\\n
{{groupDetail.zipCode}}
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n \\n \\n\\n 0\\\">\\n \\n \\n \\n \\n \\n \\n \\n 0\\\">\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
S.No.Member IdMember NamePlan NamePremium Amount
{{i+1}}{{item.externalId}}{{item.memberName}}{{item.planName}}${{item.premiumAmount}}
Total ${{invoice.amount}}
\\n
\\n
\\n
\\n
\\n \\n\\n
\\n
\\n\\n
\\n\"","export default \"
\\n
\\n

Invoices

\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n {{group}}\\n \\n \\n\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\"","export default \"
\\n \\n
\\n
Invoice Details
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n
{{invoice.number}}
\\n
\\n
\\n \\n
{{invoice.groupName}}
\\n
\\n
\\n \\n
{{invoice.type}}
\\n
\\n\\n\\n
\\n
\\n
\\n \\n
{{invoice.startDate ? (invoice.startDate| date: 'MM-dd-yyyy') : '' }}
\\n
\\n
\\n \\n
{{invoice.endDate ? (invoice.endDate| date: 'MM-dd-yyyy') : '' }}
\\n
\\n
\\n \\n
{{invoice.status}}
\\n
\\n
\\n \\n\\n
${{invoice.amount}}
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
Update Invoice Details
\\n \\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n\\n \\n
\\n
Status is required.
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n \\n \\n
\\n
\\n\\n\\n
\\n\\n
\\n
\\n
\\n
\\n
Add Invoice
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n \\n\\n \\n
\\n
Period is required
\\n
\\n
\\n
\\n \\n\\n \\n
\\n
Group is required
\\n
\\n
\\n\\n
\\n
\\n\\n
\\n \\n \\n
\\n
Start Date is required
\\n
\\n
\\n
\\n \\n \\n
\\n
End Date is required
\\n
\\n
\\n\\n
\\n
\\n\\n
\\n \\n\\n \\n
\\n
Status is required.
\\n
\\n
\\n
\\n \\n\\n \\n
\\n
Type is required.
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
Due Date is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Number is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
Add Broker
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
First Name is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Last Name is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Email is required
\\n
Invalid email
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Password must be at least 6 characters
\\n
\\n
\\n
\\n\\n
0\\\">\\n

\\n {{ message }}\\n

\\n
\\n\\n
\\n \\n
\\n
\\n\\n
\\n
\\n\"","export default \"
\\n \\n

Agents

\\n\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n

Creating claim payment for - {{groupData.name}}

\\n
\\n
\\n

Period - {{selectedPeriod}}

\\n
\\n
\\n
\\n\\n \\n \\n \\n
\\n\\n
\\n
\\n
Claim Payment
\\n
\\n\\n
\\n
\\n
\\n\\n
\\n \\n \\n
\\n
Period Start Date is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Period End Date is required
\\n
\\n
\\n\\n
\\n
\\n\\n
\\n \\n \\n
\\n
Claim Start Date is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Claim End Date is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Payment Date is required
\\n
\\n
\\n\\n
\\n \\n\\n
\\n\\n
\\n
\\n
\\n
\\n
Claim Line Item
\\n
\\n
\\n
\\n
\\n \\n \\n \\n\\n
\\n\\n\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\"","export default \"
\\n
\\n \\n
\\n \\n
\\n
Claim Payment Detail
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n
{{claimpayment.groupName}}
\\n
\\n
\\n \\n
{{claimpayment.claimPaymentId}}
\\n
\\n\\n\\n\\n
\\n\\n
\\n \\n
\\n \\n
{{claimpayment.periodStartDate ? (claimpayment.periodStartDate| date: 'MM-dd-yyyy') : '' }}
\\n
\\n
\\n \\n
{{claimpayment.periodEndDate ? (claimpayment.periodEndDate| date: 'MM-dd-yyyy') : '' }}
\\n
\\n\\n\\n
\\n\\n
\\n
\\n \\n
{{claimpayment.claimStartDate ? (claimpayment.claimStartDate| date: 'MM-dd-yyyy') : '' }}
\\n
\\n
\\n \\n
{{claimpayment.claimEndDate ? (claimpayment.claimEndDate| date: 'MM-dd-yyyy') : '' }}
\\n
\\n
\\n\\n
\\n
\\n \\n
{{claimpayment.paymentDate ? (claimpayment.paymentDate| date: 'MM-dd-yyyy') : '' }}
\\n
\\n
\\n \\n
${{claimpayment.totalAmount}}
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n \\n \\n
\\n
\\n\\n\\n
\\n\\n
\\n
\\n
\\n
\\n
Update Claim Line Item
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Payment Amount is required
\\n
\\n
\\n\\n
\\n \\n \\n
\\n
Notes is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
Are you sure you want to cancel ?
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n
\\n
Update Claim Payment Date
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Payment Date is required
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"
\\n\\n

Claim Payments

\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\n\"","export default \"
\\n\\n
\\n

Claims

\\n
\\n
\\n
\\n \\n \\n \\n\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n\\n
\\n\"","export default \"
\\n\\n\\n

Members without claim

\\n
\\n
\\n
\\n \\n \\n \\n\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n\\n
\\n\"","export default \"
\\n
\\n
\\n

Add Dependent

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"\\n\\n
\\n\\n
\\n\\n\\n\\n \\n\\n
\\n\\n
\\n

\\n Welcome to the National Prosperity Life and Health Insurance Company, Inc. (NPLH) Shield One Group Fixed Indemnity Health Insurance product (Form Number NP FI CERT TX 817), which is sponsored by your employer, {{groupName}}.\\n

\\n

\\n

\\n Thank you for completing Part 1 of the enrollment. You must immediately complete Part 2 - Think Wellness Now Health Risk Assessment/Wellness Engagement Questionnaire (HRA) to trigger your first month's claim payment using the link below:\\n

\\n
\\n
\\n \\n
\\n
\\n\"","export default \"
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
EnrollmentCostRemove
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
{{model.monthlyPremiumAmount}}
\\n
\\n
\\n
\\n
Product: {{model.monthlyPremiumAmount}}
Product: {{model.monthlyPremiumAmount}}
\\n
\\n
\\n
\\n \\n Update\\n Continue\\n
\\n
\\n
\"","export default \"
\\n
Add Group
\\n
Edit Group
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Name is required
\\n
\\n
\\n
\\n \\n \\n
\\n
External Id is required
\\n
\\n
\\n
External Id already exists
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Email is required
\\n
Invalid email
\\n
\\n
\\n
\\n \\n \\n
\\n
Phone Number is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Contact Person is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Address Line 1 is required
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Zip Code is required.
\\n
\\n
\\n
\\n {{city}}, \\n {{state}}\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Date Effective is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Web Site is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Status is required
\\n
\\n
\\n
\\n
\\n
\\n \\n\\n \\n
\\n
Period is required
\\n
\\n
\\n
\\n
0\\\">\\n

\\n {{ message }}\\n

\\n
\\n\\n
\\n {{successMessage}}\\n
\\n\\n
\\n \\n
\\n
\\n\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n Assign Broker\\n
\\n
{{errorMessage}}
\\n
\\n
0\\\" >\\n
\\n \\n
{{groupBrokers[0].firstName}}
\\n
\\n
\\n \\n
{{groupBrokers[0].lastName}}
\\n
\\n
\\n \\n
{{groupBrokers[0].userName}}
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n

Groups

\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","export default \"\\n\\n{{ params.btnText || params.value }}\\n{{ params.NoShowText || params.value }}\\n{{ params.NoShowText }}\\n\\n\\n\\n\\n\"","export default \"
\\n
Add Family Member
\\n
Edit Family Member
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
First Name is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Last Name is required
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n
0\\\">\\n

\\n {{ message }}\\n

\\n
\\n\\n
\\n {{successMessage}}\\n
\\n\\n
\\n \\n
\\n
\\n
\\n
\"","export default \"
\\n\\n\\n
\\n

{{header}}

\\n
\\n \\n
\\n \\n
\\n
\\n

{{header}}

\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","export default \"
\\n

{{header}}

\\n\\n
\\n \\n
\\n \\n
\"","export default \"
\\n
\\n
Add Claim
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
Claim Date is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Claim Description is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Duration must not be negative
\\n
Duration is required
\\n
\\n
\\n
\\n \\n \\n
\\n
CPT Code is required
\\n
\\n
\\n
\\n\\n
0\\\">\\n

\\n {{ message }}\\n

\\n
\\n\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
Add Member
\\n
Edit Member
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
First Name is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Last Name is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Email is required
\\n
Invalid email
\\n
\\n
\\n
\\n \\n \\n
\\n
External Id is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Salary Per Pay Period must not be negative
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n
\\n
0\\\">\\n

\\n {{ message }}\\n

\\n
\\n\\n
\\n {{successMessage}}\\n
\\n\\n
\\n \\n
\\n
\\n
\\n
\\n\"","export default \"
\\n\\n \\n
\\n

{{headerForAddMember}}

\\n
\\n \\n
\\n \\n
\\n
\\n

{{header}}

\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n\"","export default \"
\\n

{{header}}

\\n\\n
\\n \\n
\\n \\n
\\n\"","export default \"
\\n

Think Wellness Now

\\n

WELLNESS ENGAGEMENT QUESTIONNAIRE

\\n
\\n
\\n The first step towards your wellness is your engagement. That is why it is important for us to know exactly which\\n aspects of your health you would like to work on the most. After learning a bit more about you, we can help you\\n design your own customized wellness program. By matching your unique interests and health goals, we can design a\\n program that will help you stay motivated so that you can get the most out of your personalized wellness program.\\n
\\n
\\n
\\n
Based upon the answers you provide us in this form, we will match your specific wellness\\n goals with our specialized wellness programs designed especially for you to stay focused, motivated and empowered to meet all\\n your healthcare goals.
\\n
\\n \\n \\n
\\n\"","export default \"
\\n
\\n
\\n

{{groupData.name}} Group

\\n
\\n\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
Group Detail
\\n\\n
\\n
\\n
\\n\\n
\\n
\\n \\n\\n
\\n
\\n
\\n
\\n \\n
{{groupData.name}}
\\n
\\n
\\n \\n
{{groupData.externalId}}
\\n
\\n
\\n \\n
{{groupData.email}}
\\n
\\n
\\n \\n
{{groupData.phoneNumber}}
\\n
\\n
\\n
\\n\\n
\\n \\n
{{groupData.contactPerson}}
\\n
\\n
\\n \\n
{{groupData.addressLine1}}
\\n
\\n
\\n \\n
{{groupData.addressLine2}}
\\n
\\n
\\n
\\n
\\n \\n
{{groupData.zipCode}}
\\n
\\n
\\n {{groupData.city}}, \\n {{groupData.state}}\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n \\n\\n
{{groupData.startDate ? (groupData.startDate| date: 'MM-dd-yyyy') : '' }}
\\n
\\n
\\n \\n
{{groupData.webSiteUrl}}
\\n
\\n
\\n \\n
{{ groupData.isActive ? 'Active' : 'Inactive' }}
\\n
\\n\\n\\n
\\n \\n
{{ period }}
\\n\\n
\\n
\\n
\\n
\\n \\n \\n
\\n\\n \\n\\n
\\n
\\n \\n \\n
\\n
\\n \\n\\n
\\n
\\n\\n
\\n
\\n\"","export default \"
\\n
\\n \\n
\\n \\n
\\n\"","export default \"
\\n
Add Indemnity Benefit
\\n
Edit Indemnity Benefit
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Name is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Amount is required
\\n
Amount must not be negative
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Monthly Limit is required
\\n
Monthly Limit must not be negative
\\n
\\n
\\n
\\n \\n \\n
\\n
Code is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Description is required
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
0\\\">\\n

\\n {{ message }}\\n

\\n
\\n\\n
\\n {{successMessage}}\\n
\\n\\n
\\n \\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n

Indemnity Benefits

\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n \\n
\\n \\n
\\n\"","export default \"
\\n
\\n

Leads of {{groupName}}

\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n

Leads Upload

\\n
\\n\\n
\\n \\n
\\n \\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","export default \"
\\n \\n
\\n\\n
Employee Enrollment Form
\\n\\n\\n\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n \\n
{{memberData.lastName}}
\\n
\\n
\\n\\n\\n
\\n
\\n \\n
{{memberData.firstName}}
\\n
\\n
\\n
\\n
\\n \\n
{{memberData.middleName}}
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n
{{memberData.addressLine1}}
\\n
\\n
\\n \\n
\\n
\\n \\n
{{memberData.city}}
\\n
\\n
\\n\\n
\\n
\\n \\n
{{memberData.state? memberData.state : ''}}
\\n
\\n
\\n
\\n
\\n \\n
{{memberData.zipCode}}
\\n
\\n
\\n
\\n
\\n \\n
{{memberData.mobile}}
\\n
\\n
\\n
\\n
\\n \\n
{{memberData.workNumber}}
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n \\n
{{memberData.dob ? (memberData.dob| date: 'MM-dd-yyyy') : ''}}
\\n \\n
\\n
\\n
\\n
\\n \\n
{{memberData.gender}}
\\n\\n
\\n
\\n\\n
\\n
\\n \\n \\n
{{memberSSN}}
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n {{memberData.insurancePolicyNo == null || memberData.insurancePolicyNo == ''? 'No' : 'Yes'}}\\n
\\n\\n \\n
\\n
\\n
\\n\\n \\n\\n
\\n
\\n
{{memberData.healthInsuranceCompanyName}}
\\n
\\n
\\n
\\n
\\n\\n \\n\\n
\\n
\\n
{{memberData.insurancePolicyNo}}
\\n
\\n
\\n
\\n
\\n\\n \\n\\n\\n
\\n
\\n
\\n\\n {{memberData.insuranceEffectiveDate ? (memberData.insuranceEffectiveDate| date: 'MM-dd-yyyy'):''}}\\n\\n
\\n
\\n
\\n\\n \\n\\n
\\n
\\n
\\n {{memberData.insuranceEndDate ? (memberData.insuranceEndDate| date: 'MM-dd-yyyy'):''}}\\n
\\n
\\n
\\n
\\n
\\n\\n \\n\\n
\\n
\\n
{{memberData.insuranceAddress}}
\\n
\\n
\\n
\\n\\n\\n\\n\\n\\n \\n
\\n
\\n
\\n \\n \\n {{memberData.maritalStatus == null || memberData.maritalStatus == ''? 'N/A': memberData.maritalStatus}}\\n \\n
\\n\\n \\n
\\n
\\n\\n
\\n \\n \\n \\n \\n\\n \\n 0\\\">\\n \\n \\n \\n \\n \\n\\n \\n \\n\\n 0\\\">\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n
Dependent to be covered: {{memberData.dependents?.length > 0 ? \\\"\\\": \\\"N/A\\\"}}
RelationshipLast NameFirst NameDate of Birth
{{dependent.type}}{{dependent.lastName}}{{dependent.firstName}}{{dependent.dob ? (dependent.dob| date: 'MM-dd-yyyy') : ''}}
\\n
\\n\\n\\n\\n
\\n\\n
\\n\\n Plan: {{memberData?.planName}}\\n\\n
\\n
\\n\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n

\\n IMPORTANT: I understand these benefits are provided under a group insurance policy underwritten\\n by\\n National\\n Prosperity Life and Health Insurance Company, Inc. and are subject to exclusions, limitations\\n and\\n conditions\\n of coverage which includes, but is not limited to, an exclusion for pre-existing conditions.\\n Coverage being applied for has limitations on each benefit. I certify that I have read or had\\n read\\n to me the\\n completed enrollment form and the answers given are complete and true to the best of my\\n knowledge\\n and belief.\\n

\\n

\\n By signing below I indicate my desire to enroll in a plan of limited medical benefits issued by\\n National\\n Prosperity Life and Health Insurance Company, Inc.\\n

\\n

\\n THIS IS A SUPPLEMENT TO HEALTH INSURANCE AND IS NOT A SUBSTITUTE FOR MAJOR MEDICAL COVERAGE.\\n LACK\\n OF MAJOR MEDICAL\\n COVERAGE (OR OTHER MINIMUM ESSENTIAL COVERAGE) MAY RESULT IN AN ADDITIONAL PAYMENT WITH YOUR\\n TAXES.\\n

\\n

\\n Any person who knowingly presents a false or fraudulent claim for the payment of a loss is\\n guilty\\n of a crime and may be\\n subject to fines and confinement in state prison.\\n

\\n

\\n No information provided by National Prosperity Life and Health Insurance Company, Inc. is\\n intended\\n to provide legal, financial,\\n accounting, tax or health advice. While considering coverage under the policy, you may wish to\\n consult with your own legal,\\n financial, accounting, tax and/or healthcare professional(s).\\n

\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n \\n \\n\\n\\n\\n
\\n\\n\\n
\\n \\n \\n {{memberData.signatureDateTime? (memberData.signatureDateTime| date: 'MM-dd-yyyy') : '' }}\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n Completed by Employer\\n
\\n
\\n
\\n \\n
\\n \\n\\n\\n \\n \\n \\n \\n \\n \\n \\n\\n\\n
Name of Employer:    {{groupInfo?.name}}Effective Date:   {{groupInfo?.startDate ? (groupInfo?.startDate| date: 'MM-dd-yyyy') : '' }}Date Submitted:   {{memberData?.createdDate ? (memberData?.createdDate| date: 'MM-dd-yyyy') : '' }}
\\n
\\n
\\n
\\n
\\n Member Id: {{memberId}}\\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n\\n
\\n\"","export default \"
\\n
\\n

Members

\\n
\\n
\\n
\\n \\n \\n \\n
\\n\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n\"","export default \"\\n{{ params.btnText || params.value }}\\n{{ params.NoShowText || params.value }}\\n{{ params.NoShowText }}\\n\\n\\n\\n\\n\"","export default \"
\\n
\\n
\\n \\n \\n \\n \\n\\n
\\n
\\n \\n\\n
\\n
\\n
\\n
Member Details
\\n
\\n
\\n
\\n
\\n

Personal Details:

\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n
{{memberId}}
\\n
\\n
\\n \\n
{{memberData.firstName}}
\\n
\\n
\\n \\n
{{memberData.middleName}}
\\n
\\n
\\n \\n
{{memberData.lastName}}
\\n
\\n \\n
\\n
\\n
\\n \\n
{{memberData.email}}
\\n
\\n
\\n \\n
{{memberData.mobile}}
\\n
\\n
\\n \\n
{{memberData.gender}}
\\n
\\n
\\n \\n
{{memberData.maritalStatus}}
\\n
\\n
\\n
\\n
\\n \\n
\\n {{memberData.addressLine1}} {{memberData.addressLine2}} {{memberData.zipCode}} {{memberData.city}}\\n {{memberData.state?', '+memberData.state : ''}}\\n
\\n
\\n
\\n \\n
{{memberData.dob ? (memberData.dob| date: 'MM-dd-yyyy') : '' }}
\\n
\\n
\\n \\n
{{memberData.secondaryMobile}}
\\n
\\n
\\n \\n
{{memberData.planName}}
\\n
\\n
\\n\\n\\n
\\n
\\n \\n
{{memberData.groupName}}
\\n
\\n\\n
\\n \\n
{{memberData.memberStatus}}
\\n
\\n
\\n \\n
{{memberData.startDate ? (memberData.startDate| date: 'MM-dd-yyyy') : '' }}
\\n
\\n
\\n \\n
{{memberData.terminationDate ? (memberData.terminationDate| date: 'MM-dd-yyyy') : '' }}
\\n
\\n
\\n \\n\\n
\\n
\\n \\n \\n
{{memberSSN}}
\\n
\\n
\\n
\\n
\\n
\\n
\\n

Dependents:

\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
RelationshipFirst NameLast NameGenderDate of Birth
{{dependent.type}}{{dependent.firstName}}{{dependent.lastName}}{{dependent.gender}}{{dependent.dob ? (dependent.dob | date: 'MM-dd-yyyy') : ''}}\\n \\n \\n
{{noDependent}}
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

Insurance Details:

\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
{{memberData.healthInsuranceCompanyName}}
\\n
\\n
\\n
\\n
\\n \\n
{{memberData.insurancePolicyNo}}
\\n
\\n
\\n
\\n
\\n \\n
{{memberData.insuranceAddress}}
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n {{memberData.insuranceEffectiveDate ? (memberData.insuranceEffectiveDate| date: 'MM-dd-yyyy'):''}}\\n
\\n
\\n
\\n
\\n
\\n \\n
{{memberData.insuranceEndDate ? (memberData.insuranceEndDate | date: 'MM-dd-yyyy'):''}}
\\n
\\n
\\n
\\n
\\n
\\n Not covered by any other Health Insurance\\n
\\n
\\n
\\n
\\n
\\n
\\n

Claim Reimbursement:

\\n
\\n\\n
\\n
\\n
\\n
\\n \\n
{{memberData.routingNumber}}
\\n
\\n
\\n
\\n
\\n \\n
{{memberData.accountNumber}}
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

Signature:

\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

\\n IMPORTANT: I understand these benefits are provided under a group insurance policy underwritten\\n by\\n National\\n Prosperity Life and Health Insurance Company, Inc. and are subject to exclusions, limitations\\n and\\n conditions\\n of coverage which includes, but is not limited to, an exclusion for pre-existing conditions.\\n Coverage being applied for has limitations on each benefit. I certify that I have read or had\\n read\\n to me the\\n completed enrollment form and the answers given are complete and true to the best of my\\n knowledge\\n and beliei.\\n

\\n

\\n By signing below I indicate my desire to enroll in a plan of limited medical benefits issued by\\n National\\n Prosperity Life and Health Insurance Company, Inc.\\n

\\n

\\n THIS IS A SUPPLEMENT TO HEALTH INSURANCE AND IS NOT A SUBSTITUTE FOR MAJOR MEDICAL COVERAGE.\\n LACK\\n OF MAJOR MEDICAL\\n COVERAGE (OR OTHER MINIMUM ESSENTIAL COVERAGE) MAY RESULT IN AN ADDITIONAL PAYMENT WITH YOUR\\n TAXES.\\n

\\n

\\n Any person who knowingly presents a false or fraudulent claim for the payment of a loss is\\n guilty\\n of a crime and may be\\n subject to fines and confinement in state prison.\\n

\\n

\\n No information provided by National Prosperity Life and Health Insurance Company, Inc. is\\n intended\\n to provide legal, financial,\\n accounting, tax or health advice. While considering coverage under the policy, you may wish to\\n consult with your own legal,\\n financial, accounting, tax and/or healthcare professional(s).\\n

\\n
\\n
\\n
\\n

\\n
\\n
\\n
\\n
\\n
\\n \\n
{{memberData.browserName}} - {{memberData.browserVersion}}
\\n
\\n\\n
\\n
\\n
\\n \\n
{{ipAddress}}
\\n
\\n
\\n
\\n
\\n \\n
{{memberData.signatureDateTime ? (memberData.signatureDateTime| date: 'MM-dd-yyyy'): ''}}
\\n
\\n
\\n
\\n
\\n \\n\\n\\n
\\n
\\n
\\n

External Provider:

\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
TypeEffective DateTermination Date
{{provider.type}}{{provider.effectiveDate ? (provider.effectiveDate | date: 'MM-dd-yyyy') : ''}}{{provider.terminationDate ? (provider.terminationDate| date: 'MM-dd-yyyy') : ''}}\\n \\n\\n
{{noProvider}}
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
Update Personal Details
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
First Name is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Last Name is required
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n \\n \\n
\\n
Email is required
\\n
Invalid email
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Mobile is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Date of Birth is required
\\n
\\n
\\n
Primary/Main member age must be greater than 21
\\n
\\n
\\n
Primary/Main member age must be less than 100
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
Gender is required.
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
Marital Status is required.
\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n \\n \\n
\\n
Address Line 1 is required
\\n
\\n
\\n
\\n\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n\\n \\n \\n
\\n
Zip Code is required.
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
{{dependentText}} Dependent
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Relationship is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
First Name is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Last Name is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
Gender is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Date of Birth is required
\\n
\\n
\\n
\\n Spouse age must be greater than\\n 21\\n
\\n
\\n Child age must be greater than 0\\n
\\n
\\n
\\n
\\n Spouse age must be less than 100\\n
\\n
\\n Child age must be less than 21\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
Update Insurance
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\n
\\n
\\n
\\n \\n \\n
\\n
Insurance Company Name is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Insurance Policy No is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Insurance Address is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Insurance Effective Date is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Insurance End Date is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n
\\n {{this.btnText === 'Add' ? 'Add' : 'Update'}} External Provider\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Termination Date is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Effective Date is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n \\n
\\n
\\n
\\n
\\n
\\n Add Start Date\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Start Date is required
\\n
\\n
\\n
\\n Start Date must be future date or not more\\n than the 30 days of past\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
Add Period
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Name is required
\\n
\\n
\\n
\\n
0\\\">\\n

\\n {{ message }}\\n

\\n
\\n\\n
\\n \\n
\\n
\\n\\n
\\n
\\n\"","export default \"
\\n\\n

Periods

\\n\\n\\n\\n\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\n\"","export default \"
\\n\\n
Edit Period Schedule Plan
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Premium Amount is required.
\\n
Premium Amount must not be negative
\\n
\\n
\\n
\\n \\n \\n
\\n
Claim Amount must not be negative
\\n
Claim Amount is required.
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n\\n
\\n
\\n\"","export default \"
\\n\\n

Period Schedule Plans

\\n\\n\\n \\n\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\n\"","export default \"
\\n \\n \\n
\\n\"","export default \"
\\n \\n
Edit Period Schedule
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Start Date is required
\\n
\\n
\\n
\\n \\n \\n
\\n
End Date is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Invoice Date is required
\\n
\\n
\\n
\\n
\\n\\n
\\n \\n \\n
\\n
Invoice Due Date is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Claim Payment Date is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Claim Start Date is required
\\n
\\n
\\n
\\n
\\n\\n
\\n \\n \\n
\\n
Claim End Date is required
\\n
\\n
\\n
\\n\\n \\n \\n
\\n
Premium Percent is required.
\\n
Premium Percent must not be negative
\\n
\\n
\\n
\\n\\n \\n \\n
\\n
Claim Percent must not be negative
\\n
Claim Percent is required.
\\n\\n\\n
\\n
\\n
\\n \\n \\n\\n \\n
\\n \\n
\\n
\\n\\n
\\n
\\n\"","export default \"
\\n\\n

{{ period?.name }} - Period Schedule

\\n\\n\\n \\n\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\n\"","export default \"
\\n \\n \\n
\\n\"","export default \"
\\n
Add Plan
\\n
Edit Plan
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Name is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Monthly premium must not be negative
\\n
Monthly premium is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Monthly claim must not be negative
\\n
Monthly claim is required
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n\\n
0\\\">\\n

\\n {{ message }}\\n

\\n
\\n\\n
\\n {{successMessage}}\\n
\\n\\n
\\n \\n
\\n
\\n
\\n
\\n\"","export default \"\\n\\n
\\n
\\n

Plans

\\n
\\n
\\n
\\n \\n
\\n \\n
\\n\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n \\n
\\n \\n
\\n\"","export default \"
\\n
Add Video
\\n
Edit Video
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Url is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Title is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Thumbnail Url is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Duration must not be negative
\\n
Duration is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
CPT Code is required
\\n
\\n
\\n
\\n\\n
\\n
\\n \\n \\n
\\n
Description is required
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n\\n
0\\\">\\n

\\n {{ message }}\\n

\\n
\\n\\n
\\n {{successMessage}}\\n
\\n\\n
\\n \\n
\\n\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n \\n
\\n \\n
\\n\"","export default \"
\\n \\n

Videos

\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n

Medical Receipt Upload History

\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n \\n
\\n

\\n Fill in the information below for your medical receipt, then scan or take a picture of your medical receipt and save it to your computer or mobile device,\\n then click on \\\"Choose File under the Receipt section and upload.\\n

\\n
\\n
\\n
Edit Medical Receipt Upload History
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Service Date is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Provider Name is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Patient Name is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Patient Birth Date is required
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
Benefit Type is required
\\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
0\\\">\\n

\\n {{ message }}\\n

\\n
\\n\\n
\\n {{successMessage}}\\n
\\n\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n \\n \\n
\\n
\\n\"","export default \"
\\n
\\n \\n \\n
\\n
\\n\"","export default \"
\\n

THINK WELLNESS NOW PROGRAM

\\n
\\n
\\n
\\n

PROGRAMS TO MANAGE YOUR HEALTH:

\\n
\\n

\\n Think Wellness Now offers you as many opportunities as possible to stay engaged in your health and wellness\\n journey. Below you will find a list of programs that give you the ability to choose how you would like to\\n participate in order to fulfill your wellness requirement each month. You will find that our programs are rich in\\n health education from experts in various fields.\\n

\\n
\\n

Here's how it works:

\\n
\\n

\\n If you do not have any medical benefit receipts from the list of 67 different '213(d) medical benefits' to receive your claim payment, you will need to watch one of the videos from the categories below and you'll receive a $150 credit towards your monthly claim payment.\\n For example, if you purchase the $700 per month premium, it will give you a claim payment of $588 per month and if you watch an educational presentation you'll receive a $150 credit toward your monthly claim payment which leaves $438 remaining.\\n The $438 will be carried over to the next month which will make $1,026 available to you to spend on the 67 different '213(d) medical benefits'.\\n

\\n
\\n

\\n Each month, you will login to this portal to complete your wellness requirement in order to\\n receive your claim payment the following month. You can view and re-watch more than 1 wellness video each month,\\n but only the first wellness activity completed will count as your requirement for your claim payment. You can\\n track your progress by identifying which videos you have already watched, but you can always re-watch a video if\\n you choose. Be sure to check your portal for the latest updates as we have several experts in various fields\\n designing valuable content for you to participate in each month.\\n

\\n
\\n

Coming Soon:

\\n
    \\n
  • - New videos each month from experts in various fields
  • \\n
  • - The \\\"Track Your Wellness Progress\\\" tab
  • \\n
  • - The ability to upload medical receipts that qualify as a wellness requirement
  • \\n
\\n
\\n

\\n For the current month wellness requirement, please watch one of the presentations available under Stress Management, Relationships and Connection,\\n Diet and Nutrition, Exercise and Fitness or Sleep Techniques for Good Health.\\n

\\n Here are the newest presentations:\\n
    \\n
  • \\\"Bipolar Disorders - Part 1 (Part 1 of 2)\\\" Under Brain Health and Mental Health - Added January 1, 2024
  • \\n
  • \\\"Bipolar Disorders - Part 2 (Part 2 of 2)\\\" Under Brain Health and Mental Health - Added February 1, 2024
  • \\n
  • \\\"Weight Loss Medications\\\" Under Diet and Nutrition - Added March 1, 2024
  • \\n
  • \\\"Bereavement and Grief\\\" Under Brain Health and Mental Health - Added May 1, 2024
  • \\n
  • Substance Use Disorders - Part 1 (Part 1 of 2) Under Building A Health Relationship with Substances - Added August 1, 2024
  • \\n
  • Substance Use Disorders - Part 2 (Part 2 of 2) Under Building A Health Relationship with Substances - Added September 1, 2024
  • \\n
  • \\\"How To Recognize A Stroke\\\" Under Brain Health and Mental Health - Added December 1, 2024
  • \\n
\\n
\\n
    \\n
  • \\n \\n

    {{category.title}}

    \\n
  • \\n
\\n
\\n
\\n
    \\n
  • \\n \\n

    {{category.title}}

    \\n
  • \\n
\\n
\\n
\\n
    \\n
  • \\n \\n

    {{category.title}}

    \\n
  • \\n
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n
\\n
\\n\\n

{{header}}

\\n
\\n
    \\n
  • \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n

    {{video.title}}

    \\n
    \\n\\n
    \\n
    \\n Duration: {{ toHoursMinutesSeconds(video.durationInSeconds) }}\\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n \\n Completed On: {{getDate(video.completedOn)|date }}\\n
    \\n
    \\n Category : \\n {{ video.videoCategories }}\\n
    \\n
    \\n
    {{video.description }}
    \\n
    \\n
    \\n
    \\n
    \\n
  • \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\"","export default \"
\\n \\n
\"","export default \"
\\n
\\n
\\n
\\n
\\n \\n\\n \\n\\n
\\n \\n \\n \\n \\n {{timeLapsed}}\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n

{{ title }}

\\n

{{description}}

\\n
\\n
\\n
\"","export default \"
\\n
\\n
\\n

Welcome to Think Wellness Now

\\n\\n

\\n As a participant of the Think Wellness Now Health Management Program that is being\\n sponsored by your employer, one of the requirements is for you to complete a monthly\\n wellness check in order to receive your claim payment.\\n

\\n \\n As a participant of the Think Wellness Now Health Management Program that is being\\n sponsored by your employer, one of the requirements is for you to complete a monthly\\n video presentation and/or upload medical receipts in order to receive your claim\\n payment.\\n \\n\\n
\\n \\n \\n
{{ claimStatusMessage }}
\\n
\\n\\n

\\n Please put a reminder on your calendar that you must complete a wellness check every month by logging into this\\n portal between the 1st and 15th\\n

\\n \\n Please put a reminder on your calendar that you must complete a video presentation\\n and/or upload medical receipts every month by logging into this portal between the 1st\\n and 15th. Click here to view all the wellness checks.\\n \\n\\n
\\n \\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n\\n
\\n
\\n

Benefits For Employees

\\n
    \\n
  • \\n Initial health risk assessment (HRA) Think Wellness Now Engagement Questionnaire to determine risk factors\\n for various health conditions and diseases and what areas of each employee’s health and wellness that should\\n be targeted\\n
  • \\n
  • \\n Personalized, one-on-one approach utilizing medical professionals and proven, goal-setting, online modules\\n to improve health outcomes of employees with customized strategies for each employee\\n
  • \\n
  • \\n Ongoing, online presentations with certified health professionals to educate employees on important health topics\\n
  • \\n
  • \\n Option to directly connect up to three times per year with trained Clinical Health Psychologists that\\n specialize in stress management and health behavioral change\\n
  • \\n
  • \\n Monthly, financial incentives to build better health habits and make realistic and productive life changes\\n
  • \\n
\\n
    \\n
  • \\n Initial health risk assessment (HRA) – At the time of your enrollment, you will complete a\\n Think Wellness Now Engagement Questionnaire to help you understand where you are\\n at in your health journey.\\n
  • \\n
  • \\n Online video presentation modules are available to you by clicking on MONTHLY VIDEO\\n PRESENTATIONS above.\\n
  • \\n
  • \\n Certified health professionals educate employees on important health topics through the\\n monthly video presentations.\\n
  • \\n
  • \\n Upload Your Medical Receipts: Track “Your Enhanced Health and Wellness Medical\\n Benefits” by clicking Upload Your Wellness Receipts in the modules.\\n
  • \\n
  • \\n Financial incentives to build better health habits and make realistic and productive life\\n changes.\\n
  • \\n
\\n
\\n SAVE MONEY… LIVE HEALTHY… CELEBRATE!\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n

Medical Receipt Upload History

\\n
\\n
\\n \\n
\\n

\\n Fill in the information below for your medical receipt, then scan or take a picture of your medical receipt and save it to your computer or mobile device,\\n then click on \\\"Choose File under the Receipt section and upload.\\n

\\n
\\n
\\n
Add Medical Receipt
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Service Date is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Provider Name is required
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
Benefit Type is required
\\n
\\n \\n \\n
\\n \\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
Patient Name is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Patient Birth Date is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n\\n
0\\\">\\n

\\n {{ message }}\\n

\\n
\\n\\n {{ successMessage }}\\n \\n\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n

Medical Receipt Upload History

\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n

Wellness Progresses

\\n
\\n
\\n
\\n \\n \\n \\n\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","export default \"\\n \\n\\n
\\n\\n
\\n\\n\\n\\n \\n
\\n
\\n
\\nEnrollment application for {{groupName}}\\n
\\n
\\n

Select Your Premium Level

\\n
\\n\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\"","export default \"\\n
\\n
\\n
\\n
Thank You for submitting the Wellness Engagement Questionnaire.
\\n

Go to Home Page

\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n
Change Password
\\n
\\n
\\n
\\n \\n \\n
\\n
Current Password is required
\\n
\\n
\\n
\\n \\n \\n
\\n
New Password is required
\\n
New Password must be at least 6 characters
\\n
\\n
\\n
\\n \\n \\n
\\n
Confirm Password is required
\\n
Passwords must match
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\"","export default \"\\n\\n
\\n
\\n
\\n
\\n
Add Dependent
\\n
\\n
\\n \\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Relationship is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
First Name is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Last Name is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
Gender is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Date of Birth is required
\\n
\\n
\\n
Spouse age must be greater than 21
\\n
Child age must be greater than 0
\\n
\\n
\\n
Spouse age must be less than 100
\\n
Child age must be less than 21
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \" \\n\\n
\\n\\n
\\n \\n
\\n
\\n
\\nEnrollment application for {{this.selectedGroup}} with {{this.selectedPlanName}}\\n\\n
\\n \\n
\\n
\\n
Invalid enrollment link. Please contact your producer for a valid enrollment link.
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

Personal Details:

\\n
\\n
\\n
\\n \\n \\n
\\n
First Name is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Last Name is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Email is required
\\n
Invalid email
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
DOB is required
\\n
\\n
\\n
Primary/Main member age must be greater than 21
\\n
\\n
\\n
Primary/Main member age must be less than 100
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Mobile is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n\\n
\\n
\\n \\n \\n \\n
\\n
Gender is required.
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
Marital Status is required.
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Social Security Number is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Address Line 1 is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Zip Code is required.
\\n
\\n
\\n
\\n {{city}}, \\n {{state}}\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n
\\n
\\n Dependent: \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
RelationshipFirst NameLast NameGenderDate of Birth
{{dependent.relationship}}{{dependent.firstName}}{{dependent.lastName}}{{dependent.gender}}{{dependent.dob ? (dependent.dob| date: 'MM-dd-yyyy') : ''}}\\n \\n
\\n
\\n
\\n
\\n
\\n\\n
\\n

Insurance Details:

\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n\\n
\\n
\\n
\\n \\n \\n
\\n
Insurance Company Name is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Insurance Policy No is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Insurance Address is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Insurance Effective Date is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Insurance End Date is required
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n

Claim Reimbursement:

\\n
\\n
\\n
\\n \\n \\n\\n \\n {{routingMessage}}\\n \\n\\n
\\n
Routing Number is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Account Number is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Confirm Account Number is required
\\n
Account Number and Confirm Account Number must\\n match\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
Personal Account Type is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n

Terms and Conditions: *

\\n
\\n
\\n
\\n
\\n
\\n

\\n IMPORTANT: I understand these benefits are provided under a group insurance policy underwritten\\n by\\n National\\n Prosperity Life and Health Insurance Company, Inc. and are subject to exclusions, limitations\\n and\\n conditions\\n of coverage which includes, but is not limited to, an exclusion for pre-existing conditions.\\n Coverage being applied for has limitations on each benefit. I certify that I have read or had\\n read\\n to me the\\n completed enrollment form and the answers given are complete and true to the best of my\\n knowledge\\n and belief.\\n

\\n

\\n By signing below I indicate my desire to enroll in a plan of limited medical benefits issued by\\n National\\n Prosperity Life and Health Insurance Company, Inc.\\n

\\n

\\n THIS IS A SUPPLEMENT TO HEALTH INSURANCE AND IS NOT A SUBSTITUTE FOR MAJOR MEDICAL COVERAGE.\\n LACK\\n OF MAJOR MEDICAL\\n COVERAGE (OR OTHER MINIMUM ESSENTIAL COVERAGE) MAY RESULT IN AN ADDITIONAL PAYMENT WITH YOUR\\n TAXES.\\n

\\n

\\n Any person who knowingly presents a false or fraudulent claim for the payment of a loss is\\n guilty\\n of a crime and may be\\n subject to fines and confinement in state prison.\\n

\\n

\\n No information provided by National Prosperity Life and Health Insurance Company, Inc. is\\n intended\\n to provide legal, financial,\\n accounting, tax or health advice. While considering coverage under the policy, you may wish to\\n consult with your own legal,\\n financial, accounting, tax and/or healthcare professional(s).\\n

\\n
\\n
\\n
\\n Click here to Accept the\\n terms and Conditions\\n
\\n
Accept the terms and Conditions
\\n
\\n

\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Signature is required
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Signature Name is required
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n\\n
\\n \\n\\n
\\n \\n \\n
\\n\\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n
\\n

Lead Validation

\\n
\\n
\\n
\\n
\\n
Please verify below details
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
Date OF Birth is required
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n\"","export default \" \\n\\n
\\n\\n
\\n \\n
\\n
\\n
\\n
\\n

\\n \\n {{message}}\\n \\n \\n Invalid Enrollment Link. Please contact your producer for a valid enrollment link.\\n \\n

\\n
\\n
\\n
\\n\"","export default \"\\n \\n \\n \\n \\n \\n Recover Password \\n
0\\\">\\n

\\n {{ message }}\\n

\\n
\\n
0\\\">\\n

\\n {{ message }}\\n

\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Email is required
\\n
Invalid email
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\"","export default \"\\n
\\n \\n
Invalid Link.
\\n
\\n
\\n

Think Wellness Now

\\n

WELLNESS ENGAGEMENT QUESTIONNAIRE

\\n
\\n
\\n The first step towards your wellness is your engagement. That is why it is important for us to know exactly which\\n aspects of your health you would like to work on the most. After learning a bit more about you, we can help you\\n design your own customized wellness program. By matching your unique interests and health goals, we can design a\\n program that will help you stay motivated so that you can get the most out of your personalized wellness program.\\n
\\n
\\n
\\n
Based upon the answers you provide us in this form, we will match your specific wellness\\n goals with our\\n specialized wellness programs designed especially for you to stay focused, motivated and empowered to meet all\\n your\\n healthcare goals.
\\n
\\n\\n
\\n\\n\\n \\n\\n
\\n Error: {{errorMessage}}\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\n\"","export default \"\\n\\n \\n \\n\\n \\n \\n Login \\n \\n \\n \\n
\\n

\\n {{ errorMessage }}\\n

\\n
\\n
\\n \\n
\\n
Email is required
\\n
Invalid email
\\n
\\n
\\n
\\n \\n
\\n
Password is required
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\"","export default \"
\\n
\\n
Profile Information
\\n
\\n
\\n
\\n
\\n

Personal Details:

\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n {{memberData.firstName}}\\n  {{memberData.middleName}}\\n  {{memberData.lastName}}\\n
\\n
\\n
\\n
\\n \\n {{memberData.addressLine1}}\\n  {{memberData.addressLine2}}\\n  {{memberData.zipCode}}\\n  {{memberData.city}} {{memberData.state?', '+memberData.state : ''}}\\n
\\n \\n
\\n
\\n \\n
\\n \\n {{memberData.email}}\\n
\\n
\\n \\n {{memberData.mobile}}\\n
\\n
\\n \\n {{memberData.secondaryMobile}}\\n
\\n \\n
\\n
\\n
\\n \\n {{memberData.dob ? (memberData.dob| date: 'MM-dd-yyyy') : '' }}\\n \\n
\\n
\\n \\n {{memberData.gender}}\\n
\\n
\\n \\n {{memberData.maritalStatus}}\\n
\\n
\\n
\\n
\\n
\\n
\\n

Dependents:

\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
RelationshipFirst NameLast NameGenderDate of Birth
{{dependent.type}}{{dependent.firstName}}{{dependent.lastName}}{{dependent.gender}}{{dependent.dob ? (dependent.dob| date: 'MM-dd-yyyy') : ''}}\\n \\n \\n
{{noDependent}}
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

Insurance Details:

\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
{{memberData.healthInsuranceCompanyName}}
\\n
\\n
\\n
\\n
\\n \\n
{{memberData.insurancePolicyNo}}
\\n
\\n
\\n
\\n
\\n \\n
{{memberData.insuranceAddress}}
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n {{memberData.insuranceEffectiveDate ? (memberData.insuranceEffectiveDate| date: 'MM-dd-yyyy'):''}}\\n
\\n
\\n
\\n
\\n
\\n \\n
{{memberData.insuranceEndDate ? (memberData.insuranceEndDate| date: 'MM-dd-yyyy'):''}}
\\n
\\n
\\n
\\n
\\n
\\n Not covered by any other Health Insurance\\n
\\n
\\n
\\n
\\n
\\n
\\n

Claim Reimbursement:

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
{{memberData.routingNumber}}
\\n
\\n
\\n
\\n
\\n \\n
{{memberData.accountNumber}}
\\n
\\n
\\n
\\n
\\n \\n
{{memberData.accountType}}
\\n
\\n
\\n
\\n
\\n
No claim found
\\n
\\n
\\n
\\n
\\n\\n\\n \\n
\\n
\\n
\\n
\\n
Update User Details
\\n\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
User Name is required
\\n
User Name must be email format
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Email is required
\\n
Email format is not correct
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Phone Number is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
Update Personal Details
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Email is required
\\n
Invalid email
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Mobile is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
Gender is required.
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
Marital Status is required.
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Date of Birth is required
\\n
\\n
\\n
Primary/Main member age must be greater than 21
\\n
\\n
\\n
Primary/Main member age must be less than 100
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Address Line 1 is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Zip Code is required.
\\n
\\n
\\n
\\n {{f.city.value}}, \\n {{f.state.value}}\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
{{dependentText}} Dependent
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Relationship is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
First Name is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Last Name is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
Gender is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Date of Birth is required
\\n
\\n
\\n
Spouse age must be greater than\\n 21
\\n
Child age must be greater than 0\\n
\\n
\\n
\\n
Spouse age must be less than 100\\n
\\n
Child age must be less than 21\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
Update Insurance
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\n
\\n
\\n
\\n \\n \\n
\\n
Insurance Company Name is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Insurance Policy No is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Insurance Address is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Insurance Effective Date is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Insurance End Date is required
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
Update Claim
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n\\n \\n {{routingMessage}}\\n \\n\\n
\\n
Routing Number is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Account Number is required
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Confirm Account Number is required
\\n
Account Number and Confirm Account Number must\\n match\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"\\n

Success!

\\n \\n {{ message }}\\n \\n \\n \\n \\n \\n\"","export default \"\\n \\n \\n \\n \\n \\n \\n
\\n Register \\n
0\\\">\\n

\\n {{ message }}\\n

\\n
\\n
\\n
\\n \\n \\n
\\n
Name is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Employee Id is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Email is required
\\n
Invalid email
\\n
\\n
\\n
\\n \\n \\n
\\n
Password is required
\\n
Password must be at least 6 characters
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\"","export default \"\\n \\n \\n \\n \\n \\n Reset Password \\n
0\\\">\\n

\\n {{ message }}\\n

\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
New Password is required
\\n
New Password must be at least 6 characters
\\n
\\n
\\n
\\n \\n \\n
\\n
Confirm Password is required
\\n
Passwords must match
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\"","export default \"\\n \\n \\n \\n \\n \\n Setup Your Account \\n
0\\\">\\n

\\n {{ message }}\\n

\\n
\\n
0\\\">\\n

\\n {{ message }}\\n

\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Email is required
\\n
Invalid email
\\n
\\n
\\n
\\n \\n \\n
\\n
Last Name is required
\\n
\\n
\\n
\\n \\n \\n
\\n
Date of Birth is required
\\n
\\n
\\n
\\n \\n \\n
\\n
New Password is required
\\n
New Password must be at least 6 characters
\\n
\\n
\\n
\\n \\n \\n
\\n
Confirm Password is required
\\n
Passwords must match
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\"","export default \"
\\n \\n \\n\\n \\n\\n \\n\\n
\\n
\\n \\n \\n
\\n
\\n\\n
\\n
\\n \\n \\n
\\n
\\n\\n
\\n {{question.options[0].value}}\\n \\n {{question.options[1].value}}\\n \\n \\n
\\n\\n
\\n
  • {{error}}\\n
  • \\n
    \\n\\n
    \\n \\n \\n
    \\n
    \\n
    \"","export default \"
    \\n
    \\n \\n \\n
    \\n
    \\n\"","export default \"
    \\n
    {{message.text}}
    \\n
    x
    \\n
    \"","export default \"

    captcha works!

    \\n\"","export default \"\\n\\n\"","export default \"
    \\n © {{getCopyrightYear()}} Think Wellness Now, Inc..\\n
    \\n\"","export default \"
    \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n
    \"","export default \"
    \\n
    \\n\\n
    \\n \\n
    \"","export default \"\"","export default \"
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n \\n
    \"","export default \"
    \\n

    {{options.title}}

    \\n \\n
    \\n
    \\n \\n \\n
    {{options.content}}
    \\n
    \\n \\n {{options.content}}\\n \\n
    \\n
    \\n \\n \\n
    \"","export default \"
    \\n \\n \\n
    \\n\\n
    \\n \\n
    \\n\"","export default \"\"","export default \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
    \\n
    \\n\\n
    \\n
    \\n \\n

    Title

    \\n

    Description

    \\n
    \\n
    \\n\\n
    \\n\"","export default \"
    \\n
    \\n \\n \\n
    \\n
    \\n\"","export default \"

    success-message-dialog works!

    \\n\"","export default \"

    get-lead works!

    \\n
    \\n
    \\n \\n \\n We'll never share your email with anyone else.\\n
    \\n
    \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n \\n
    \"","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","import { Component } from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html'\n})\nexport class AppComponent {\n title = 'app';\n\n showHead: boolean = false;\n\n ngOnInit() {\n }\n\n constructor(private router: Router) {\n // on route change to '/login', set the variable showHead to false\n router.events.forEach((event) => {\n if (event instanceof NavigationStart) { \n if (event['url'].includes('/admin/enroll/member/') ||event['url'].includes('/admin/invoice-detail/')) { \n this.showHead = false;\n } else {\n this.showHead = true;\n }\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AgGridModule } from 'ag-grid-angular';\nimport { AppComponent } from './app.component';\nimport { NavMenuComponent } from './shared/controls/nav-menu/nav-menu.component';\nimport { AlertComponent } from './shared/controls/alert/alert.component';\nimport { LoginComponent } from './controls/login/login.component';\nimport { RegisterComponent } from './controls/register/register.component';\nimport { ChangePasswordComponent } from './controls/change-password/change-password.component';\nimport { ForgotPasswordComponent } from './controls/forgot-password/forgot-password.component';\nimport { ResetPasswordComponent } from './controls/reset-password/reset-password.component';\nimport { VimeoPlayerComponent } from './controls/Members/vimeo-player/vimeo-player.component';\nimport { HRAFormComponent } from './controls/hra/hra.component';\nimport { VimeoUrlPipe } from './shared/pipes/vimeo-url.pipe';\nimport { DynamicFormComponent } from './data-driven/dynamic-form/dynamic-form.component';\nimport { DynamicFormBuilderComponent } from './data-driven/dynamic-form-builder/dynamic-form-builder.component';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { appRoutingModule } from './app.routing';\nimport { JwtInterceptor } from './helpers/jwt.interceptor';\nimport { ErrorInterceptor } from './helpers/error.interceptor';\nimport { VimeoService } from './services/vimeo.service';\nimport { DynamicControlService } from './data-driven/dynamic-control.Service';\nimport { QuestionService } from './data-driven/question.service';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ModalComponent } from './shared/controls/modal/modal.component';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { SharedLayoutModule } from './shared/controls/layout/shared-layout.module';\nimport { SharedInputIconModule } from './shared/controls/input-icon';\nimport { FooterControl } from './shared/controls/layout/footer/footer.ctrl';\nimport { ThankYouComponent } from './controls/ThankYou/thankyou.component';\nimport { WelcomeComponent } from './controls/Members/welcome/welcome.component';\nimport { SetPasswordComponent } from './controls/set-password/set-password.component';\nimport { BrokerModule } from './controls/Broker/broker.module';\nimport { SharedModule } from './shared/shared.module';\nimport { AdminModule } from './controls/Admin/admin.module';\nimport {EnrollmentModule } from './controls/enrollment/enrollment.module';\nimport { MyVideoListComponent } from './controls/Members/my-video-list/my-video-list.component';\nimport { VideoPlayerComponent } from './controls/Members/video-player/video-player/video-player.component';\nimport { CategoriesListingComponent } from './controls/Members/categories-listing/categories-listing/categories-listing.component';\nimport { ViewMemberHraComponent } from './controls/Admin/groups/group-members/view-member-hra/view-member-hra.component';\nimport { AddMedicalReceiptComponent } from './controls/Members/wellnessprogresses/add-medicalreceipt/add-medicalreceipt.component';\nimport { ViewMedicalReceiptComponent } from './controls/Members/wellnessprogresses/view-medicalreceipt/view-medicalreceipt.component';\nimport { BtnCellRendererComponent } from './shared/controls/renderers/button-renderer/btn.renderer';\nimport { GaugeChartModule } from 'angular-gauge-chart';\nimport { ViewWellnessprogressComponent } from './controls/Members/wellnessprogresses/view-wellnessprogress/view-wellnessprogress.component';\nimport { RecaptchaModule } from 'ng-recaptcha';\nimport { CompletedLinkComponent } from './controls/Admin/employee/completionLink/completed-link/completed-link.component';\nimport { InvalidEnrollmentLinkComponent } from './controls/error-redirection/invalid-enrollment-link/invalid-enrollment-link.component';\nimport { PopupComponent } from './controls/pop-up/popup/popup.component';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\n//import { EnrollmentLeadComponent } from 'src/enrollment-lead/enrollment-lead.component';\nimport { MatProgressBarModule, MatDatepickerModule, MatFormFieldModule, MatProgressSpinnerModule, MatNativeDateModule } from '@angular/material';\nimport { MaskPipe } from 'src/mask.pipe';\nimport { GetLeadComponent } from '../get-lead/get-lead.component';\nimport { SelectPlansComponent } from './controls/Plans/select-plans/select-plans.component';\nimport { SignaturePadModule } from 'angular2-signaturepad';\nimport { ManageProfileComponent } from './controls/manage-profile/manage-profile.component';\nimport { EditButtonRendererComponent } from './controls/Admin/period/renderButton/view-button-renderer.component';\n\n @NgModule({\n declarations: [\n AppComponent,\n NavMenuComponent,\n AlertComponent,\n MyVideoListComponent,\n VideoPlayerComponent,\n LoginComponent,\n RegisterComponent,\n ChangePasswordComponent,\n ForgotPasswordComponent,\n ResetPasswordComponent,\n VimeoPlayerComponent,\n HRAFormComponent,\n VimeoUrlPipe,\n DynamicFormComponent,\n DynamicFormBuilderComponent,\n ModalComponent,\n FooterControl,\n ThankYouComponent,\n WelcomeComponent,\n SetPasswordComponent,\n CategoriesListingComponent,\n ViewMemberHraComponent,\n AddMedicalReceiptComponent,\n ViewMedicalReceiptComponent,\n ViewWellnessprogressComponent,\n CompletedLinkComponent,\n InvalidEnrollmentLinkComponent,\n PopupComponent,\n //EnrollmentLeadComponent,\n MaskPipe,\n GetLeadComponent,\n SelectPlansComponent,\n ManageProfileComponent, EditButtonRendererComponent \n \n ],\n\n \n entryComponents: [ModalComponent, PopupComponent, EditButtonRendererComponent],\n imports: [\n BrowserModule.withServerTransition({ appId: \"ng-cli-universal\" }),\n HttpClientModule,\n BrowserModule,\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n NgbModule,\n CommonModule,\n SharedModule,\n appRoutingModule,\n SharedLayoutModule,\n SharedInputIconModule,\n AgGridModule.withComponents([BtnCellRendererComponent]),\n BrokerModule,\n AdminModule,\n EnrollmentModule,\n GaugeChartModule,\n RecaptchaModule,\n MatDialogModule,\n MatButtonModule,\n NoopAnimationsModule,\n MatProgressBarModule,\n MatDatepickerModule,\n MatFormFieldModule,\n MatProgressSpinnerModule,\n MatNativeDateModule,\n SignaturePadModule\n ],\n providers: [\n { provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true }, \n DatePipe,\n VimeoService,\n DynamicControlService,\n QuestionService,\n \n ],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","import { Routes, RouterModule } from '@angular/router';\nimport { AuthGuard } from './helpers/auth.guard';\nimport { LoginComponent } from './controls/login/login.component';\nimport { ChangePasswordComponent } from './controls/change-password/change-password.component';\nimport { ForgotPasswordComponent } from './controls/forgot-password/forgot-password.component';\nimport { ResetPasswordComponent } from './controls/reset-password/reset-password.component';\nimport { HRAFormComponent } from './controls/hra/hra.component';\nimport { AdminAuthGuard } from './helpers/auth-admin.gaurd';\nimport { ThankYouComponent } from './controls/ThankYou/thankyou.component';\nimport { WelcomeComponent } from './controls/Members/welcome/welcome.component';\nimport { SetPasswordComponent } from './controls/set-password/set-password.component';\nimport { BrokerAuthGuard } from './helpers/auth-broker.gaurd';\nimport { BrokerListComponent } from './controls/Admin/broker/broker-list/broker-list.component';\nimport { GroupListComponent } from './controls/Admin/groups/group-list/group-list.component';\nimport { UpdateGroupComponent } from './controls/Admin/groups/update-group/update-group.component';\nimport { UpdateVideoComponent } from './controls/Admin/videos/update-video/update-video.component';\nimport { VideoListComponent } from './controls/Admin/videos/video-list/video-list.component';\nimport { BrokerGroupsComponent } from './controls/Broker/broker-groups/broker-groups.component';\nimport { BrokerGroupMembersComponent } from './controls/Broker/broker-group-members/broker-group-members.component';\nimport { ClaimsListComponent } from './controls/Admin/claims/claims-list/claims-list.component';\nimport { EnrollmentComponent } from './controls/enrollment/enrollment.component';\nimport { CompletedLinkComponent } from './controls/Admin/employee/completionLink/completed-link/completed-link.component';\nimport { InvalidEnrollmentLinkComponent } from './controls/error-redirection/invalid-enrollment-link/invalid-enrollment-link.component';\nimport { MyVideoListComponent } from './controls/Members/my-video-list/my-video-list.component';\nimport { VideoPlayerComponent } from './controls/Members/video-player/video-player/video-player.component';\nimport { CategoriesListingComponent } from './controls/Members/categories-listing/categories-listing/categories-listing.component';\nimport { MemberAuthGuard } from './helpers/auth-member.guard';\nimport { GroupMemberListComponent } from './controls/Admin/groups/group-members/group-member-list/group-member-list.component';\nimport { ViewMemberHraComponent } from './controls/Admin/groups/group-members/view-member-hra/view-member-hra.component';\nimport { AddClaimComponent } from './controls/Admin/groups/group-members/add-claim/add-claim.component';\nimport { UpdateMemberComponent } from './controls/Admin/groups/group-members/update-member/update-member.component';\nimport { IndemnityBenefitListComponent } from './controls/Admin/indemnitybenefits/indemnitybenefit-list/indemnitybenefit-list.component';\nimport { UpdateIndemnityBenefitComponent } from './controls/Admin/indemnitybenefits/update-indemnitybenefit/update-indemnitybenefit.component';\nimport { MedicalReceiptListComponent } from './controls/Admin/wellnessprogresses/medicalreceipt-list/medicalreceipt-list.component';\nimport { UpdateMedicalReceiptComponent } from './controls/Admin/wellnessprogresses/update-medicalreceipt/update-medicalreceipt.component';\nimport { AddMedicalReceiptComponent } from './controls/Members/wellnessprogresses/add-medicalreceipt/add-medicalreceipt.component';\nimport { ViewMedicalReceiptComponent } from './controls/Members/wellnessprogresses/view-medicalreceipt/view-medicalreceipt.component';\nimport { PlanListComponent } from './controls/Admin/plans/plan-list/plan-list.component';\nimport { UpdatePlanComponent } from './controls/Admin/plans/update-plan/update-plan.component';\nimport { ViewWellnessprogressComponent } from './controls/Members/wellnessprogresses/view-wellnessprogress/view-wellnessprogress.component';\nimport { GetLeadComponent } from '../get-lead/get-lead.component';\nimport { MemberListComponent } from './controls/Admin/members/member-list/member-list.component';\nimport { MemberViewComponent } from './controls/Admin/members/member-view/member-view.component';\nimport { MemberEnrollmentComponent } from './controls/Admin/members/enrollment/enrollment.component';\nimport { LeadListComponent } from './controls/Admin/leads/lead-list/lead-list.component';\nimport { SelectPlansComponent } from './controls/Plans/select-plans/select-plans.component';\nimport { GroupMembersFamilyListComponent } from './controls/Admin/groups/group-members-family/group-members-family-list/group-members-family-list.component';\nimport { UpdateFamilyMembersComponent } from './controls/Admin/groups/group-members-family/update-family-members/update-family-members.component';\nimport { UploadLeadComponent } from './controls/Admin/leads/upload-lead/upload-lead.component';\nimport { ManageProfileComponent } from './controls/manage-profile/manage-profile.component';\nimport { PeriodListComponent } from './controls/Admin/period/period-list/period-list.component';\nimport { PeriodScheduleComponent } from './controls/Admin/period/period-schedule/period-schedule.component';\nimport { EditPeriodScheduleComponent } from './controls/Admin/period/period-schedule/edit-period-schedule/edit-period-schedule.component';\nimport { UpdatePeriodScheduleComponent } from './controls/Admin/period/period-schedule/update-period-schedule/update-period-schedule.component';\nimport { GroupViewComponent } from './controls/Admin/groups/group-view/group-view.component';\nimport { ClaimPaymentComponent } from './controls/Admin/claims/Claim-payment/claim-payment.component';\nimport { ClaimLineItemViewComponent } from './controls/Admin/claims/claim-line-item/claim-view/claim-view.component';\nimport { ClaimPaymentsListComponent } from './controls/Admin/claims/claim-payments-list/claim-payments-list.component';\nimport { InvoiceListComponent } from './controls/Admin/Invoice/invoice-list/invoice-list.component';\nimport { InvoiceViewComponent } from './controls/Admin/Invoice/invoice-list/invoice-view/invoice-view.component';\nimport { AddInvoiceComponent } from './controls/Admin/Invoice/add-invoice/add-invoice.component';\nimport { PeriodSchedulePlanComponent } from './controls/Admin/period/period-schedule-plan/period-schedule-plan.component';\nimport { UpdatePeriodSchedulePlanComponent } from './controls/Admin/period/period-schedule-plan/update-period-schedule-plan/update-period-schedule-plan.component';\nimport { InvoiceDetailComponent } from './controls/Admin/Invoice/invoice-detail/invoice-detail.component';\n\nconst routes: Routes = [\n { path: \"Get/Lead\", component: GetLeadComponent },\n /* { path: 'admin/enroll/member/:memberid', component: MemberEnrollmentComponent },*/\n //{ path: \"Enrollment/Lead\", component: EnrollmentLeadComponent }, \n {\n path: \"enrollment\",\n children: [\n { path: \"enroll\", component: EnrollmentComponent },\n { path: \"complete\", component: CompletedLinkComponent },\n { path: \"error\", component: InvalidEnrollmentLinkComponent }\n ]\n },\n {\n path: \"plans\",\n children: [\n { path: \"selection\", component: SelectPlansComponent },\n ]\n },\n {\n path: 'admin',\n canActivate: [AdminAuthGuard],\n children: [\n { path: 'agents', component: BrokerListComponent },\n { path: 'groups', component: GroupListComponent },\n { path: 'groups/:groupId', component: UpdateGroupComponent },\n { path: 'groups/:groupId/members', component: GroupMemberListComponent },\n { path: \"groups/:memberId/familyMembers\", component: GroupMembersFamilyListComponent },\n { path: 'groups/:groupId/members/:memberId', component: UpdateMemberComponent },\n {\n path: \"groups/:memberId/familymember/:id\",\n component: UpdateFamilyMembersComponent,\n },\n { path: 'groups/:groupId/members/:memberId/view-hra', component: ViewMemberHraComponent },\n { path: 'groups/:groupId/lead-list', component: LeadListComponent },\n { path: 'members/:memberId/view-hra', component: ViewMemberHraComponent },\n { path: 'groups/:groupId/members/:memberId/add-claim', component: AddClaimComponent },\n {\n path: 'groups/:groupId/upload-lead', component: UploadLeadComponent\n },\n { path: 'videos', component: VideoListComponent },\n { path: 'videos/:videoId', component: UpdateVideoComponent },\n { path: 'claims', component: ClaimsListComponent },\n { path: 'invoices', component: InvoiceListComponent },\n { path: 'invoice-view/:id', component: InvoiceViewComponent },\n { path: 'invoice-detail/:id', component: InvoiceDetailComponent },\n { path: 'claim-payment-view/:id', component: ClaimLineItemViewComponent },\n { path: 'indemnitybenefits', component: IndemnityBenefitListComponent },\n { path: 'indemnitybenefits/:indemnityBenefitId', component: UpdateIndemnityBenefitComponent },\n { path: 'medicalreceipts', component: MedicalReceiptListComponent },\n { path: 'medicalreceipts/:medicalReceiptId', component: UpdateMedicalReceiptComponent },\n { path: 'plans', component: PlanListComponent },\n { path: 'plans/:id', component: UpdatePlanComponent },\n { path: \"members\", component: MemberListComponent },\n { path: \"periods\", component: PeriodListComponent },\n { path: \"period/:periodid/period-schedule\", component: PeriodScheduleComponent },\n { path: \"periodschedule/:id\", component: UpdatePeriodScheduleComponent },\n { path: 'periodSchedule-plan/:id', component: PeriodSchedulePlanComponent },\n { path: 'members/:memberid', component: MemberViewComponent },\n { path: 'enroll/member/:memberid', component: MemberEnrollmentComponent },\n { path: 'group-view/:id', component: GroupViewComponent },\n { path: 'claim-payment/:id', component: ClaimPaymentComponent },\n { path: 'invoice/:id', component: AddInvoiceComponent },\n { path: 'claim-payment-list/:id', component: ClaimPaymentsListComponent },\n { path: \"period-schedule-plan/:id\", component: UpdatePeriodSchedulePlanComponent },\n { path: '', redirectTo: 'admin/members', pathMatch: 'full' },\n // loadChildren: './controls/Admin/admin-routing.module#AdminRoutingModule'\n ]\n },\n {\n path: 'agents',\n canActivate: [BrokerAuthGuard],\n children: [\n { path: 'groups', component: BrokerGroupsComponent },\n { path: 'groups/:groupId', component: BrokerGroupMembersComponent },\n { path: '', redirectTo: 'agents/groups', pathMatch: 'full' },\n // loadChildren: () => import('./controls/Broker/broker-routing.module').then(m => m.BrokerRoutingModule)\n ]\n },\n {\n path: '',\n canActivate: [MemberAuthGuard],\n children: [\n { path: '', component: WelcomeComponent },\n // { path: 'videos', component: MyVideoListComponent },\n { path: 'videos/categories/:category', component: MyVideoListComponent },\n { path: 'videos/:videoId', component: VideoPlayerComponent },\n { path: 'categories', component: CategoriesListingComponent },\n { path: 'medicalreceipt', component: AddMedicalReceiptComponent },\n { path: 'medicalreceipt/view', component: ViewMedicalReceiptComponent },\n { path: 'wellnessprogress/view', component: ViewWellnessprogressComponent },\n { path: '', redirectTo: '/', pathMatch: 'full' },\n ]\n },\n\n { path: 'change-password', component: ChangePasswordComponent, canActivate: [AuthGuard] },\n { path: 'hra-form/:groupId/:memberId', component: HRAFormComponent },\n { path: 'hra-form/thankyou', component: ThankYouComponent },\n\n // { path: 'register', component: RegisterComponent },\n { path: 'login', component: LoginComponent },\n { path: 'set-password', component: SetPasswordComponent },\n { path: 'forgot-password', component: ForgotPasswordComponent },\n { path: 'reset-password', component: ResetPasswordComponent },\n { path: 'manage-profile', component: ManageProfileComponent },\n { path: '**', redirectTo: '' } // otherwise redirect to home\n];\n\nexport const appRoutingModule = RouterModule.forRoot(routes);\n","export default \".EnrollBtn {\\n background-color: #4CAF50;\\n color: white;\\n font-size: 12px;\\n line-height: 18px;\\n border: 0px;\\n padding: 4px 12px; }\\n\\nlabel {\\n font-weight: bold; }\\n\\n/*Hide all except first fieldset*/\\n\\n#msform fieldset:not(:first-of-type) {\\n display: none; }\\n\\n/*headings*/\\n\\n.fs-title {\\n font-size: 18px;\\n text-transform: uppercase;\\n color: #2C3E50;\\n margin-bottom: 10px;\\n letter-spacing: 2px;\\n font-weight: bold; }\\n\\n.fs-subtitle {\\n font-weight: normal;\\n font-size: 13px;\\n color: #666;\\n margin-bottom: 20px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9jb250cm9scy9BZG1pbi9JbnZvaWNlL2FkZC1pbnZvaWNlL2FkZC1pbnZvaWNlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UseUJBQXlCO0VBQ3pCLFlBQVk7RUFDWixlQUFlO0VBQ2YsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxpQkFBaUIsRUFBQTs7QUFFbkI7RUFDRSxpQkFBaUIsRUFBQTs7QUFHbkIsaUNBQUE7O0FBQ0E7RUFDRSxhQUFhLEVBQUE7O0FBS2YsV0FBQTs7QUFDQTtFQUNFLGVBQWU7RUFDZix5QkFBeUI7RUFDekIsY0FBYztFQUNkLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixXQUFXO0VBQ1gsbUJBQW1CLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb250cm9scy9BZG1pbi9JbnZvaWNlL2FkZC1pbnZvaWNlL2FkZC1pbnZvaWNlLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLkVucm9sbEJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Q0FGNTA7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgYm9yZGVyOiAwcHg7XG4gIHBhZGRpbmc6IDRweCAxMnB4O1xufVxubGFiZWwge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLypIaWRlIGFsbCBleGNlcHQgZmlyc3QgZmllbGRzZXQqL1xuI21zZm9ybSBmaWVsZHNldDpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuXG5cbi8qaGVhZGluZ3MqL1xuLmZzLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogIzJDM0U1MDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5mcy1zdWJ0aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICM2NjY7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cblxuXG4iXX0= */\"","import { Component, OnInit, Input } from '@angular/core';\nimport { FormBuilder, Validators, FormGroup } from '@angular/forms';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { catchError, debounceTime, distinctUntilChanged, first, map, switchMap, tap } from 'rxjs/operators';\nimport { GroupService } from 'src/app/services/group.service';\nimport { ColDef } from 'ag-grid-community';\nimport { BtnCellRendererComponent } from 'src/app/shared/controls/renderers/button-renderer/btn.renderer';\n//import { CompanyService } from 'src/app/services/company.service';\nimport { AlertifyService } from 'src/app/services/alertify.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { PeriodService } from '../../../../services/period.service';\nimport { Period } from '../../../../models/period';\nimport { Group } from '../../../../models/group';\nimport { PeriodScheduleService } from '../../../../services/periodSchedule.service';\nimport { InvoiceService } from '../../../../services/invoice.service';\nimport { GridApi } from 'ag-grid-community';\n\nfunction actionCellRenderer(params) {\n let eGui = document.createElement(\"div\");\n\n let editingCells = params.api.getEditingCells();\n // checks if the rowIndex matches in at least one of the editing cells\n let isCurrentRowEditing = editingCells.some((cell) => {\n return cell.rowIndex === params.node.rowIndex;\n });\n\n if (isCurrentRowEditing) {\n eGui.innerHTML = `\n\n\n`;\n } else {\n eGui.innerHTML = `\n \n\n`;\n }\n return eGui;\n}\n\n@Component({\n selector: 'app-view-invoicepayment',\n templateUrl: './add-invoice.component.html',\n styleUrls: ['./add-invoice.component.scss'],\n})\nexport class AddInvoiceComponent implements OnInit {\n @Input()\n groupRefrenceId: string;\n Id: number;\n\n periodId: number;\n claimForm: FormGroup;\n periodValue: string;\n state: string;\n loading = false;\n loadingBroker = false;\n groupData: Group = new Group();\n members: any;\n submitted = false;\n groupId: number;\n ShowGrid = false;\n periodScheduleList: any;\n period: Period[];\n periodScheduleId: string;\n\n errorMessage: string[] = [];\n successMessage = '';\n addUpdateError: string[] = [];\n columnDefs: ColDef[] = [];\n\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n cellDataType: 'text',\n editable: true\n };\n claimFormData: any;\n claimPaymentId: number;\n private gridApi;\n \n LineItemForm: FormGroup;\n step = 1;\n constructor(\n private _groupService: GroupService, private _datepipe: DatePipe,\n private _formBuilder: FormBuilder,\n private _invoiceService: InvoiceService,\n private _fb: FormBuilder, private _periodScheduleService: PeriodScheduleService,\n private _alertify: AlertifyService,\n private _router: Router, private _route: ActivatedRoute\n ) {\n\n this._route.params.subscribe(params => {\n this.groupRefrenceId = params['id'];\n });\n \n const _this = this;\n this.columnDefs = [\n\n { hide: true, field: 'memberId' },\n { hide: true, field: 'periodId' },\n { hide: true, field: 'groupId' },\n {\n headerName: 'MemberId', field: 'externalMemberId', suppressMovable: true, maxWidth: 120, sortable: true, filter: true,editable: false,\n },\n {\n headerName: 'Name', field: 'memberName', suppressMovable: true, maxWidth: 150, sortable: true, filter: true, editable: false,\n },\n {\n headerName: 'Amount', field: 'premiumAmount', sortable: true, maxWidth: 300, filter: true, editable: true,\n valueFormatter: function (params) {\n return !!params.value ? '$' + params.value : '';\n }\n },\n {\n headerName: 'Plan Name', field: 'planName', suppressMovable: true, maxWidth: 150, sortable: true, filter: true, editable: false\n },\n {\n headerName: 'Notes', field: 'notes', suppressMovable: true, maxWidth: 150, sortable: true, filter: true, editable: true\n },\n {\n headerName: \"\",\n minWidth: 150,\n cellRenderer: actionCellRenderer,\n editable: false,\n colId: \"action\"\n }\n ];\n \n }\n ngOnInit() { this.getGroupById(); this.getLineItemForm(); }\n onCellClicked(params) {\n \n // Handle click event for action cells\n if (params.column.colId === \"action\" && params.event.target.dataset.action) {\n let action = params.event.target.dataset.action;\n\n if (action === \"edit\") {\n params.api.startEditingCell({\n rowIndex: params.node.rowIndex,\n // gets the first columnKey\n colKey: params.columnApi.getDisplayedCenterColumns()[0].colId\n });\n }\n\n if (action === \"delete\") {\n params.api.applyTransaction({\n remove: [params.node.data]\n });\n this.members.splice(params.node.rowIndex, 1);\n }\n\n if (action === \"update\") {\n params.api.stopEditing(false);\n }\n\n if (action === \"cancel\") {\n params.api.stopEditing(true);\n }\n }\n }\n\n onRowEditingStarted(params) {\n params.api.refreshCells({\n columns: [\"action\"],\n rowNodes: [params.node],\n force: true\n });\n }\n onRowEditingStopped(params) {\n params.api.refreshCells({\n columns: [\"action\"],\n rowNodes: [params.node],\n force: true\n });\n }\n \n getLineItemForm() {\n this.LineItemForm = this._fb.group({\n id: [\"\"],\n paymentAmount: [\"\", [Validators.required]]\n\n });\n }\n getGroupById() {\n if (!!this.groupRefrenceId) {\n this._groupService.getGroup(this.groupRefrenceId).subscribe(group => {\n this.groupData = group;\n this.periodId = group.periodId;\n this.groupId = group.id;\n // this.getPeriods();\n this._getAllSchedule(this.periodId);\n });\n\n }\n }\n private params: any;\n\n agInit(params: any): void {\n this.params = params;\n }\n\n btnClickedHandler() {\n \n let selectedNode = this.params.node;\n let selectedData = selectedNode.data;\n this.params.api.updateRowData({ remove: [selectedData] });\n }\n _getAllSchedule(periodid) {\n this._periodScheduleService.getPeriodScheduleById(periodid).subscribe(data => {\n this.periodScheduleList = data;\n });\n }\n \n changePeriod(event) {\n \n this.ShowGrid = true;\n this.periodScheduleId = event.target.value;\n \n this.getAllMembers();\n\n\n }\n getAllMembers() {\n\n this._invoiceService.getMemberByPeriod(this.groupRefrenceId, Number(this.periodScheduleId))\n .subscribe((members) => {\n this.members = members;\n });\n }\n\n\n submit() {\n this.submitted = true;\n this.loading = true;\n if (this.members.length > 0) {\n let convertedArray = this.members.map(item => ({\n ...item, premiumAmount: Number(item.premiumAmount),\n periodScheduleId: Number(this.periodScheduleId)\n }));\n const memberInvoice = {\n \"groupId\": convertedArray[0].groupId,\n \"periodId\": convertedArray[0].periodId,\n \"periodScheduleId\": Number(this.periodScheduleId),\n \"lineItems\": convertedArray\n };\n this._invoiceService.addInvoiceMemberDetail(memberInvoice).subscribe(\n (res) => {\n this.loading = false;\n this._alertify.success('Invoice added successfully.');\n this._router.navigate(['/admin/invoice-detail/' + res.id]);\n },\n error => {\n \n if (error.error instanceof Array) {\n error.error.map(err => this.errorMessage.push(err.value));\n } else if (typeof error.error === 'string') {\n this.errorMessage.push(error.error);\n } else {\n this.errorMessage.push(error);\n }\n this.loading = false;\n });\n }\n }\n\n\n\n\n\n // convenience getter for easy access to form fields\n get f() {\n return this.LineItemForm.controls;\n }\n\n\n onGridReady(params: any) {\n this.gridApi = params.api;\n this.gridApi.setDomLayout(\"autoHeight\");\n }\n\n\n}\n\n","export default \".container {\\n max-width: 1440px;\\n width: 1310px;\\n}\\n\\n.formtitle {\\n padding-bottom: 0px;\\n}\\n\\n.headingContainer {\\n border: 1px solid;\\n}\\n\\n.heading {\\n border-bottom: 1px solid;\\n}\\n\\n@media screen and (min-width: 320px) and (max-width: 600px) {\\n\\n .main-logo {\\n top: 24px;\\n }\\n\\n a b {\\n font-size: 22px !important;\\n }\\n\\n a span {\\n font-size: 22px !important;\\n }\\n\\n .logo {\\n width: 20rem !important;\\n }\\n}\\n\\n::-webkit-input-placeholder {\\n /* Chrome, Firefox, Opera, Safari 10.1+ */\\n color: #bbb6b6;\\n\\n}\\n\\n::-moz-placeholder {\\n /* Chrome, Firefox, Opera, Safari 10.1+ */\\n color: #bbb6b6;\\n\\n}\\n\\n:-ms-input-placeholder {\\n /* Chrome, Firefox, Opera, Safari 10.1+ */\\n color: #bbb6b6;\\n\\n}\\n\\n::-ms-input-placeholder {\\n /* Chrome, Firefox, Opera, Safari 10.1+ */\\n color: #bbb6b6;\\n\\n}\\n\\n::placeholder {\\n /* Chrome, Firefox, Opera, Safari 10.1+ */\\n color: #bbb6b6;\\n\\n}\\n\\n.bgadd {\\n background-image: linear-gradient(to right, #626a5c, #539b4c) !important;\\n color: #fff !important;\\n padding: 10px;\\n margin-bottom: 0px;\\n ;\\n}\\n\\n.styleline {\\n padding-left: 18px !important;\\n font-weight: bold !important;\\n color: #1c34bb !important;\\n text-decoration: underline !important;\\n}\\n\\n.errorsms {\\n color: red !important;\\n display: block !important;\\n width: 100% !important;\\n padding-left: 18px !important;\\n font-weight: bold !important;\\n text-transform: uppercase !important;\\n font-size: 12px !important;\\n}\\n\\n.btn-primary.disabled,\\n.btn-primary:disabled {\\n color: #000;\\n}\\n\\n.errprtext {\\n font-size: 12px;\\n color: red;\\n font-weight: 500;\\n font-family: revert;\\n}\\n\\n.stepformmanage {\\n padding: 18px !important;\\n background-color: #ffffff !important;\\n\\n position: relative !important;\\n border-radius: 0px !important;\\n}\\n\\n.form-control:focus {\\n color: #495057;\\n background-color: #fff;\\n border-color: #80bdff;\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\\n}\\n\\n.btn-success {\\n color: #fff;\\n background-color: #f89a5e !important;\\n border-color: #f89a5e !important;\\n}\\n\\n.formset {\\n width: 100%;\\n height: 38px;\\n background: #fef4ee !important;\\n border: 1px solid #5e5e5e40 !important;\\n border-radius: 4px !important;\\n}\\n\\nlabel {\\n font-weight: 500;\\n}\\n\\n.terms-content {\\n max-height: 100%;\\n}\\n\\n.term-item {\\n margin-bottom: 10px;\\n}\\n\\n.term-item label {\\n display: inline-block;\\n vertical-align: middle;\\n margin-left: 10px;\\n}\\n\\n.terms-container {\\n height: 150px;\\n /* Adjust the height as needed */\\n overflow-y: auto;\\n border: 1px solid #ccc;\\n padding: 10px;\\n}\\n\\n.terms-content {\\n max-height: 100%;\\n}\\n\\n.terms-text {\\n white-space: pre-wrap;\\n}\\n\\n.logo {\\n margin-left: 120px;\\n margin-top: 30px;\\n width: 100%;\\n}\\n\\n.HeaderForm {\\n color: black;\\n font-size: 25px;\\n position: relative;\\n top: 14px;\\n left: 25px;\\n}\\n\\n/* .stepformmanage{margin-bottom: 25px;} */\\n\\n.formset {\\n width: 100%;\\n height: 46px;\\n background: #ffffff;\\n border: 1px solid #bbb6b640;\\n}\\n\\n@media screen and (min-width: 320px) and (max-width: 600px) {\\n .mr0 {\\n margin: 0px !important;\\n }\\n\\n .rc-anchor-normal {\\n width: 98% !important;\\n }\\n\\n}\\n\\n.mt-15 {\\n margin-top: 15px;\\n}\\n\\n.mt-30 {\\n margin-top: 30px;\\n}\\n\\n.mt-20 {\\n margin-top: 20px;\\n}\\n\\n.mr-15 {\\n margin-right: 15px;\\n}\\n\\n.ml-15 {\\n margin-left: 15px;\\n}\\n\\n@media print {\\n\\n .no-print,\\n .no-print * {\\n display: none !important;\\n }\\n}\\n\\n.signClass>img {\\n width: 300px;\\n height: 150px;\\n vertical-align: bottom;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udHJvbHMvQWRtaW4vSW52b2ljZS9pbnZvaWNlLWRldGFpbC9pbnZvaWNlLWRldGFpbC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCO0VBQ2pCLGFBQWE7QUFDZjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLHdCQUF3QjtBQUMxQjs7QUFFQTs7RUFFRTtJQUNFLFNBQVM7RUFDWDs7RUFFQTtJQUNFLDBCQUEwQjtFQUM1Qjs7RUFFQTtJQUNFLDBCQUEwQjtFQUM1Qjs7RUFFQTtJQUNFLHVCQUF1QjtFQUN6QjtBQUNGOztBQUVBO0VBQ0UseUNBQXlDO0VBQ3pDLGNBQWM7O0FBRWhCOztBQUpBO0VBQ0UseUNBQXlDO0VBQ3pDLGNBQWM7O0FBRWhCOztBQUpBO0VBQ0UseUNBQXlDO0VBQ3pDLGNBQWM7O0FBRWhCOztBQUpBO0VBQ0UseUNBQXlDO0VBQ3pDLGNBQWM7O0FBRWhCOztBQUpBO0VBQ0UseUNBQXlDO0VBQ3pDLGNBQWM7O0FBRWhCOztBQUVBO0VBQ0Usd0VBQXdFO0VBQ3hFLHNCQUFzQjtFQUN0QixhQUFhO0VBQ2Isa0JBQWtCOztBQUVwQjs7QUFJQTtFQUNFLDZCQUE2QjtFQUM3Qiw0QkFBNEI7RUFDNUIseUJBQXlCO0VBQ3pCLHFDQUFxQztBQUN2Qzs7QUFHQTtFQUNFLHFCQUFxQjtFQUNyQix5QkFBeUI7RUFDekIsc0JBQXNCO0VBQ3RCLDZCQUE2QjtFQUM3Qiw0QkFBNEI7RUFDNUIsb0NBQW9DO0VBQ3BDLDBCQUEwQjtBQUM1Qjs7QUFFQTs7RUFFRSxXQUFXO0FBQ2I7O0FBS0E7RUFDRSxlQUFlO0VBQ2YsVUFBVTtFQUNWLGdCQUFnQjtFQUNoQixtQkFBbUI7QUFDckI7O0FBSUE7RUFDRSx3QkFBd0I7RUFDeEIsb0NBQW9DOztFQUVwQyw2QkFBNkI7RUFDN0IsNkJBQTZCO0FBQy9COztBQUVBO0VBQ0UsY0FBYztFQUNkLHNCQUFzQjtFQUN0QixxQkFBcUI7RUFDckIsVUFBVTtFQUNWLGdEQUFnRDtBQUNsRDs7QUFFQTtFQUNFLFdBQVc7RUFDWCxvQ0FBb0M7RUFDcEMsZ0NBQWdDO0FBQ2xDOztBQUVBO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWiw4QkFBOEI7RUFDOUIsc0NBQXNDO0VBQ3RDLDZCQUE2QjtBQUMvQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFHQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLHFCQUFxQjtFQUNyQixzQkFBc0I7RUFDdEIsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsYUFBYTtFQUNiLGdDQUFnQztFQUNoQyxnQkFBZ0I7RUFDaEIsc0JBQXNCO0VBQ3RCLGFBQWE7QUFDZjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsU0FBUztFQUNULFVBQVU7QUFDWjs7QUFFQSwwQ0FBMEM7O0FBRzFDO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsMkJBQTJCO0FBQzdCOztBQUdBO0VBQ0U7SUFDRSxzQkFBc0I7RUFDeEI7O0VBRUE7SUFDRSxxQkFBcUI7RUFDdkI7O0FBRUY7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7O0VBRUU7O0lBRUUsd0JBQXdCO0VBQzFCO0FBQ0Y7O0FBRUE7RUFDRSxZQUFZO0VBQ1osYUFBYTtFQUNiLHNCQUFzQjtBQUN4QiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL0ludm9pY2UvaW52b2ljZS1kZXRhaWwvaW52b2ljZS1kZXRhaWwuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDE0NDBweDtcbiAgd2lkdGg6IDEzMTBweDtcbn1cblxuLmZvcm10aXRsZSB7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5oZWFkaW5nQ29udGFpbmVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQ7XG59XG5cbi5oZWFkaW5nIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cbiAgLm1haW4tbG9nbyB7XG4gICAgdG9wOiAyNHB4O1xuICB9XG5cbiAgYSBiIHtcbiAgICBmb250LXNpemU6IDIycHggIWltcG9ydGFudDtcbiAgfVxuXG4gIGEgc3BhbiB7XG4gICAgZm9udC1zaXplOiAyMnB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubG9nbyB7XG4gICAgd2lkdGg6IDIwcmVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuOjpwbGFjZWhvbGRlciB7XG4gIC8qIENocm9tZSwgRmlyZWZveCwgT3BlcmEsIFNhZmFyaSAxMC4xKyAqL1xuICBjb2xvcjogI2JiYjZiNjtcblxufVxuXG4uYmdhZGQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICM2MjZhNWMsICM1MzliNGMpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgO1xufVxuXG5cblxuLnN0eWxlbGluZSB7XG4gIHBhZGRpbmctbGVmdDogMThweCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzFjMzRiYiAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xufVxuXG5cbi5lcnJvcnNtcyB7XG4gIGNvbG9yOiByZWQgIWltcG9ydGFudDtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi5idG4tcHJpbWFyeS5kaXNhYmxlZCxcbi5idG4tcHJpbWFyeTpkaXNhYmxlZCB7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG5cblxuXG4uZXJycHJ0ZXh0IHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogcmVkO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LWZhbWlseTogcmV2ZXJ0O1xufVxuXG5cblxuLnN0ZXBmb3JtbWFuYWdlIHtcbiAgcGFkZGluZzogMThweCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xufVxuXG4uZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgY29sb3I6ICM0OTUwNTc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogIzgwYmRmZjtcbiAgb3V0bGluZTogMDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMCwgMTIzLCAyNTUsIDAuMjUpO1xufVxuXG4uYnRuLXN1Y2Nlc3Mge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4OWE1ZSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNmODlhNWUgIWltcG9ydGFudDtcbn1cblxuLmZvcm1zZXQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzOHB4O1xuICBiYWNrZ3JvdW5kOiAjZmVmNGVlICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM1ZTVlNWU0MCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDtcbn1cblxubGFiZWwge1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG5cbi50ZXJtcy1jb250ZW50IHtcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLnRlcm0taXRlbSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi50ZXJtLWl0ZW0gbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4udGVybXMtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxNTBweDtcbiAgLyogQWRqdXN0IHRoZSBoZWlnaHQgYXMgbmVlZGVkICovXG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbi50ZXJtcy1jb250ZW50IHtcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLnRlcm1zLXRleHQge1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG59XG5cbi5sb2dvIHtcbiAgbWFyZ2luLWxlZnQ6IDEyMHB4O1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLkhlYWRlckZvcm0ge1xuICBjb2xvcjogYmxhY2s7XG4gIGZvbnQtc2l6ZTogMjVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDE0cHg7XG4gIGxlZnQ6IDI1cHg7XG59XG5cbi8qIC5zdGVwZm9ybW1hbmFnZXttYXJnaW4tYm90dG9tOiAyNXB4O30gKi9cblxuXG4uZm9ybXNldCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQ2cHg7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiYmI2YjY0MDtcbn1cblxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5tcjAge1xuICAgIG1hcmdpbjogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAucmMtYW5jaG9yLW5vcm1hbCB7XG4gICAgd2lkdGg6IDk4JSAhaW1wb3J0YW50O1xuICB9XG5cbn1cblxuLm10LTE1IHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cblxuLm10LTMwIHtcbiAgbWFyZ2luLXRvcDogMzBweDtcbn1cblxuLm10LTIwIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cblxuLm1yLTE1IHtcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xufVxuXG4ubWwtMTUge1xuICBtYXJnaW4tbGVmdDogMTVweDtcbn1cblxuQG1lZGlhIHByaW50IHtcblxuICAubm8tcHJpbnQsXG4gIC5uby1wcmludCAqIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnNpZ25DbGFzcz5pbWcge1xuICB3aWR0aDogMzAwcHg7XG4gIGhlaWdodDogMTUwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { first } from 'rxjs/operators';\n\nimport { ColDef } from 'ag-grid-community';\nimport { DatePipe } from '@angular/common';\nimport { InvoiceStatus } from '../../../../models/enums/invoiceStatus';\nimport { InvoiceService } from 'src/app/services/invoice.service';\nimport { PeriodService } from 'src/app/services/period.service';\nimport { AlertifyService } from 'src/app/services/alertify.service';\nimport { GroupService } from 'src/app/services/group.service';\nimport { Invoice } from 'src/app/models/invoice';\n\n@Component({\n selector: 'app-invoice-detail',\n templateUrl: './invoice-detail.component.html',\n styleUrls: ['./invoice-detail.component.css']\n})\n\nexport class InvoiceDetailComponent implements OnInit {\n // period: Period[];\n // groupList: Group[];\n invoice: Invoice = new Invoice();\n invoiceitem: any[];\n invoiceForm: FormGroup;\n loading: boolean;\n invoiceCreateForm: FormGroup;\n submitted: boolean;\n invoiceId: string;\n groupId: string;\n groupDetail: any;\n selectedEnumStatus: InvoiceStatus = InvoiceStatus.All;\n \n constructor(private _invoiceService: InvoiceService, private _periodService: PeriodService,\n private _groupService: GroupService,\n private _fb: FormBuilder, private _alertify: AlertifyService,\n private _route: ActivatedRoute, private _router: Router) {\n\n this._route.params.subscribe(params => { this.invoiceId = params['id']; });\n const _this = this;\n\n }\n\n setPrinterFriendly(api) {\n var eGridDiv = document.querySelector(\".ag-grid-500\");\n api.setDomLayout(\"print\");\n }\n setNormal(api) {\n var eGridDiv = document.querySelector(\".ag-grid-500\");\n //eGridDiv.style.width = \"600px\";\n //eGridDiv.style.height = \"200px\";\n api.setDomLayout(null);\n }\n ngOnInit() { \n \n \n this.getInvoiceById(this.invoiceId);\n this.getAllInvoices();\n\n }\n getAllInvoices() {\n\n this._invoiceService.getAllItemByInvoiceId(this.invoiceId).subscribe(res => {\n this.invoiceitem = res;\n })\n }\n \n\n \n getInvoiceById(invoiceId: string) {\n this._invoiceService.getInvoiceById(invoiceId).subscribe(data => {\n \n this.invoice = data;\n this.groupId = data.groupId;\n this._groupService.getGroup(this.invoice.groupId).subscribe(data => {\n \n this.groupDetail = data;\n });\n });\n \n }\n\n}\n\n","export default \".mt-2 {\\n margin-top:2.6rem!important;\\n}\\nlabel {\\n font-weight: bold;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udHJvbHMvQWRtaW4vSW52b2ljZS9pbnZvaWNlLWxpc3QvaW52b2ljZS1saXN0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSwyQkFBMkI7QUFDL0I7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL0ludm9pY2UvaW52b2ljZS1saXN0L2ludm9pY2UtbGlzdC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm10LTIge1xuICAgIG1hcmdpbi10b3A6Mi42cmVtIWltcG9ydGFudDtcbn1cbmxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4iXX0= */\"","import { DatePipe } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { ColDef } from 'ag-grid-community';\nimport { Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport { InvoiceStatus } from 'src/app/models/enums/invoiceStatus';\nimport { InvoiceType } from 'src/app/models/enums/invoiceType';\nimport { InvoiceService } from 'src/app/services/invoice.service';\nimport { BtnCellRendererComponent } from 'src/app/shared/controls/renderers/button-renderer/btn.renderer';\nimport { FormatDate } from '../../../../helpers/format';\nimport { GroupService } from '../../../../services/group.service';\n\n\n@Component({\n selector: 'app-invoice-list',\n templateUrl: './invoice-list.component.html',\n styleUrls: ['./invoice-list.component.css']\n})\nexport class InvoiceListComponent implements OnInit {\n invoices: any[];\n groups: any[];\n columnDefs: ColDef[] = [];\n filteredGroups: Observable;\n statusEnumValues = [\n { value: InvoiceStatus.All, text: 'Select Status' },\n { value: InvoiceStatus.New, text: 'New' },\n { value: InvoiceStatus.ReadyToSend, text: 'Ready To Send' },\n { value: InvoiceStatus.Sent, text: 'Sent' },\n { value: InvoiceStatus.Paid, text: 'Paid' },\n { value: InvoiceStatus.Cancelled, text: 'Cancelled' }\n ];\n typeEnumValues = [\n { value: InvoiceType.All, text: 'Select Type' },\n { value: InvoiceType.PremiumFee, text: 'Premium' },\n { value: InvoiceType.ThinkWellnessNowFee, text: 'Think Wellness Now Fee' },\n ];\n filterInvoiceList: FormGroup;\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n \n private gridApi;\n constructor(private _invoiceService: InvoiceService, private _groupService: GroupService, private _date: FormatDate, private _router: Router, private _formBuilder: FormBuilder) {\n \n const _this = this;\n const date = new Date();\n this.columnDefs = [\n { headerName: 'Invoice Number', field: 'number', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Type', field: 'type', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Group Name', field: 'groupName', suppressMovable: true, sortable: true, filter: true },\n {\n headerName: 'Start Date', field: 'startDate', suppressMovable: true, sortable: true, filter: true,\n valueFormatter: function (params) {\n return !!params.value ? _date.formatDate(params.value) : '';\n }\n },\n {\n headerName: 'End Date', field: 'endDate', suppressMovable: true, sortable: true, filter: true,\n valueFormatter: function (params) {\n return !!params.value ? _date.formatDate(params.value) : '';\n }\n },\n {\n headerName: 'Amount', field: 'amount', suppressMovable: true, sortable: true, filter: true,\n valueFormatter: function (params) {\n return !!params.value ? '$' + params.value : '';\n }\n },\n { headerName: 'Status', field: 'status', suppressMovable: true, sortable: true, filter: true },\n {\n headerName: '', field: 'id', suppressMovable: true, cellRendererFramework: BtnCellRendererComponent,\n cellRendererParams: {\n showInvoiceBtn: true,\n showInvoiceFormBtn: true\n }\n },\n \n ];\n \n this.filterInvoiceList = this._formBuilder.group({\n endDate: [null],\n startDate: [null],\n type: InvoiceType.All,\n status: InvoiceStatus.All,\n group: ['']\n });\n }\n \n ngOnInit() {\n this.getAllInvoices();\n this.getAllGroups(); \n }\n\n getAllGroups() {\n this._groupService.getAllGroups().subscribe(res => {\n this.groups = res.map(obj => obj.name);\n this.filteredGroups = this.filterInvoiceList.controls[\"group\"].valueChanges.pipe(\n startWith(''),\n map(value => this._filter(value))\n );\n })\n }\n private _filter(value: string): string[] {\n \n const filterValue = this._normalizeValue(value);\n return this.groups.filter(g => this._normalizeValue(g).includes(filterValue));\n }\n\n private _normalizeValue(value: string): string {\n return value.toLowerCase().replace(/\\s/g, '');\n }\n onGridReady(params) {\n this.gridApi = params.api;\n this.gridApi.setDomLayout(\"autoHeight\");\n }\n getAllInvoices() {\n \n this._invoiceService.getAllInvoices(this.filterInvoiceList.value).subscribe(res => {\n \n this.invoices = res;\n })\n }\n onFilterTextBoxChanged() {\n this.gridApi.setQuickFilter(\n (document.getElementById('filter-text-box') as HTMLInputElement).value\n );\n }\n\n onSubmit() {\n \n this.filterInvoiceList.controls[\"type\"].setValue(Number(this.filterInvoiceList.controls[\"type\"].value));\n this.filterInvoiceList.controls[\"status\"].setValue(Number(this.filterInvoiceList.controls[\"status\"].value)); \n this._invoiceService.getAllInvoices(this.filterInvoiceList.value).subscribe(res => {\n this.invoices = res;\n })\n }\n}\n","export default \"label {\\n font-weight: bold; }\\n\\n@media print {\\n .no-print, .no-print * {\\n display: none !important; } }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9jb250cm9scy9BZG1pbi9JbnZvaWNlL2ludm9pY2UtbGlzdC9pbnZvaWNlLXZpZXcvaW52b2ljZS12aWV3LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCLEVBQUE7O0FBRW5CO0VBQ0U7SUFDRSx3QkFBd0IsRUFBQSxFQUN6QiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL0ludm9pY2UvaW52b2ljZS1saXN0L2ludm9pY2Utdmlldy9pbnZvaWNlLXZpZXcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJsYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuQG1lZGlhIHByaW50IHtcbiAgLm5vLXByaW50LCAubm8tcHJpbnQgKiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { first } from 'rxjs/operators';\n\nimport { ColDef } from 'ag-grid-community';\nimport { DatePipe } from '@angular/common';\nimport { Invoice } from '../../../../../models/invoice';\nimport { InvoiceStatus } from '../../../../../models/enums/invoiceStatus';\nimport { InvoiceService } from '../../../../../services/invoice.service';\nimport { AlertifyService } from '../../../../../services/alertify.service';\nimport { GroupNameRendererComponent } from '../../../groups/group-list/group-name-renderer/group-name-renderer';\nimport { InvoiceType } from '../../../../../models/enums/invoiceType';\nimport { Period } from '../../../../../models/period';\nimport { Group } from '../../../../../models/group';\nimport { PeriodService } from '../../../../../services/period.service';\nimport { GroupService } from '../../../../../services/group.service';\n\n@Component({\n selector: 'app-invoice-view',\n templateUrl: './invoice-view.component.html',\n styleUrls: ['./invoice-view.component.scss']\n})\n\nexport class InvoiceViewComponent implements OnInit {\n columnDefs: ColDef[] = [];\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n private gridApi;\n period: Period[];\n groupList: Group[];\n invoice: Invoice = new Invoice();\n invoiceitem: any[];\n invoiceForm: FormGroup;\n loading: boolean;\n invoiceCreateForm: FormGroup;\n submitted: boolean;\n invoiceId: string;\n selectedEnumStatus: InvoiceStatus = InvoiceStatus.All;\n enumStatus = [\n { value: InvoiceStatus.All, text: 'Select Status' },\n { value: InvoiceStatus.New, text: 'New' },\n { value: InvoiceStatus.ReadyToSend, text: 'ReadyToSend' },\n { value: InvoiceStatus.Sent, text: 'Sent' },\n { value: InvoiceStatus.Paid, text: 'Paid' },\n { value: InvoiceStatus.Cancelled, text: 'Cancelled' }\n ];\n enumType = [\n { value: InvoiceType.All, text: 'Select Type' },\n { value: InvoiceType.PremiumFee, text: 'PremiumFee' },\n { value: InvoiceType.ThinkWellnessNowFee, text: 'ThinkWellnessNowFee' }\n ];\n constructor(private _invoiceService: InvoiceService, private _periodService: PeriodService,\n private _groupService: GroupService,\n private _fb: FormBuilder, private _alertify: AlertifyService,\n private _route: ActivatedRoute, private _router: Router) {\n\n this._route.params.subscribe(params => { this.invoiceId = params['id']; });\n const _this = this;\n\n this.columnDefs = [\n { headerName: 'Line Item Number', field: 'id', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Member Id', field: 'externalId', suppressMovable: true, sortable: true, filter: true },\n {\n headerName: 'Member Name', field: 'memberName', suppressMovable: true, sortable: true, filter: true\n },\n { headerName: 'Plan Name', field: 'planName', suppressMovable: true, sortable: true, filter: true },\n\n {\n headerName: 'Premium Amount', field: 'premiumAmount', suppressMovable: true, sortable: true, filter: true,\n valueFormatter: function (params) {\n return !!params.value ? '$' + params.value : '';\n }\n },\n {\n headerName: \"\",\n field: \"\",\n suppressMovable: true,\n cellRendererFramework:\n GroupNameRendererComponent, cellRendererParams: {\n showViewBtn: true,\n clicked: function (params: any) {\n _this._router.navigate([`/admin/members/${params.data.externalId}`]);\n }\n }\n },\n\n ];\n }\n\n onBtPrint() {\n var gridApi = this.gridApi;\n this.setPrinterFriendly(gridApi);\n setTimeout(function () {\n print();\n this.setNormal(gridApi);\n }, 2000);\n }\n setPrinterFriendly(api) {\n var eGridDiv = document.querySelector(\".ag-grid-500\");\n api.setDomLayout(\"print\");\n }\n setNormal(api) {\n var eGridDiv = document.querySelector(\".ag-grid-500\");\n //eGridDiv.style.width = \"600px\";\n //eGridDiv.style.height = \"200px\";\n api.setDomLayout(null);\n }\n getInvoiceSubmitForm() {\n this.invoiceCreateForm = this._fb.group({\n startDate: [\"\", [Validators.required]],\n endDate: [\"\", [Validators.required]],\n number: [\"\", Validators.required],\n groupId: [\"\", Validators.required],\n periodId: [\"\", Validators.required],\n dueDate: [\"\", Validators.required],\n status: [InvoiceStatus.All, [Validators.required, this.validateStatus.bind(this)]],\n type: [InvoiceType.All, [Validators.required, this.validateType.bind(this)]],\n });\n\n }\n ngOnInit() {\n this.getInvoiceSubmitForm();\n this.getInvoiceForm();\n this.getAllInvoices();\n this.getPeriods();\n this.getGroups();\n this.getInvoiceById(this.invoiceId);\n\n }\n onGridReady(params) {\n this.gridApi = params.api;\n this.gridApi.setDomLayout(\"autoHeight\");\n }\n getAllInvoices() {\n\n this._invoiceService.getAllItemByInvoiceId(this.invoiceId).subscribe(res => {\n this.invoiceitem = res;\n })\n }\n onChange(value: any) {\n this.selectedEnumStatus = value.target.value;\n }\n\n getInvoiceForm() {\n this.invoiceForm = this._fb.group({\n id: [\"\"],\n status: [InvoiceStatus.All, [Validators.required, this.validateStatus.bind(this)]]\n });\n }\n // Custom validator to ensure \"All\" is selected\n validateStatus(control: any) {\n return Number(control.value) === InvoiceStatus.All ? { required: true } : null;\n }\n validateType(control: any) {\n return Number(control.value) === InvoiceType.All ? { required: true } : null;\n }\n onSubmit() {\n this.submitted = true;\n this.invoiceForm.get('status').markAsTouched();\n if (this.invoiceForm.invalid) {\n return;\n }\n\n this.loading = true;\n this._invoiceService.updateInvoiceStatus(this.invoiceId, this.selectedEnumStatus.toString())\n .pipe(first())\n .subscribe(\n (response) => {\n\n this.getInvoiceById(this.invoiceId);\n this.loading = false;\n this.submitted = false;\n const button = document.getElementById('closeP')!;\n button.click();\n this._alertify.success('Invoice updated successfully.');\n this.getAllInvoices();\n },\n (error) => {\n if (error.error instanceof Array) {\n this._alertify.error(error.error);\n error.error.map((err) => this._alertify.error(err.value));\n } else if (typeof error.error === \"string\") {\n this._alertify.error(error.error);\n } else {\n this._alertify.error(error.error);\n }\n this.loading = false;\n }\n );\n }\n\n onInvoiceSubmit() {\n debugger;\n this.submitted = true;\n this.invoiceCreateForm.get('status').markAsTouched();\n if (this.invoiceCreateForm.invalid) {\n return;\n }\n this.loading = true;\n\n this.invoiceCreateForm.controls.groupId.setValue(+this.invoiceCreateForm.value.groupId);\n this._invoiceService.addInvoice(this.invoiceCreateForm.value)\n .pipe(first())\n .subscribe(\n (data: Invoice) => {\n debugger\n this.getInvoiceById(this.invoiceId);\n this.loading = false;\n this.submitted = false;\n const button = document.getElementById('closeInvoiceCreate')!;\n button.click();\n this._alertify.success('Invoice added successfully.');\n this.getAllInvoices();\n },\n (error) => {\n debugger;\n if (error.error instanceof Array) {\n this._alertify.error(error.error);\n error.error.map((err) => this._alertify.error(err.value));\n } else if (typeof error.error === \"string\") {\n this._alertify.error(error.error);\n } else {\n this._alertify.error(error.error);\n }\n this.loading = false;\n }\n );\n }\n get f() {\n return this.invoiceForm.controls;\n }\n get p() {\n return this.invoiceCreateForm.controls;\n }\n setInvoiceForm() {\n this.f.id.setValue(this.invoice.id);\n\n this.f.status.setValue(InvoiceStatus[this.invoice.status]);\n\n }\n\n getPeriods() {\n this._periodService\n .getAllPeriods()\n .subscribe((periods) => {\n this.period = periods;\n\n });\n }\n\n getGroups() {\n this._groupService.getAllGroups()\n .subscribe((group) => {\n this.groupList = group;\n\n });\n }\n getInvoiceById(invoiceId: string) {\n this._invoiceService.getInvoiceById(invoiceId).subscribe(data => {\n this.invoice = data;\n });\n }\n\n\n}\n\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { BtnCellRendererComponent } from 'src/app/shared/controls/renderers/button-renderer/btn.renderer';\nimport { AgGridModule } from 'ag-grid-angular';\nimport { BrokerListComponent } from './broker/broker-list/broker-list.component';\nimport { AddBrokerComponent } from './broker/add-broker/add-broker.component';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { UpdateGroupComponent } from './groups/update-group/update-group.component';\nimport { VideoListComponent } from './videos/video-list/video-list.component';\nimport { UpdateVideoComponent } from './videos/update-video/update-video.component';\nimport { AddEditGroupComponent } from './groups/add-group/add-edit.component';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { AddEditVideoComponent } from './videos/add-video/add-edit.component';\nimport { GroupListComponent } from './groups/group-list/group-list.component';\nimport { ClaimsListComponent } from './claims/claims-list/claims-list.component';\nimport { GroupMemberListComponent } from './groups/group-members/group-member-list/group-member-list.component';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { GroupNameRendererComponent } from './groups/group-list/group-name-renderer/group-name-renderer';\nimport { AddClaimComponent } from './groups/group-members/add-claim/add-claim.component';\nimport { AddEditMemberComponent } from './groups/group-members/add-member/add-edit-member.component';\nimport { UpdateMemberComponent } from './groups/group-members/update-member/update-member.component';\nimport { IndemnityBenefitListComponent } from './indemnitybenefits/indemnitybenefit-list/indemnitybenefit-list.component';\nimport { AddEditIndemnityBenefitComponent } from './indemnitybenefits/add-indemnitybenefit/add-edit.component';\nimport { UpdateIndemnityBenefitComponent } from './indemnitybenefits/update-indemnitybenefit/update-indemnitybenefit.component';\nimport { MedicalReceiptListComponent } from './wellnessprogresses/medicalreceipt-list/medicalreceipt-list.component';\nimport { UpdateMedicalReceiptComponent } from './wellnessprogresses/update-medicalreceipt/update-medicalreceipt.component';\nimport { PlanListComponent } from './plans/plan-list/plan-list.component';\nimport { AddEditPlanComponent } from './plans/add-plan/add-edit.component';\nimport { UpdatePlanComponent } from './plans/update-plan/update-plan.component';\nimport { MembersWithOutClaimsListComponent } from './claims/members-without-claims-list/members-without-claims-list.component';\nimport { GroupMembersFamilyListComponent } from './groups/group-members-family/group-members-family-list/group-members-family-list.component';\nimport { UpdateFamilyMembersComponent } from './groups/group-members-family/update-family-members/update-family-members.component';\nimport { AddEditFamilyMembersComponent } from './groups/group-members-family/add-edit-family-members/add-edit-family-members.component';\nimport { ClaimPaymentsListComponent } from './claims/claim-payments-list/claim-payments-list.component';\n//import { SignaturePadComponent } from 'src/app/shared/controls/signature/signature-pad/signature-pad.component';\nimport { EnrollmentComponent } from './employee/enrollment/enrollment.component';\nimport { AddDependentComponent } from './employee/add-dependent/add-dependent.component';\nimport { UploadLeadComponent } from './leads/upload-lead/upload-lead.component';\nimport { LeadListComponent } from './leads/lead-list/lead-list.component';\nimport { MatAutocompleteModule } from '@angular/material';\nimport { MemberListComponent } from './members/member-list/member-list.component';\nimport { MemberViewComponent } from './members/member-view/member-view.component';\nimport { MemberEnrollmentComponent } from './members/enrollment/enrollment.component';\nimport { PeriodListComponent } from './period/period-list/period-list.component';\nimport { AddPeriodComponent } from './period/add-period/add-period.component';\nimport { PeriodScheduleComponent } from './period/period-schedule/period-schedule.component';\nimport { EditPeriodScheduleComponent } from './period/period-schedule/edit-period-schedule/edit-period-schedule.component';\nimport { UpdatePeriodScheduleComponent } from './period/period-schedule/update-period-schedule/update-period-schedule.component';\nimport { MemberNameRendererComponent } from './members/member-list/member-name-renderer/member-name-renderer';\nimport { GroupViewComponent } from './groups/group-view/group-view.component';\nimport { ClaimPaymentComponent } from './claims/Claim-payment/claim-payment.component';\nimport { ClaimLineItemViewComponent } from './claims/claim-line-item/claim-view/claim-view.component';\nimport { PeriodSchedulePlanComponent } from './period/period-schedule-plan/period-schedule-plan.component';\nimport { EditPeriodSchedulePlanComponent } from './period/period-schedule-plan/edit-period-schedule-plan/edit-period-schedule-plan.component';\nimport { UpdatePeriodSchedulePlanComponent } from './period/period-schedule-plan/update-period-schedule-plan/update-period-schedule-plan.component';\nimport { InvoiceListComponent } from './Invoice/invoice-list/invoice-list.component';\nimport { InvoiceViewComponent } from './Invoice/invoice-list/invoice-view/invoice-view.component';\nimport { AddInvoiceComponent } from './Invoice/add-invoice/add-invoice.component';\nimport { InvoiceDetailComponent } from './Invoice/invoice-detail/invoice-detail.component';\n\n@NgModule({\n entryComponents: [AddDependentComponent],\n declarations: [\n AddBrokerComponent,\n BrokerListComponent,\n GroupListComponent,\n UpdateGroupComponent,\n AddEditGroupComponent,\n VideoListComponent,\n UpdateVideoComponent,\n AddEditVideoComponent,\n ClaimsListComponent,\n MembersWithOutClaimsListComponent,\n GroupMemberListComponent,\n GroupNameRendererComponent,\n AddClaimComponent,\n AddEditMemberComponent,\n UpdateMemberComponent,\n IndemnityBenefitListComponent,\n AddEditIndemnityBenefitComponent,\n UpdateIndemnityBenefitComponent,\n PlanListComponent,\n MemberListComponent,\n AddEditPlanComponent,\n UpdatePlanComponent,\n MedicalReceiptListComponent,\n UpdateMedicalReceiptComponent,\n GroupMembersFamilyListComponent,\n UpdateFamilyMembersComponent,\n AddEditFamilyMembersComponent,\n ClaimPaymentsListComponent,\n //SignaturePadComponent,\n EnrollmentComponent,\n AddDependentComponent,\n UploadLeadComponent,\n LeadListComponent,\n MemberViewComponent,\n MemberEnrollmentComponent,\n InvoiceListComponent,\n PeriodListComponent,\n AddPeriodComponent,\n PeriodScheduleComponent,\n EditPeriodScheduleComponent,\n UpdatePeriodScheduleComponent,\n InvoiceViewComponent,\n MemberNameRendererComponent,\n GroupViewComponent,\n ClaimPaymentComponent,\n ClaimLineItemViewComponent,\n PeriodSchedulePlanComponent, EditPeriodSchedulePlanComponent, UpdatePeriodSchedulePlanComponent,\n AddInvoiceComponent,InvoiceDetailComponent\n ],\n imports: [\n // AdminRoutingModule,\n AgGridModule.withComponents([\n BtnCellRendererComponent,\n GroupNameRendererComponent,\n MemberNameRendererComponent\n ]),\n CommonModule,\n BrowserModule,\n FormsModule,\n NgbModule,\n ReactiveFormsModule,\n SharedModule,\n MatAutocompleteModule\n ],\n\n exports: [\n AddDependentComponent\n ]\n})\nexport class AdminModule {}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL2Jyb2tlci9hZGQtYnJva2VyL2FkZC1icm9rZXIuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { first } from 'rxjs/operators';\nimport { AlertService } from 'src/app/services/alertService.service';\nimport { BrokerService } from 'src/app/services/broker.service';\n\n@Component({\n selector: 'app-add-broker',\n templateUrl: './add-broker.component.html',\n styleUrls: ['./add-broker.component.scss']\n})\nexport class AddBrokerComponent implements OnInit {\n\n @Output()\n public agentaddedEvent: EventEmitter = new EventEmitter();\n\n brokerForm: FormGroup;\n loading = false;\n submitted = false;\n errorMessage: string[] = [];\n\n get f() { return this.brokerForm.controls; }\n\n constructor(private _formBuilder: FormBuilder, private _brokerService: BrokerService, private _router: Router, private _alertService: AlertService) { }\n\n ngOnInit() {\n this.brokerForm = this._formBuilder.group({\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n email: ['', [Validators.required, Validators.email]],\n password: [''],\n });\n\n this.brokerForm.get('password').valueChanges\n .subscribe(password => {\n if (!!password) {\n this.brokerForm.get('password').setValidators([Validators.minLength(6)]);\n }\n });\n }\n\n onSubmit() {\n this.submitted = true;\n\n // reset alerts on submit\n this.errorMessage = [];\n this._alertService.clear();\n\n // stop here if form is invalid\n if (this.brokerForm.invalid) {\n return;\n }\n\n this.loading = true;\n this._brokerService.addBroker(this.brokerForm.value)\n .pipe(first())\n .subscribe(\n () => {\n this.loading = false;\n this._alertService.success(`Agent ${this.brokerForm.value['email']} added successfully`);\n this.agentaddedEvent.emit(true);\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this.errorMessage.push(err.value));\n } else if (typeof error.error === 'string') {\n this.errorMessage.push(error.error);\n } else {\n this.errorMessage.push(error);\n }\n this.loading = false;\n });\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL2Jyb2tlci9icm9rZXItbGlzdC9icm9rZXItbGlzdC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\nimport { ColDef } from 'ag-grid-community';\nimport { User } from 'src/app/models/User';\nimport { BrokerService } from 'src/app/services/broker.service';\n\n@Component({\n selector: 'app-broker-list',\n templateUrl: './broker-list.component.html',\n styleUrls: ['./broker-list.component.scss']\n})\nexport class BrokerListComponent implements OnInit {\n addingBroker = false;\n brokers: User[];\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n columnDefs: ColDef[] = [\n { hide: true, field: 'id' },\n { headerName: 'First Name', field: 'firstName', suppressMovable:true, sortable: true, filter: true },\n { headerName: 'Last Name', field: 'lastName', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Email', field: 'userName', suppressMovable: true, sortable: true, filter: true },\n ];\n private _gridApi;\n constructor(private _brokerService: BrokerService) {\n this._getAllBrokers();\n }\n\n ngOnInit() {\n }\n\n onGridReady(params) {\n this._gridApi = params.api;\n }\n\n addBroker() {\n this.addingBroker = true;\n }\n\n showAllBrokers() {\n this._getAllBrokers();\n this.addingBroker = false;\n }\n\n private _getAllBrokers() {\n this._brokerService.getAllBrokers().subscribe(brokers => {\n this.brokers = brokers;\n this._gridApi.hideOverlay();\n if (this.brokers.length == 0)\n this._gridApi.showNoRowsOverlay();\n });\n }\n\n public overlayNoRowsTemplate =\n 'No rows found';\n\n}\n","export default \"label {\\n font-weight: bold; }\\n\\n/*Hide all except first fieldset*/\\n\\n#msform fieldset:not(:first-of-type) {\\n display: none; }\\n\\n/*headings*/\\n\\n.fs-title {\\n font-size: 18px;\\n text-transform: uppercase;\\n color: #2C3E50;\\n margin-bottom: 10px;\\n letter-spacing: 2px;\\n font-weight: bold; }\\n\\n.fs-subtitle {\\n font-weight: normal;\\n font-size: 13px;\\n color: #666;\\n margin-bottom: 20px; }\\n\\n/*progressbar*/\\n\\n#progressbar {\\n margin-bottom: 30px;\\n overflow: hidden;\\n /*CSS counters to number the steps*/\\n counter-reset: step; }\\n\\n#progressbar li {\\n list-style-type: none;\\n color: white;\\n text-transform: uppercase;\\n font-size: 9px;\\n width: 33.33%;\\n float: left;\\n position: relative;\\n letter-spacing: 1px; }\\n\\n#progressbar li:before {\\n content: counter(step);\\n counter-increment: step;\\n width: 24px;\\n height: 24px;\\n line-height: 26px;\\n display: block;\\n font-size: 12px;\\n color: #333;\\n background: white;\\n border-radius: 25px;\\n margin: 0 auto 10px auto; }\\n\\n/*progressbar connectors*/\\n\\n#progressbar li:after {\\n content: '';\\n width: 100%;\\n height: 2px;\\n background: white;\\n position: absolute;\\n left: -50%;\\n top: 9px;\\n z-index: -1;\\n /*put it behind the numbers*/ }\\n\\n#progressbar li:first-child:after {\\n /*connector not needed before the first step*/\\n content: none; }\\n\\n/*marking active/completed steps green*/\\n\\n/*The number of the step and the connector before it = green*/\\n\\n#progressbar li.active:before, #progressbar li.active:after {\\n background: #ee0979;\\n color: white; }\\n\\n#progressbar li.inactive:before {\\n background: burlywood;\\n color: #000; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9jb250cm9scy9BZG1pbi9jbGFpbXMvQ2xhaW0tcGF5bWVudC9jbGFpbS1wYXltZW50LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCLEVBQUE7O0FBR25CLGlDQUFBOztBQUNBO0VBQ0UsYUFBYSxFQUFBOztBQUtmLFdBQUE7O0FBQ0E7RUFDRSxlQUFlO0VBQ2YseUJBQXlCO0VBQ3pCLGNBQWM7RUFDZCxtQkFBbUI7RUFDbkIsbUJBQW1CO0VBQ25CLGlCQUFpQixFQUFBOztBQUduQjtFQUNFLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsV0FBVztFQUNYLG1CQUFtQixFQUFBOztBQUdyQixjQUFBOztBQUNBO0VBQ0UsbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQixtQ0FBQTtFQUNBLG1CQUFtQixFQUFBOztBQUdyQjtFQUNFLHFCQUFxQjtFQUNyQixZQUFZO0VBQ1oseUJBQXlCO0VBQ3pCLGNBQWM7RUFDZCxhQUFhO0VBQ2IsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixtQkFBbUIsRUFBQTs7QUFHckI7RUFDRSxzQkFBc0I7RUFDdEIsdUJBQXVCO0VBQ3ZCLFdBQVc7RUFDWCxZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxlQUFlO0VBQ2YsV0FBVztFQUNYLGlCQUFpQjtFQUNqQixtQkFBbUI7RUFDbkIsd0JBQXdCLEVBQUE7O0FBRzFCLHlCQUFBOztBQUNBO0VBQ0UsV0FBVztFQUNYLFdBQVc7RUFDWCxXQUFXO0VBQ1gsaUJBQWlCO0VBQ2pCLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsUUFBUTtFQUNSLFdBQVc7RUFBRSw0QkFBQSxFQUE2Qjs7QUFHNUM7RUFDRSw2Q0FBQTtFQUNBLGFBQWEsRUFBQTs7QUFHZix1Q0FBQTs7QUFDQSw2REFBQTs7QUFDQTtFQUNFLG1CQUFtQjtFQUNuQixZQUFZLEVBQUE7O0FBS2Q7RUFDRSxxQkFBcUI7RUFDckIsV0FBVyxFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29udHJvbHMvQWRtaW4vY2xhaW1zL0NsYWltLXBheW1lbnQvY2xhaW0tcGF5bWVudC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qSGlkZSBhbGwgZXhjZXB0IGZpcnN0IGZpZWxkc2V0Ki9cbiNtc2Zvcm0gZmllbGRzZXQ6bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cblxuXG4vKmhlYWRpbmdzKi9cbi5mcy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICMyQzNFNTA7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZnMtc3VidGl0bGUge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjNjY2O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4vKnByb2dyZXNzYmFyKi9cbiNwcm9ncmVzc2JhciB7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8qQ1NTIGNvdW50ZXJzIHRvIG51bWJlciB0aGUgc3RlcHMqL1xuICBjb3VudGVyLXJlc2V0OiBzdGVwO1xufVxuXG4jcHJvZ3Jlc3NiYXIgbGkge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiA5cHg7XG4gIHdpZHRoOiAzMy4zMyU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG59XG5cbiNwcm9ncmVzc2JhciBsaTpiZWZvcmUge1xuICBjb250ZW50OiBjb3VudGVyKHN0ZXApO1xuICBjb3VudGVyLWluY3JlbWVudDogc3RlcDtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjMzMzO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgbWFyZ2luOiAwIGF1dG8gMTBweCBhdXRvO1xufVxuXG4vKnByb2dyZXNzYmFyIGNvbm5lY3RvcnMqL1xuI3Byb2dyZXNzYmFyIGxpOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTUwJTtcbiAgdG9wOiA5cHg7XG4gIHotaW5kZXg6IC0xOyAvKnB1dCBpdCBiZWhpbmQgdGhlIG51bWJlcnMqL1xufVxuXG4jcHJvZ3Jlc3NiYXIgbGk6Zmlyc3QtY2hpbGQ6YWZ0ZXIge1xuICAvKmNvbm5lY3RvciBub3QgbmVlZGVkIGJlZm9yZSB0aGUgZmlyc3Qgc3RlcCovXG4gIGNvbnRlbnQ6IG5vbmU7XG59XG5cbi8qbWFya2luZyBhY3RpdmUvY29tcGxldGVkIHN0ZXBzIGdyZWVuKi9cbi8qVGhlIG51bWJlciBvZiB0aGUgc3RlcCBhbmQgdGhlIGNvbm5lY3RvciBiZWZvcmUgaXQgPSBncmVlbiovXG4jcHJvZ3Jlc3NiYXIgbGkuYWN0aXZlOmJlZm9yZSwgI3Byb2dyZXNzYmFyIGxpLmFjdGl2ZTphZnRlciB7XG4gIGJhY2tncm91bmQ6ICNlZTA5Nzk7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuXG5cbiNwcm9ncmVzc2JhciBsaS5pbmFjdGl2ZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiBidXJseXdvb2Q7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG5cbiJdfQ== */\"","import { Component, OnInit, Input } from '@angular/core';\nimport { FormBuilder, Validators, FormGroup } from '@angular/forms';\nimport { first } from 'rxjs/operators';\nimport { GroupService } from 'src/app/services/group.service';\nimport { User } from 'src/app/models/User';\nimport { ColDef } from 'ag-grid-community';\nimport { AlertifyService } from 'src/app/services/alertify.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { PeriodService } from '../../../../services/period.service';\nimport { Period } from '../../../../models/period';\nimport { Group } from '../../../../models/group';\nimport { PeriodScheduleService } from '../../../../services/periodSchedule.service';\nimport { ClaimPayment } from '../../../../models/claimPayment';\nimport { ClaimPaymentService } from '../../../../services/claimPayment.service';\n\n\n\n@Component({\n selector: 'app-view-claimpayment',\n templateUrl: './claim-payment.component.html',\n styleUrls: ['./claim-payment.component.scss'],\n})\nexport class ClaimPaymentComponent implements OnInit {\n @Input()\n groupRefrenceId: string;\n Id: number;\n periodScheduleId: string;\n periodId: number;\n claimForm: FormGroup;\n periodValue: string;\n state: string;\n loading = false;\n loadingBroker = false;\n groupData: Group = new Group();\n members: any;\n submitted = false;\n groupId: number;\n ShowGrid = false;\n periodScheduleList: any;\n period: Period[];\n\n\n errorMessage: string[] = [];\n successMessage = '';\n addUpdateError: string[] = [];\n columnDefs: ColDef[] = [];\n\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n cellDataType: 'text'\n };\n claimFormData: any;\n claimPaymentId: number;\n private gridApi;\n selectedPeriod: string;\n step = 1;\n constructor(\n private _groupService: GroupService, private _datepipe: DatePipe,\n private _formBuilder: FormBuilder,\n private _claimService: ClaimPaymentService,\n private _periodService: PeriodService,\n private _fb: FormBuilder, private _periodScheduleService: PeriodScheduleService,\n private _alertify: AlertifyService,\n private _router: Router, private _route: ActivatedRoute\n ) {\n\n this._route.params.subscribe(params => {\n this.groupRefrenceId = params['id'];\n });\n const _this = this;\n this.columnDefs = [\n { hide: true, field: 'referenceId' },\n { hide: true, field: 'claimId' },\n { hide: true, field: 'planId' },\n { hide: true, field: 'id' },\n\n {\n headerName: 'Member Id', field: 'memberId', suppressMovable: true, maxWidth: 180, sortable: true, filter: true\n },\n {\n headerName: 'Name', field: 'memberName', suppressMovable: true, maxWidth: 150, sortable: true, filter: true\n },\n {\n headerName: 'Payment Amount', field: 'paymentAmount', sortable: true, maxWidth: 300, filter: true, editable: true\n },\n { headerName: 'Notes', field: 'notes', sortable: true, maxWidth: 100, filter: true, editable: true },\n\n //showClaimBtn\n ];\n }\n\n ngOnInit() {\n\n this.claimForm = this._formBuilder.group({\n id: [0],\n /*name: [\"\", Validators.required],*/\n periodStartDate: [\"\", [Validators.required]],\n periodEndDate: [\"\", [Validators.required]],\n claimStartDate: [\"\", Validators.required],\n claimEndDate: [\"\", Validators.required],\n paymentDate: [\"\", Validators.required],\n // paymentPercentage: [\"\"]\n });\n\n this.getGroupById();\n }\n\n getAllMembers(claimPaymentId, periodScheduleId) {\n\n this._claimService.getMemberClaims(this.groupRefrenceId, claimPaymentId,Number(periodScheduleId)).subscribe((members) => {\n this.members = members;\n });\n }\n getGroupById() {\n if (!!this.groupRefrenceId) {\n this._groupService.getGroup(this.groupRefrenceId).subscribe(group => {\n this.groupData = group;\n this.periodId = group.periodId;\n this.groupId = group.id;\n this._getAllSchedule(this.periodId);\n });\n\n }\n }\n _getAllSchedule(periodid) {\n this._periodScheduleService.getPeriodScheduleById(periodid).subscribe(data => {\n this.periodScheduleList = data;\n });\n }\n changePeriod(event) {\n this.ShowGrid = true;\n this.periodScheduleId = event.target.value;\n this.selectedPeriod = event.target.options[event.target.options.selectedIndex].text;\n this.setDependentForm();\n }\n next() {\n\n if (this.step == 1) {\n this.submitted = true;\n if (this.claimForm.invalid) { return }\n this.loading = true;\n this._claimService.addClaimPayment(this.claimForm.value, this.groupRefrenceId)\n .pipe(first())\n .subscribe(\n (data: ClaimPayment) => {\n\n this.loading = false;\n this.claimPaymentId = data.id;\n // this._router.navigate(['/admin/periods']);\n this.getAllMembers(this.claimPaymentId, this.periodScheduleId);\n if(this.members.length > 0){\n this._alertify.success('Claim payment added successfully.');\n }\n else{\n this._alertify.error('Matching members not found.');\n this._router.navigate(['/admin/group-view/' + this.groupRefrenceId]);\n }\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this.errorMessage.push(err.value));\n } else if (typeof error.error === 'string') {\n this.errorMessage.push(error.error);\n } else {\n this.errorMessage.push(error);\n }\n this.loading = false;\n });\n this.step++\n }\n if (this.step == 2) {\n\n\n\n }\n }\n\n submit() {\n\n if (this.step == 2) {\n this.submitted = true;\n this.loading = true;\n if (this.members.length > 0) {\n let convertedArray = this.members.map(item => ({ ...item, paymentAmount: item.paymentAmount.toString() }));\n\n this._claimService.addClaimLineItem(convertedArray)\n .pipe(first())\n .subscribe(\n () => {\n this.loading = false;\n this._alertify.success('Claim line item added successfully.');\n this._router.navigate(['/admin/claim-payment-view/' + this.claimPaymentId]);\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this.errorMessage.push(err.value));\n } else if (typeof error.error === 'string') {\n this.errorMessage.push(error.error);\n } else {\n this.errorMessage.push(error);\n }\n this.loading = false;\n });\n }\n }\n }\n\n\n setDependentForm() {\n this.periodScheduleList.forEach(periodSchedule => {\n if(periodSchedule.id == this.periodScheduleId){\n this.claimForm.controls[\"claimStartDate\"].patchValue(\n this._getDate(periodSchedule.claimStartDate)\n );\n this.claimForm.controls[\"claimEndDate\"].patchValue(\n this._getDate(periodSchedule.claimEndDate)\n );\n this.claimForm.controls[\"paymentDate\"].patchValue(\n this._getDate(periodSchedule.claimPaymentDate)\n );\n this.claimForm.controls[\"periodStartDate\"].patchValue(\n this._getDate(periodSchedule.startDate)\n );\n this.claimForm.controls[\"periodEndDate\"].patchValue(\n this._getDate(periodSchedule.endDate)\n );\n }\n });\n\n }\n\n // convenience getter for easy access to form fields\n get f() {\n return this.claimForm.controls;\n }\n formatter = (x: User) => `${x.firstName} ${x.lastName} (${x.userName})`;\n\n onGridReady(params: any) {\n this.gridApi = params.api;\n this.gridApi.setDomLayout(\"autoHeight\");\n }\n onSubmit() {\n this.submitted = true;\n this.successMessage = '';\n this.addUpdateError = [];\n\n if (this.claimForm.invalid) {\n return;\n }\n\n this.loading = true;\n this._claimService.addClaimPayment(this.claimForm.value, this.groupRefrenceId)\n .pipe(first())\n .subscribe(\n () => {\n this.loading = false;\n this._alertify.success('Claim payment added successfully.');\n this._router.navigate(['/admin/periods']);\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this.errorMessage.push(err.value));\n } else if (typeof error.error === 'string') {\n this.errorMessage.push(error.error);\n } else {\n this.errorMessage.push(error);\n }\n this.loading = false;\n });\n }\n private _getDate(date: Date): string {\n return this._datepipe.transform(date, \"yyyy-MM-dd\");\n }\n\n}\n\n","export default \"label {\\n font-weight: bold; }\\n\\n@media print {\\n .no-print, .no-print * {\\n display: none !important; } }\\n\\n::ng-deep .EnrollBtn {\\n background-color: #4CAF50;\\n color: white;\\n /* border-radius: 15px; */\\n font-size: 12px;\\n line-height: 18px;\\n border: 0px;\\n padding: 4px 12px; }\\n\\n::ng-deep .btn-success.disabled, ::ng-deep.btn-success:disabled {\\n color: #000; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9jb250cm9scy9BZG1pbi9jbGFpbXMvY2xhaW0tbGluZS1pdGVtL2NsYWltLXZpZXcvY2xhaW0tdmlldy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlCQUFpQixFQUFBOztBQUVuQjtFQUNFO0lBQ0Usd0JBQXdCLEVBQUEsRUFDekI7O0FBRUg7RUFDRSx5QkFBeUI7RUFDekIsWUFBWTtFQUNaLHlCQUFBO0VBQ0EsZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsV0FBVyxFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29udHJvbHMvQWRtaW4vY2xhaW1zL2NsYWltLWxpbmUtaXRlbS9jbGFpbS12aWV3L2NsYWltLXZpZXcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJsYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuQG1lZGlhIHByaW50IHtcbiAgLm5vLXByaW50LCAubm8tcHJpbnQgKiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG46Om5nLWRlZXAgLkVucm9sbEJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Q0FGNTA7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgLyogYm9yZGVyLXJhZGl1czogMTVweDsgKi9cbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgYm9yZGVyOiAwcHg7XG4gIHBhZGRpbmc6IDRweCAxMnB4O1xufVxuXG46Om5nLWRlZXAgLmJ0bi1zdWNjZXNzLmRpc2FibGVkLCA6Om5nLWRlZXAuYnRuLXN1Y2Nlc3M6ZGlzYWJsZWQge1xuICBjb2xvcjogIzAwMDtcbn0iXX0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ColDef } from 'ag-grid-community';\nimport { Invoice } from '../../../../../models/invoice';\nimport { AlertifyService } from '../../../../../services/alertify.service';\nimport { GroupNameRendererComponent } from '../../../groups/group-list/group-name-renderer/group-name-renderer';\nimport { ClaimLineItem, ClaimPayment } from '../../../../../models/claimPayment';\nimport { Claim } from 'src/app/models/claim';\nimport { DatePipe,Location } from '@angular/common';\nimport { ClaimPaymentService } from '../../../../../services/claimPayment.service';\n\n@Component({\n selector: 'app-claim-LineItem',\n templateUrl: './claim-view.component.html',\n styleUrls: ['./claim-view.component.scss']\n})\n\nexport class ClaimLineItemViewComponent implements OnInit {\n @ViewChild('myModalClose', {static: false}) modalClose\n columnDefs: ColDef[] = [];\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n ShowNachaButton: boolean;\n ShowRequestedButton: boolean;\n\n private gridApi;\n nachaForm: FormGroup;\n claimForm: FormGroup;\n claimDetails: Claim = new Claim();\n claimLineitem: ClaimLineItem;\n claimlineItems: any[];\n invoice: Invoice = new Invoice();\n invoiceitem: any[];\n claimLineItemForm: FormGroup;\n claimpayment: ClaimPayment = new ClaimPayment();\n groupReferenceId: string;\n loading: boolean;\n groupId: number;\n submitted: boolean;\n claimPaymentId: number;\n claimLineItemId: number;\n errorMessage: string[] = [];\n \n constructor(private _claimService: ClaimPaymentService, private _datepipe: DatePipe, private location: Location,\n private _fb: FormBuilder, private _alertify: AlertifyService,\n private _route: ActivatedRoute, private _router: Router) {\n this._route.params.subscribe(params => { this.claimPaymentId = params['id']; });\n const _this = this;\n\n this.columnDefs = [\n { headerName: 'Serial No', valueGetter: \"node.rowIndex + 1\", suppressMovable: true, sortable: true, filter: true },\n {\n headerName: 'Member Id', field: 'memberId', suppressMovable: true, sortable: true, filter: true, cellRendererFramework: GroupNameRendererComponent,\n cellRendererParams: {\n clicked: function (params: any) { \n _this._router.navigate([\n `/admin/members/${params.data.memberId}`,\n ]);\n },\n },\n },\n { headerName: 'Member Name', field: 'memberName', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Plan Name', field: 'planName', suppressMovable: true, sortable: true, filter: true },\n {\n headerName: 'Payment Amount', field: 'paymentAmount', suppressMovable: true, sortable: true, filter: true,\n valueFormatter: function (params) {\n return !!params.value ? '$' + params.value : '';\n }\n },\n { headerName: 'Notes', field: 'notes', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Status', field: 'status', suppressMovable: true, sortable: true, filter: true },\n {\n headerName: \"\",\n field: \"\",\n suppressMovable: true,\n cellRenderer: (params) => {\n if (params.data.status == 'New') {\n return `\n `\n }\n }\n },\n ];\n }\n \n ngOnInit() {\n\n this.getClaimLineItemDetail(this.claimPaymentId);\n this.getClaimLineItemForm();\n this.getNachaForm();\n \n }\n getClaimLineItemForm() {\n this.claimLineItemForm = this._fb.group({\n id: [\"\"],\n paymentAmount: [\"\", [Validators.required]],\n notes: [\"\", [Validators.required]],\n });\n }\n getNachaForm() {\n this.nachaForm = this._fb.group({\n id: [\"\"],\n paymentDate: [\"\", [Validators.required]]\n });\n }\n\n onGridReady(params) {\n this.gridApi = params.api;\n this.gridApi.setDomLayout(\"autoHeight\");\n }\n getAllClaimLineItem() {\n\n this._claimService.getClaimLineItem(this.claimPaymentId).subscribe(res => { \n const isNewStatus: boolean = res.some(obj => obj.status === 'New');\n const isRequestedStatus: boolean = res.some(obj => obj.status === 'Requested');\n\n if (isNewStatus) {\n this.ShowNachaButton = true;\n this.ShowRequestedButton = false;\n\n } else if(isRequestedStatus) {\n this.ShowNachaButton = false;\n this.ShowRequestedButton = true;\n }\n else{\n this.ShowNachaButton = false;\n this.ShowRequestedButton = false;\n }\n this.claimlineItems = res;\n })\n }\n\n\n \n\n getClaimLineItemDetail(claimPaymentId: number) {\n this._claimService.getClaimPaymentById(claimPaymentId).subscribe(data => {\n this.claimpayment = data;\n this.getAllClaimLineItem();\n this.groupReferenceId = data.groupReferenceId;\n this.nachaForm.controls[\"paymentDate\"].patchValue(\n this._datepipe.transform(data.paymentDate, \"yyyy-MM-dd\")\n );\n });\n }\n \n \n onCellClicked($event) {\n \n this.claimLineItemId = $event.data.id;\n this.claimLineitem = $event.data;\n\n this._claimService.getClaimLineItemById(this.claimLineItemId).subscribe(data => {\n\n this.claimLineItemForm.patchValue(data);\n \n });\n }\n onClaimAmountSubmit() {\n this.submitted = true;\n\n if (this.claimLineItemForm.invalid) {\n return;\n }\n this.loading = true;\n this.claimLineItemForm.value.paymentAmount = parseFloat(this.claimLineItemForm.value.paymentAmount);\n this._claimService.updateClaimLineItem(this.claimLineItemId, this.claimLineItemForm.value).subscribe(\n (response) => {\n this.loading = false;\n this.submitted = false;\n const button = document.getElementById('closeLineItem')!;\n button.click();\n this.getAllClaimLineItem();\n this.getClaimLineItemDetail(this.claimPaymentId);\n this._alertify.success('Claim line item updated successfully.');\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this._alertify.error(err.value)); //this.addUpdateError.push\n } else if (typeof error.error === 'string') {\n //this.addUpdateError.push(error.error);\n this._alertify.error(error.error)\n } else {\n //this.addUpdateError.push(error);\n this._alertify.error(error);\n }\n this.loading = false;\n });\n\n\n }\n onNachaSubmit() {\n this.submitted = true;\n if (this.nachaForm.invalid) {\n return;\n }\n this.loading=true;\n this.modalClose.nativeElement.click();\n this.claimlineItems.forEach(x => x.status = 'Requested');\n this.gridApi.updateRowData('rowData', this.claimlineItems);\n this.gridApi.redrawRows();\n\n this.ShowNachaButton=false;\n this.ShowRequestedButton=true;\n this._claimService.sendToNacha(Number(this.claimPaymentId), this.nachaForm.value.paymentDate)\n .subscribe(\n (response) => {\n this._alertify.success('File successfully sent to FTP server');\n this.getClaimLineItemDetail(this.claimPaymentId);\n },\n error => {\n \n if (error.error instanceof Array) {\n error.error.map(err => this._alertify.error(err.value));\n } else if (typeof error.error === 'string') {\n this._alertify.error(error.error)\n } else {\n this._alertify.error(error);\n }\n this.getClaimLineItemDetail(this.claimPaymentId);\n this.loading = false;\n });\n }\n\n onCancel() {\n \n this.submitted = true;\n this.loading = true;\n this._claimService.CancelLineItemById(this.claimLineItemId)\n .subscribe(\n (response) => {\n this.getClaimLineItemDetail(this.claimPaymentId);\n this.loading = false;\n this.submitted = false;\n const button = document.getElementById('closeP')!;\n button.click();\n this._alertify.success('Line item cancelled successfully');\n },\n (error) => {\n if (error.error instanceof Array) {\n this._alertify.error(error.error);\n error.error.map((err) => this._alertify.error(err.value));\n } else if (typeof error.error === \"string\") {\n this._alertify.error(error.error);\n } else {\n this._alertify.error(error.error);\n }\n this.loading = false;\n }\n );\n }\n\n OnSubmit() {\n this.submitted = true;\n this.loading = true;\n this._claimService.updateClaimLineItem(this.claimPaymentId, this.claimLineitem)\n .subscribe(\n (response) => {\n this.getClaimLineItemDetail(this.claimPaymentId);\n this.loading = false;\n this.submitted = false;\n this._alertify.success('Claim line item updated successfully.');\n const button = document.getElementById('closeP')!;\n button.click();\n\n },\n (error) => {\n if (error.error instanceof Array) {\n this._alertify.error(error.error);\n error.error.map((err) => this._alertify.error(err.value));\n } else if (typeof error.error === \"string\") {\n this._alertify.error(error.error);\n } else {\n this._alertify.error(error.error);\n }\n this.loading = false;\n }\n );\n }\n back() {\n this._router.navigate([`/admin/group-view/${this.groupReferenceId}`]);\n }\n get f() {\n return this.claimLineItemForm.controls;\n }\n get n() {\n return this.nachaForm.controls;\n }\n \n}\n\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL2NsYWltcy9jbGFpbS1wYXltZW50cy1saXN0L2NsYWltLXBheW1lbnRzLWxpc3QuY29tcG9uZW50LmNzcyJ9 */\"","import { Component } from \"@angular/core\";\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\nimport { ColDef } from \"ag-grid-community\";\nimport { Claim } from \"src/app/models/claim\";\nimport { ClaimService } from \"src/app/services/claim.service\";\nimport { GroupNameRendererComponent } from \"../../groups/group-list/group-name-renderer/group-name-renderer\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { ClaimPayment } from \"../../../../models/claimPayment\";\nimport { BtnCellRendererComponent } from \"../../../../shared/controls/renderers/button-renderer/btn.renderer\";\nimport { FormatDate } from \"src/app/helpers/format\";\nimport { ClaimPaymentService } from \"../../../../services/claimPayment.service\";\n\n@Component({\n selector: \"app-claim-payments-list\",\n templateUrl: \"./claim-payments-list.component.html\",\n styleUrls: [\"./claim-payments-list.component.css\"],\n})\nexport class ClaimPaymentsListComponent {\n claimpayment: ClaimPayment[];\n groupId: string;\n columnDefs: ColDef[] = [];\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n constructor(private _claimService: ClaimPaymentService, private _route: ActivatedRoute, private _router: Router, private _date: FormatDate,) {\n\n this._route.params.subscribe(params => {\n this.groupId = params['id'];\n });\n this.columnDefs = [\n { hide: true, field: \"id\" },\n { headerName: 'Claim Payment Id', field: 'claimPaymentId', suppressMovable: true, sortable: true, filter: true },\n // { headerName: 'Name', field: 'name', suppressMovable: true, sortable: true, filter: true},\n {\n headerName: 'Period Start Date', field: 'periodStartDate', suppressMovable: true, sortable: true, filter: true,\n valueFormatter: function (params) {\n return !!params.value ? _date.formatDate(params.value) : '';\n }\n },\n {\n headerName: 'Period End Date', field: 'periodEndDate', suppressMovable: true, sortable: true, filter: true,\n valueFormatter: function (params) {\n return !!params.value ? _date.formatDate(params.value) : '';\n }\n },\n {\n headerName: 'Claim Start Date', field: 'claimStartDate', suppressMovable: true, sortable: true, filter: true,\n valueFormatter: function (params) {\n return !!params.value ? _date.formatDate(params.value) : '';\n }\n },\n {\n headerName: 'Claim End Date', field: 'claimEndDate', suppressMovable: true, sortable: true, filter: true,\n valueFormatter: function (params) {\n return !!params.value ? _date.formatDate(params.value) : '';\n }\n },\n {\n headerName: 'Payment Date', field: 'paymentDate', suppressMovable: true, sortable: true, filter: true,\n valueFormatter: function (params) {\n return !!params.value ? _date.formatDate(params.value) : '';\n }\n },\n {\n headerName: 'Amount', field: 'totalAmount', suppressMovable: true, sortable: true, filter: true,\n valueFormatter: function (params) {\n return !!params.value ? '$' + params.value : '';\n }\n },\n {\n headerName: 'Status', field: 'claimPaymentStatus', suppressMovable: true, sortable: true, filter: true\n },\n {\n headerName: '',\n field: \"id\",\n suppressMovable: true,\n cellRendererFramework: BtnCellRendererComponent,\n cellRendererParams: {\n showClaimBtn: true\n },\n },\n ];\n \n }\n\n private _gridApi;\n\n ngOnInit() {\n this._getAllClaimPayments(this.groupId);\n }\n\n onGridReady(params) {\n this._gridApi = params.api;\n }\n\n private _getAllClaimPayments(groupId) {\n\n this._claimService.getAllClaimPayments(groupId).subscribe(claimpayment => {\n this.claimpayment = claimpayment;\n console.log(claimpayment);\n // this._gridApi.hideOverlay();\n if (this.claimpayment.length == 0)\n this._gridApi.showNoRowsOverlay();\n });\n }\n\n public overlayNoRowsTemplate =\n 'No rows found';\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL2NsYWltcy9jbGFpbXMtbGlzdC9jbGFpbXMtbGlzdC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component } from \"@angular/core\";\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\nimport { ColDef } from \"ag-grid-community\";\nimport { Claim } from \"src/app/models/claim\";\nimport { ClaimService } from \"src/app/services/claim.service\";\nimport { GroupNameRendererComponent } from \"../../groups/group-list/group-name-renderer/group-name-renderer\";\nimport { Router } from \"@angular/router\";\nimport { DatePipe } from \"@angular/common\";\nimport { FormatDate } from \"../../../../helpers/format\";\n\n@Component({\n selector: \"app-claims-list\",\n templateUrl: \"./claims-list.component.html\",\n styleUrls: [\"./claims-list.component.scss\"],\n})\nexport class ClaimsListComponent {\n claims: Claim[];\n yearOptions = [];\n monthOptions = [\n { key: \"Jan\", value: 1 },\n { key: \"Feb\", value: 2 },\n { key: \"Mar\", value: 3 },\n { key: \"Apr\", value: 4 },\n { key: \"May\", value: 5 },\n { key: \"Jun\", value: 6 },\n { key: \"Jul\", value: 7 },\n { key: \"Aug\", value: 8 },\n { key: \"Sep\", value: 9 },\n { key: \"Oct\", value: 10 },\n { key: \"Nov\", value: 11 },\n { key: \"Dec\", value: 12 },\n ];\n\n filterParams = {\n comparator: function (filterLocalDateAtMidnight, cellValue) {\n if (cellValue == null) {\n return -1;\n }\n const dateAsString = cellValue.substr(0, 10);\n const dateParts = dateAsString.split(\"-\");\n const cellDate = new Date(\n Number(dateParts[0]),\n Number(dateParts[1]) - 1,\n Number(dateParts[2])\n );\n if (filterLocalDateAtMidnight.getTime() === cellDate.getTime()) {\n return 0;\n }\n if (cellDate < filterLocalDateAtMidnight) {\n return -1;\n }\n if (cellDate > filterLocalDateAtMidnight) {\n return 1;\n }\n },\n browserDatePicker: true,\n };\n\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n columnDefs: ColDef[] = [];\n \n\n filterClaimForm: FormGroup;\n submitted = false;\n loading = false;\n private _gridApi;\n\n constructor(\n private _formBuilder: FormBuilder,\n private _claimService: ClaimService, private _date: FormatDate,\n private _router: Router\n ) {\n const _this = this;\n const date = new Date();\n this.columnDefs = [\n { hide: true, field: \"referenceId\" },\n {\n headerName: \"Claim Date\",\n field: \"claimDate\",\n suppressMovable:true,\n sortable: true,\n filter: \"agDateColumnFilter\",\n filterParams: this.filterParams,\n valueFormatter: function (params) {\n return !!params.value ? _date.formatDate(params.value.substr(0, 10)):'';\n },\n },\n {\n headerName: \"Group Id\",\n field: \"externalGroupId\",\n suppressMovable: true,\n sortable: true,\n filter: true,\n cellRendererFramework: GroupNameRendererComponent,\n cellRendererParams: {\n clicked: function (params: any) {\n _this._router.navigate([\n `/admin/group-view/${params.data.groupReferenceId}`,\n ]);\n },\n },\n },\n {\n headerName: \"Member Id\",\n field: \"externalMemberId\",\n suppressMovable: true,\n sortable: true,\n filter: true,\n cellRendererFramework: GroupNameRendererComponent,\n cellRendererParams: {\n clicked: function (params: any) {\n _this._router.navigate([\n `/admin/members/${params.data.externalMemberId}`,\n ]);\n },\n },\n },\n {\n headerName: \"First Name\",\n field: \"firstName\",\n suppressMovable: true,\n sortable: true,\n filter: true, \n },\n {\n headerName: \"Last Name\",\n field: \"lastName\",\n suppressMovable: true,\n sortable: true,\n filter: true,\n },\n {\n headerName: \"Date of Birth\",\n field: \"dob\",\n suppressMovable: true,\n sortable: true,\n filter: \"agDateColumnFilter\",\n filterParams: this.filterParams,\n valueFormatter: function (params) {\n return !!params.value ? _date.formatDate(params.value.substr(0, 10)) : '';\n }\n },\n { headerName: \"CPT Code\", field: \"code\", sortable: true, filter: true },\n {\n headerName: \"Termination Date\",\n field: \"terminationDate\",\n suppressMovable: true,\n sortable: true,\n filter: \"agDateColumnFilter\",\n filterParams: this.filterParams,\n valueFormatter: function (params) {\n return !!params.value ? _date.formatDate(params.value.substr(0, 10)) : \"\";\n }, \n }, \n { headerName: \"Plan Name\", field: \"planName\", sortable: true, filter: true }, \n ];\n for (let i = 2020; i <= date.getFullYear(); i++) {\n this.yearOptions.push(i.toString());\n }\n\n this.filterClaimForm = this._formBuilder.group({\n claimMonth: [date.getMonth() + 1],\n claimYear: [date.getFullYear()],\n });\n\n this._getClaims();\n }\n\n onGridReady(params) {\n this._gridApi = params.api;\n }\n \n DownloadClaims() {\n \n const claimMonth = this.filterClaimForm.controls[\"claimMonth\"].value;\n const claimYear = this.filterClaimForm.controls[\"claimYear\"].value;\n\n this._claimService\n .exportToCSV(claimMonth, claimYear)\n .subscribe((response) => {\n let blob: any = new Blob([response], {\n type: \"text/csv; charset=utf-8\",\n });\n var filename = `Claims-${claimMonth}-${claimYear}.csv`;\n this.downloadContent(blob, filename);\n });\n }\n\n private downloadContent(body: Blob, fileName: string): void {\n let url = window.URL.createObjectURL(body);\n let a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.setAttribute(\"style\", \"display: none\");\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n a.remove();\n }\n\n onSubmit() {\n this.submitted = true;\n\n // stop here if form is invalid\n if (this.filterClaimForm.invalid) {\n return;\n }\n\n this.loading = true;\n this._getClaims();\n }\n\n private _getClaims() {\n const claimMonth = this.filterClaimForm.controls[\"claimMonth\"].value;\n const claimYear = this.filterClaimForm.controls[\"claimYear\"].value;\n this._claimService\n .getAllClaims(claimMonth, claimYear)\n .subscribe((claims) => {\n this.claims = claims;\n console.log(claims);\n this.loading = false;\n if (this._gridApi) {\n this._gridApi.hideOverlay();\n if (this.claims.length == 0)\n this._gridApi.showNoRowsOverlay();\n }\n });\n }\n\n public overlayNoRowsTemplate =\n 'No rows found';\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL2NsYWltcy9tZW1iZXJzLXdpdGhvdXQtY2xhaW1zLWxpc3QvbWVtYmVycy13aXRob3V0LWNsYWltcy1saXN0LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { ColDef } from 'ag-grid-community';\nimport { MemberService } from 'src/app/services/member.service';\nimport { Member } from '../../../../models/member';\nimport { GroupNameRendererComponent } from '../../groups/group-list/group-name-renderer/group-name-renderer';\nimport { Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { FormatDate } from '../../../../helpers/format';\n\n@Component({\n selector: 'app-members-without-claims-list',\n templateUrl: './members-without-claims-list.component.html',\n styleUrls: ['./members-without-claims-list.component.scss']\n})\nexport class MembersWithOutClaimsListComponent {\n\n members: Member[];\n yearOptions = [];\n monthOptions = [\n { key: 'Jan', value: 1 },\n { key: 'Feb', value: 2 },\n { key: 'Mar', value: 3 },\n { key: 'Apr', value: 4 },\n { key: 'May', value: 5 },\n { key: 'Jun', value: 6 },\n { key: 'Jul', value: 7 },\n { key: 'Aug', value: 8 },\n { key: 'Sep', value: 9 },\n { key: 'Oct', value: 10 },\n { key: 'Nov', value: 11 },\n { key: 'Dec', value: 12 }]\n\n filterParams = {\n comparator: function (filterLocalDateAtMidnight, cellValue) {\n if (cellValue == null) { return -1; }\n const dateAsString = cellValue.substr(0, 10);\n const dateParts = dateAsString.split('-');\n const cellDate = new Date(\n Number(dateParts[0]),\n Number(dateParts[1]) - 1,\n Number(dateParts[2])\n );\n if (filterLocalDateAtMidnight.getTime() === cellDate.getTime()) {\n return 0;\n }\n if (cellDate < filterLocalDateAtMidnight) {\n return -1;\n }\n if (cellDate > filterLocalDateAtMidnight) {\n return 1;\n }\n },\n browserDatePicker: true,\n };\n\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n columnDefs: ColDef[] = [];\n \n\n filterClaimForm: FormGroup;\n submitted = false;\n loading = false;\n private _gridApi;\n\n constructor(private _formBuilder: FormBuilder, private _memberService: MemberService, private _date: FormatDate, private _router: Router) {\n const date = new Date();\n const _this = this;\n for (let i = 2020; i <= date.getFullYear(); i++) {\n this.yearOptions.push(i.toString());\n }\n\n this.filterClaimForm = this._formBuilder.group({\n claimMonth: [date.getMonth() + 1],\n claimYear: [date.getFullYear()]\n });\n this.columnDefs = [\n { hide: true, field: 'referenceId' },\n {\n headerName: \"Group Id\",\n field: \"groupExternalId\",\n suppressMovable: true,\n sortable: true,\n filter: true,\n cellRendererFramework: GroupNameRendererComponent,\n cellRendererParams: {\n clicked: function (params: any) {\n _this._router.navigate([\n `/admin/group-view/${params.data.groupReferenceId}`,\n ]);\n },\n },\n },\n {\n headerName: 'Member Id', field: 'externalId', suppressMovable: true, sortable: true, filter: true,\n cellRendererFramework: GroupNameRendererComponent,\n cellRendererParams: {\n clicked: function (params: any) {\n _this._router.navigate([\n `/admin/members/${params.data.externalId}`,\n ]);\n },\n },\n },\n { headerName: 'First Name', field: 'firstName', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Last Name', field: 'lastName', suppressMovable: true, sortable: true, filter: true },\n {\n headerName: 'Date of Birth', field: 'dob', suppressMovable: true, sortable: true, filter: 'agDateColumnFilter',\n filterParams: this.filterParams, valueFormatter: function (params) {\n return !!params.value ? _date.formatDate(params.value.substr(0, 10)) : \"\";\n },\n },\n {\n headerName: 'Start Date', field: 'startDate', suppressMovable: true, sortable: true, filter: 'agDateColumnFilter',\n filterParams: this.filterParams, valueFormatter: function (params) {\n return !!params.value ? _date.formatDate(params.value.substr(0, 10)) : \"\";\n },\n },\n { headerName: \"Plan Name\", field: \"planName\", sortable: true, filter: true },\n ];\n this._getMembersWithoutClaims();\n }\n\n onGridReady(params) {\n this._gridApi = params.api;\n }\n\n DownloadMembers() {\n this._gridApi.exportDataAsCsv();\n }\n\n onSubmit() {\n this.submitted = true;\n\n // stop here if form is invalid\n if (this.filterClaimForm.invalid) {\n return;\n }\n\n this.loading = true;\n this._getMembersWithoutClaims();\n }\n\n private _getMembersWithoutClaims() {\n const claimMonth = this.filterClaimForm.controls['claimMonth'].value;\n const claimYear = this.filterClaimForm.controls['claimYear'].value;\n this._memberService.getAllMembersWithoutClaim(claimMonth, claimYear).subscribe(members => {\n this.members = members;\n console.log(members);\n this.loading = false;\n if (this._gridApi) {\n this._gridApi.hideOverlay();\n if (this.members.length == 0)\n this._gridApi.showNoRowsOverlay();\n }\n });\n }\n \n public overlayNoRowsTemplate =\n 'No rows found';\n}\n\n\n","export default \".row-margin{\\n margin-right:0px !important;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udHJvbHMvQWRtaW4vZW1wbG95ZWUvYWRkLWRlcGVuZGVudC9hZGQtZGVwZW5kZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSwyQkFBMkI7QUFDL0IiLCJmaWxlIjoic3JjL2FwcC9jb250cm9scy9BZG1pbi9lbXBsb3llZS9hZGQtZGVwZW5kZW50L2FkZC1kZXBlbmRlbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3ctbWFyZ2lue1xuICAgIG1hcmdpbi1yaWdodDowcHggIWltcG9ydGFudDtcbn1cbiJdfQ== */\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-add-dependent',\n templateUrl: './add-dependent.component.html',\n styleUrls: ['./add-dependent.component.css']\n})\nexport class AddDependentComponent implements OnInit {\n\n addDependentForm: FormGroup;\n constructor(private _fb: FormBuilder,\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any) { }\n\n ngOnInit() {\n this.addDependentForm = this._fb.group({\n relationship:[\"\",Validators.required],\n firstName: [\"\", Validators.required],\n lastName: [\"\", Validators.required],\n ssn: [\"\", Validators.required],\n dob: [\"\", Validators.required],\n gender: [\"\", Validators.required],\n });\n }\n\n handleOnClose(event: any) {\n this.dialogRef.close(false);\n }\n\n handleOnSave(event: any) {\n if (this.addDependentForm.valid) {\n this.dialogRef.close(this.addDependentForm.value);\n }\n }\n}\n","export default \".formtitle {\\n padding-bottom: 0px;\\n}\\n\\n@media screen and (min-width: 320px) and (max-width: 600px) {\\n\\n .main-logo {\\n top: 24px;\\n }\\n\\n a b {\\n font-size: 22px !important;\\n }\\n\\n a span {\\n font-size: 22px !important;\\n }\\n\\n .logo {\\n width: 20rem !important;\\n }\\n\\n}\\n\\n.headerClass {\\n background-color: #2b579a;\\n background-image: url(/assets/img/NPLHIC_main_BG.jpg);\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: cover;\\n height: 120px;\\n margin-top: 0;\\n}\\n\\n.logoClass {\\n background-repeat: no-repeat;\\n background-position: left;\\n position: relative;\\n z-index: 1;\\n background-size: contain;\\n height: 7.5rem;\\n width: 100%;\\n margin: 0 auto;\\n background-image: url(/assets/img/NPLHIC_header_banner.png);\\n}\\n\\n.main-logo-s1 {\\n font-size: 35px;\\n color: #FFF;\\n text-decoration: none;\\n margin-left: 66px;\\n text-decoration: none;\\n}\\n\\n.main-logo-s2 {\\n color: #FFF;\\n font-size: 35px;\\n color: #FFF;\\n}\\n\\n.main-logo-s3 {\\n font-weight: 700;\\n font-size: 35px;\\n color: #FFF;\\n line-height: inherit;\\n}\\n\\n.formHeading {\\n color: #588b60;\\n font-size: 25px;\\n padding-top: 10px;\\n position: relative;\\n top: 14px;\\n left: 25px;\\n}\\n\\n.mt-10p {\\n margin-top: 9%;\\n}\\n\\n.hraForm {\\n font-size: 20px;\\n line-height: 30px;\\n text-align: center;\\n color: #000000;\\n font-weight: bold;\\n}\\n\\n.my-20{\\n margin: 20px 0px;\\n}\\n\\n.btn-success{\\n background-color: #165783;\\n border-color: #165783;\\n}\\n\\n.btn-success:hover{\\n background-color: #165783;\\n border-color: #165783;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udHJvbHMvQWRtaW4vZW1wbG95ZWUvY29tcGxldGlvbkxpbmsvY29tcGxldGVkLWxpbmsvY29tcGxldGVkLWxpbmsuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTs7SUFFSTtRQUNJLFNBQVM7SUFDYjs7SUFFQTtRQUNJLDBCQUEwQjtJQUM5Qjs7SUFFQTtRQUNJLDBCQUEwQjtJQUM5Qjs7SUFFQTtRQUNJLHVCQUF1QjtJQUMzQjs7QUFFSjs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QixxREFBcUQ7SUFDckQsMkJBQTJCO0lBQzNCLDRCQUE0QjtJQUM1QixzQkFBc0I7SUFDdEIsYUFBYTtJQUNiLGFBQWE7QUFDakI7O0FBRUE7SUFDSSw0QkFBNEI7SUFDNUIseUJBQXlCO0lBQ3pCLGtCQUFrQjtJQUNsQixVQUFVO0lBQ1Ysd0JBQXdCO0lBQ3hCLGNBQWM7SUFDZCxXQUFXO0lBQ1gsY0FBYztJQUNkLDJEQUEyRDtBQUMvRDs7QUFHQTtJQUNJLGVBQWU7SUFDZixXQUFXO0lBQ1gscUJBQXFCO0lBQ3JCLGlCQUFpQjtJQUNqQixxQkFBcUI7QUFDekI7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsZUFBZTtJQUNmLFdBQVc7QUFDZjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsV0FBVztJQUNYLG9CQUFvQjtBQUN4Qjs7QUFFQTtJQUNJLGNBQWM7SUFDZCxlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixTQUFTO0lBQ1QsVUFBVTtBQUNkOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFFQTtJQUNJLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLGNBQWM7SUFDZCxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBQ0E7SUFDSSx5QkFBeUI7SUFDekIscUJBQXFCO0FBQ3pCOztBQUNBO0lBQ0kseUJBQXlCO0lBQ3pCLHFCQUFxQjtBQUN6QiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL2VtcGxveWVlL2NvbXBsZXRpb25MaW5rL2NvbXBsZXRlZC1saW5rL2NvbXBsZXRlZC1saW5rLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZm9ybXRpdGxlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cbiAgICAubWFpbi1sb2dvIHtcbiAgICAgICAgdG9wOiAyNHB4O1xuICAgIH1cblxuICAgIGEgYiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGEgc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5sb2dvIHtcbiAgICAgICAgd2lkdGg6IDIwcmVtICFpbXBvcnRhbnQ7XG4gICAgfVxuXG59XG5cbi5oZWFkZXJDbGFzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzJiNTc5YTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9pbWcvTlBMSElDX21haW5fQkcuanBnKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGhlaWdodDogMTIwcHg7XG4gICAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmxvZ29DbGFzcyB7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBoZWlnaHQ6IDcuNXJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9pbWcvTlBMSElDX2hlYWRlcl9iYW5uZXIucG5nKTtcbn1cblxuXG4ubWFpbi1sb2dvLXMxIHtcbiAgICBmb250LXNpemU6IDM1cHg7XG4gICAgY29sb3I6ICNGRkY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiA2NnB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm1haW4tbG9nby1zMiB7XG4gICAgY29sb3I6ICNGRkY7XG4gICAgZm9udC1zaXplOiAzNXB4O1xuICAgIGNvbG9yOiAjRkZGO1xufVxuXG4ubWFpbi1sb2dvLXMzIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMzVweDtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuLmZvcm1IZWFkaW5nIHtcbiAgICBjb2xvcjogIzU4OGI2MDtcbiAgICBmb250LXNpemU6IDI1cHg7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMTRweDtcbiAgICBsZWZ0OiAyNXB4O1xufVxuXG4ubXQtMTBwIHtcbiAgICBtYXJnaW4tdG9wOiA5JTtcbn1cblxuLmhyYUZvcm0ge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5teS0yMHtcbiAgICBtYXJnaW46IDIwcHggMHB4O1xufVxuLmJ0bi1zdWNjZXNze1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNjU3ODM7XG4gICAgYm9yZGVyLWNvbG9yOiAjMTY1NzgzO1xufVxuLmJ0bi1zdWNjZXNzOmhvdmVye1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNjU3ODM7XG4gICAgYm9yZGVyLWNvbG9yOiAjMTY1NzgzO1xufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { GroupService } from 'src/app/services/group.service';\n\n@Component({\n selector: 'app-completed-link',\n templateUrl: './completed-link.component.html',\n styleUrls: ['./completed-link.component.css']\n})\nexport class CompletedLinkComponent implements OnInit {\n\n constructor(private _ActivatedRoute: ActivatedRoute, private router: Router, private _groupService: GroupService) { }\n\n groupId: string;\n memberId: string;\n groupName: string;\n ngOnInit() {\n this._ActivatedRoute.queryParamMap.subscribe((param) => {\n this.groupId = param.get('groupid');\n this.memberId = param.get('memberid');\n }\n );\n this.getGroupInfo();\n }\n\n clickhere() {\n this.router.navigate([`/hra-form/${this.groupId}/${this.memberId}`]);\n }\n\n getGroupInfo() {\n this._groupService.getGroupNameByExternalID(this.groupId).subscribe((res:any)=>{\n this.groupName = res == null? '': res.value;\n });\n }\n\n\n\n}\n","export default \".disable {\\n background-color: #e9ecef;\\n opacity: 1;\\n cursor: not-allowed;\\n pointer-events: none; }\\n\\n.enable {\\n pointer-events: all; }\\n\\n.mb-60 {\\n margin-bottom: 60px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9jb250cm9scy9BZG1pbi9lbXBsb3llZS9lbnJvbGxtZW50L2Vucm9sbG1lbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSx5QkFBeUI7RUFDekIsVUFBVTtFQUNWLG1CQUFrQjtFQUNsQixvQkFBb0IsRUFBQTs7QUFHeEI7RUFDSSxtQkFBbUIsRUFBQTs7QUFHdkI7RUFDSSxtQkFBbUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL2VtcGxveWVlL2Vucm9sbG1lbnQvZW5yb2xsbWVudC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5kaXNhYmxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllY2VmO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgY3Vyc29yOm5vdC1hbGxvd2VkO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZW5hYmxlIHtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG4ubWItNjAge1xuICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG59Il19 */\"","import { Component, OnInit } from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { Plan } from \"src/app/models/plan\";\nimport { PlanService } from \"src/app/services/plan.service\";\nimport { SharedService } from \"src/app/services/shared.service\";\n\n@Component({\n selector: \"app-enrollment\",\n templateUrl: \"./enrollment.component.html\",\n styleUrls: [\"./enrollment.component.scss\"]\n})\nexport class EnrollmentComponent implements OnInit {\n planId;\n selectedPlanId;\n plans: Plan[];\n model: any = {};\n selectedPlan;\n isDisable:boolean = true\n changePlanForm: FormGroup;\n constructor(\n private _router: Router,\n private _activatedRoute: ActivatedRoute,\n private _planService: PlanService,\n private _sharedService: SharedService\n ) {}\n\n ngOnInit() {\n this._activatedRoute.queryParamMap.subscribe((params) => {\n this.planId = params.get(\"id\");\n });\n\n this.changePlanForm = new FormGroup({\n plan: new FormControl(\"\"),\n });\n this.getAllPlans(this.planId);\n }\n\n getAllPlans(planId) {\n this._planService.getAllPlans().subscribe((plans) => {\n this.plans = plans;\n });\n this._planService.getPlanById(planId).subscribe((res) => {\n this.selectedPlan = res;\n this.selectedPlanId = res.id;\n this.model.monthlyPremiumAmount = res.monthlyPremiumAmount;\n });\n }\n\n changePlan(event) {\n this.planId = event.target.value;\n this.getAllPlans(this.planId);\n }\n\n remove() {\n this.planId = null;\n this.changePlanForm.get(\"plan\").reset();\n this.model.monthlyPremiumAmount = 0;\n }\n\n // Route Static- groupId/memberId/planId\n AddUpdateEmployee(planId: string) {\n this._sharedService.setData(this.selectedPlan);\n this.planId != null\n ? this._router.navigate(['admin/addemployee'], {\n queryParams: {\n groupid: 1,\n id: planId\n }\n })\n : alert(\"Please Select at least one plan\");\n }\n Update() {\n this.isDisable = false;\n console.log('this.isDisable: ', this.isDisable);\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { FormBuilder, Validators, FormGroup } from '@angular/forms';\nimport { catchError, debounceTime, distinctUntilChanged, first, map, switchMap, tap } from 'rxjs/operators';\nimport { GroupService } from 'src/app/services/group.service';\nimport { User } from 'src/app/models/User';\nimport { Observable, of } from 'rxjs';\nimport { BrokerService } from 'src/app/services/broker.service';\nimport { ColDef } from 'ag-grid-community';\nimport { BtnCellRendererComponent } from 'src/app/shared/controls/renderers/button-renderer/btn.renderer';\n//import { CompanyService } from 'src/app/services/company.service';\nimport { MemberService } from 'src/app/services/member.service';\nimport { AlertifyService } from 'src/app/services/alertify.service';\nimport { Route, Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { PeriodService } from '../../../../services/period.service';\nimport { Period } from '../../../../models/period';\nimport { FormatDate } from '../../../../helpers/format';\n\n@Component({\n selector: 'app-add-group',\n templateUrl: './add-edit.component.html'\n})\nexport class AddEditGroupComponent implements OnInit {\n @Input()\n groupId: string;\n Id: number;\n groupForm: FormGroup;\n city: string;\n state: string;\n loading = false;\n loadingBroker = false;\n submitted = false;\n brokers: Observable;\n searching = false;\n searchFailed = false;\n broker: User;\n groupBrokers: User[] = [];\n period: Period[];\n getRowNodeId;\n errorMessage = '';\n successMessage = '';\n addUpdateError: string[] = [];\n isExternalIdExist: boolean = false;\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n\n columnDefs: ColDef[] = [\n { hide: true, field: 'id' },\n { headerName: 'First Name', field: 'firstName', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Last Name', field: 'lastName', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Email', field: 'userName', suppressMovable: true, sortable: true, filter: true },\n ];\n\n private gridApi;\n\n constructor(\n private _formBuilder: FormBuilder,\n private _groupService: GroupService,\n private _periodService: PeriodService,\n private _brokerService: BrokerService,\n private _memberService: MemberService,\n private _alertify: AlertifyService,\n private _router: Router,\n private _datepipe: DatePipe\n ) {\n const _this = this;\n this.columnDefs.push({\n headerName: '',\n field: 'id',\n cellRendererFramework: BtnCellRendererComponent,\n cellRendererParams: {\n showDeleteBtn: true,\n clicked: function (isDelete: boolean, referenceId: any) {\n if (isDelete) {\n _this._brokerService.removeBrokerFromGroup(_this.groupId, referenceId).subscribe(() => {\n const itemToRemove = _this.groupBrokers.findIndex(x => x.id === referenceId);\n _this.groupBrokers.splice(itemToRemove, 1);\n _this.gridApi.setRowData(_this.groupBrokers);\n });\n }\n }\n },\n });\n\n this.getRowNodeId = function (data) {\n return data.id;\n };\n }\n\n ngOnInit() {\n // referenceId: string;\n this.groupForm = this._formBuilder.group({\n id: 0,\n name: ['', Validators.required],\n externalId: ['', Validators.required],\n email: ['', [Validators.required, Validators.email]],\n phoneNumber: ['', [Validators.required]],\n contactPerson: ['', Validators.required],\n addressLine1: [\"\", Validators.required],\n addressLine2: [\"\"],\n zipCode: [\"\", Validators.required],\n city: [\"\"],\n state: [\"\"],\n webSiteUrl: [''],\n broker: [''],\n periodId: ['', Validators.required],\n startDate: ['', Validators.required],\n isActive: ['', Validators.required]\n });\n \n this.groupForm.controls.isActive.setValue(false);\n\n if (!!this.groupId) {\n this._groupService.getGroup(this.groupId).subscribe(group => {\n var payPeriodText = group.payPeriod ? group.payPeriod.toString() : \"\";\n if (payPeriodText == \"SemiMonthly\") {\n group.payPeriod = 1;\n }\n else if (payPeriodText == \"Monthly\") {\n group.payPeriod = 0;\n }\n else if (payPeriodText == \"Weekly\") {\n group.payPeriod = 2;\n }\n else if (payPeriodText == \"BiWeekly\") {\n group.payPeriod = 3;\n }\n \n this.groupForm.patchValue(group);\n this.Id = group.id;\n this.groupForm.controls[\"startDate\"].patchValue(\n this._datepipe.transform(group.startDate, \"yyyy-MM-dd\") \n );\n this.city = group.city;\n this.state = group.state;\n });\n this._groupService.getAllBrokers(this.groupId).subscribe(brokers => {\n this.groupBrokers = brokers;\n });\n }\n this.getPeriods();\n\n }\n\n // convenience getter for easy access to form fields\n get f() {\n return this.groupForm.controls;\n }\n\n formatter = (x: User) => `${x.firstName} ${x.lastName} (${x.userName})`;\n\n inputFormatter(broker: User) {\n return `${broker.firstName} ${broker.lastName} (${broker.userName})`;\n }\n\n onGridReady(params) {\n this.gridApi = params.api;\n }\n\n AssignBroker() {\n this.errorMessage = '';\n if (this.loadingBroker || this.loading || !this.broker || !this.groupId) {\n return;\n }\n\n if (this.groupBrokers.findIndex(x => x.id === this.broker.id) >= 0) {\n this.searchFailed = true;\n this.errorMessage = 'Agent already assigned to this group.';\n return;\n }\n\n\n this.loadingBroker = true;\n this._brokerService.addBrokerToGroup(this.groupId, this.broker.id).subscribe(\n () => {\n this.groupBrokers = [];\n this.groupBrokers.push(this.broker);\n this.loadingBroker = false;\n this.broker = null;\n this.gridApi.setRowData(this.groupBrokers);\n },\n () => {\n this.loadingBroker = false;\n });\n }\n\n searchBroker(searchString: string): Observable {\n if (!searchString || searchString.length < 2) {\n return of([]);\n }\n // this.searching = true;\n return this._brokerService.getAvailableBrokers(searchString).pipe( \n map(response => response), \n tap(() => { \n this.searchFailed = false\n }),\n catchError(() => {\n this.searchFailed = true;\n this.errorMessage = 'No Agents found.';\n return of([]);\n }));\n }\n\n search = (text$: Observable) =>\n text$.pipe(\n debounceTime(300),\n distinctUntilChanged(),\n tap(() => this.searching = true),\n switchMap(term => this.searchBroker(term)),\n tap(() => this.searching = false)\n )\n\n\n\n onSubmit() {\n this.submitted = true;\n // reset alerts on submit\n this.successMessage = '';\n this.addUpdateError = [];\n\n // stop here if form is invalid\n if (this.groupForm.invalid) {\n return;\n }\n if (this.isExternalIdExist) {\n return;\n }\n\n this.loading = true;\n const groupRefrenceId = this.groupId;\n this.groupForm.controls.city.setValue(this.city);\n this.groupForm.controls.state.setValue(this.state);\n this.groupForm.controls.isActive.setValue((/true/i).test(this.groupForm.value.isActive)); //returns true\n this.groupForm.controls.periodId.setValue(+this.groupForm.value.periodId);\n delete this.groupForm.value['broker'];\n if (!!groupRefrenceId) {\n this._groupService.updateGroup(groupRefrenceId, this.groupForm.value)\n .pipe(first())\n .subscribe(\n () => {\n // return to list\n //this.successMessage = 'Group updated successfully.';\n this.loading = false;\n this._alertify.success('Group updated successfully.');\n this._router.navigate(['/admin/group-view/' + this.groupId]);\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this._alertify.error(err.value)); //this.addUpdateError.push\n } else if (typeof error.error === 'string') {\n //this.addUpdateError.push(error.error);\n this._alertify.error(error.error)\n } else {\n //this.addUpdateError.push(error);\n this._alertify.error(error);\n }\n this.loading = false;\n });\n } else {\n this._groupService.addGroup(this.groupForm.value)\n .pipe(first())\n .subscribe(\n (group) => {\n // return to list\n //this.successMessage = 'Group added successfully.';\n this.loading = false;\n this.groupId = group.referenceId;\n this._alertify.success('Group added successfully.');\n window.location.reload();\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this._alertify.error(err.value)); //this.addUpdateError.push\n } else if (typeof error.error === 'string') {\n //this.addUpdateError.push(error.error);\n this._alertify.error(error.error)\n } else {\n //this.addUpdateError.push(error);\n this._alertify.error(error);\n }\n this.loading = false;\n });\n }\n }\n handleOnChange(event: any) {\n if (event.target.value.length >= 5) {\n let xml: string = '' + event.target.value + '';\n this._memberService.getCityStateByZip(xml).subscribe((res) => {\n if (res) {\n this.city = res.zipCode.city;\n this.state = res.zipCode.state;\n }\n });\n }\n }\n \n getPeriods() { \n this._periodService\n .getAllPeriods()\n .subscribe((periods) => { \n this.period = periods;\n \n });\n }\n exernalIdValidation() {\n if (!!this.groupForm.value.externalId) {\n this.loading = true;\n const groupReferenceId = this.Id;\n if (!!groupReferenceId) {\n this._groupService.validateGroupExternalId(this.groupForm.value.externalId, Number(groupReferenceId))\n .pipe(first())\n .subscribe(\n () => {\n // return to list \n this.isExternalIdExist = false;\n this.loading = false;\n },\n error => {\n this.isExternalIdExist = true;\n this.loading = false;\n });\n } else {\n this._groupService.validateGroupExternalId(this.groupForm.value.externalId, 0)\n .pipe(first())\n .subscribe(\n () => {\n // return to list \n this.isExternalIdExist = false;\n this.loading = false;\n },\n error => {\n this.isExternalIdExist = true;\n this.loading = false;\n });\n }\n }\n else {\n this.isExternalIdExist = false;\n }\n }\n //displayFn(company: CompanyName) {\n // return company && company.name ? company.name : '';\n //}\n //setCompany(event) {\n // var _this = this;\n // var company = _this.groupForm.controls.companyName.value;\n // _this.groupForm.controls.companyId.setValue(company && company.id ? company.id.toString() : '0');\n //}\n \n}\n\n\n","import { Component } from '@angular/core';\nimport { GroupService } from 'src/app/services/group.service';\nimport { Group } from 'src/app/models/group';\nimport { ColDef } from 'ag-grid-community';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BtnCellRendererComponent } from 'src/app/shared/controls/renderers/button-renderer/btn.renderer';\nimport { GroupNameRendererComponent } from './group-name-renderer/group-name-renderer';\nimport { DatePipe } from '@angular/common';\nimport { FormatDate } from '../../../../helpers/format';\nimport { group } from '@angular/animations';\n\n@Component({\n selector: 'app-groups',\n templateUrl: './group-list.component.html'\n})\nexport class GroupListComponent {\n selectedGroupId: string;\n addingGroup = false;\n groups: Group[];\n columnDefs: ColDef[] = [];\n defaultColDef = {\n flex: 1,\n minWidth: 90,\n resizable: true,\n };\n\n private gridApi;\n\n constructor(private _groupService: GroupService, private _route: ActivatedRoute, private _date: FormatDate, private _router: Router) {\n this._route.params.subscribe(params => { this.selectedGroupId = params['groupId']; });\n if (this.selectedGroupId) {\n this.addingGroup = true;\n }\n const _this = this;\n this.getAllGroups();\n\n this.columnDefs = [\n { hide: true, field: 'referenceId' },\n { headerName: 'External Id', field: 'externalId', suppressMovable: true, sortable: true, filter: true, maxWidth: 120, suppressSizeToFit: true },\n { headerName: 'Name', field: 'name', suppressMovable: true, sortable: true, filter: true, maxWidth: 300 },\n { headerName: 'Email', field: 'email', suppressMovable: true, sortable: true, filter: true, flex: 1 },\n { headerName: 'Phone Number', field: 'phoneNumber', suppressMovable: true, sortable: true, filter: true, flex: 1 },\n {\n headerName: 'Status', field: 'isActive', suppressMovable: true, sortable: true, filter: true,\n cellRenderer: (params) => {\n if (params.value) {\n return 'Active';\n } else {\n return 'InActive';\n }\n }\n },\n {\n headerName: 'Date Effective', field: 'startDate', suppressMovable: true, sortable: true, filter: true, maxWidth: 200,\n valueFormatter: function (params) {\n return !!params.value ? _date.formatDate(params.value.substr(0, 10)) : '';\n }\n },\n {\n headerName: '',\n field: 'referenceId',\n suppressMovable: true,\n width: 200,\n cellRendererFramework: BtnCellRendererComponent,\n cellRendererParams: {\n //showMemberBtn: true,\n //showUserBtn: true,\n //showLeadListBtn: true,\n //showClaimPaymentBtn:true,\n // showEditBtn: true,\n showGroupViewBtn: true,\n\n //showDeleteBtn: true,\n clicked: function (isDelete: boolean, referenceId: any) {\n if (isDelete) {\n _this.deleteGroup(referenceId);\n } else {\n _this._router.navigate([`/admin/groups/${referenceId}`]);\n }\n\n }\n },\n }];\n }\n\n onGridReady(params) {\n this.gridApi = params.api;\n this.gridApi.setDomLayout(\"autoHeight\");\n }\n\n getAllGroups() {\n this._groupService.getAllGroups().subscribe(groups => {\n this.groups = groups;\n \n });\n }\n\n deleteGroup(referenceId: string) {\n this._groupService.deleteGroup(referenceId).subscribe(x => {\n this.groups = this.groups.filter(g => g.referenceId !== referenceId);\n this.gridApi.setRowData(this.groups);\n });\n }\n\n addGroup() {\n this.addingGroup = true;\n }\n\n showAllGroups() {\n this.getAllGroups();\n this.addingGroup = false;\n }\n\n}\n","export default \".EnrollBtn {\\n background-color: #4CAF50;\\n color: white;\\n /* border-radius: 15px; */\\n font-size: 12px;\\n line-height: 18px;\\n border: 0px;\\n padding: 4px 12px; }\\n\\n.mr2 {\\n margin-right: 2px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9jb250cm9scy9BZG1pbi9ncm91cHMvZ3JvdXAtbGlzdC9ncm91cC1uYW1lLXJlbmRlcmVyL2dyb3VwLW5hbWUtcmVuZGVyZXIuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHlCQUF5QjtFQUN6QixZQUFZO0VBQ1oseUJBQUE7RUFDQSxlQUFlO0VBQ2YsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxpQkFBaUIsRUFBQTs7QUFHbkI7RUFDRSxpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL2dyb3Vwcy9ncm91cC1saXN0L2dyb3VwLW5hbWUtcmVuZGVyZXIvZ3JvdXAtbmFtZS1yZW5kZXJlci5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLkVucm9sbEJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Q0FGNTA7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgLyogYm9yZGVyLXJhZGl1czogMTVweDsgKi9cbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgYm9yZGVyOiAwcHg7XG4gIHBhZGRpbmc6IDRweCAxMnB4O1xufVxuXG4ubXIyIHtcbiAgbWFyZ2luLXJpZ2h0OiAycHg7XG59XG4iXX0= */\"","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { IAfterGuiAttachedParams } from 'ag-grid-community';\n\n@Component({\n selector: 'group-name-renderer',\n templateUrl: './group-name-renderer.html',\n styleUrls: [\"./group-name-renderer.scss\"],\n})\nexport class GroupNameRendererComponent implements ICellRendererAngularComp {\n\n params: any;\n constructor(private router: Router) {\n\n }\n\n refresh(params: any): boolean {\n return true;\n }\n\n afterGuiAttached?(params?: IAfterGuiAttachedParams): void {\n\n }\n\n agInit(params: any): void {\n this.params = params;\n }\n\n clickHandler() {\n this.params.clicked(this.params);\n }\n\n show(): boolean {\n\n return typeof this.params.show !== \"undefined\" ? this.params.show(this.params) : true;\n }\n OnRedirectToMemberView() {\n let memberId = this.params.data.externalId;\n this.router.navigate([`/admin/members/${memberId}`]);\n }\n OnRedirectToEnrollFormView() {\n let memberId = this.params.data.externalId;\n this.router.navigate([]).then(result => { window.open(`/admin/enroll/member/${memberId}`, '_blank'); });\n }\n}\n","import { Component, OnInit, Input } from \"@angular/core\";\nimport { FormBuilder, Validators, FormGroup } from \"@angular/forms\";\nimport { first } from \"rxjs/operators\";\nimport { MemberService } from \"src/app/services/member.service\";\nimport { PlanService } from \"src/app/services/plan.service\";\nimport { Plan } from \"src/app/models/plan\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { FormatDate } from \"../../../../../helpers/format\";\n@Component({\n selector: \"add-edit-family-members\",\n templateUrl: \"./add-edit-family-members.component.html\",\n})\nexport class AddEditFamilyMembersComponent implements OnInit {\n @Input() id: string;\n memberForm: FormGroup;\n loading = false;\n submitted = false;\n errorMessage = \"\";\n successMessage = \"\";\n addUpdateError: string[] = [];\n plans: Plan[];\n memberId;\n constructor(\n private _formBuilder: FormBuilder,\n private _memberService: MemberService,\n private _date: FormatDate,\n private _planService: PlanService,\n private _ActivatedRoute: ActivatedRoute\n ) {}\n\n ngOnInit() {\n this._ActivatedRoute.paramMap.subscribe((params) => {\n this.memberId = params.get(\"memberId\");\n });\n\n if (!!this.id) {\n this._memberService.getFamilyMemberInfo(this.id).subscribe((member) => {\n this.memberForm.patchValue(member);\n this.memberForm.controls[\"dateOfBirth\"].patchValue(\n this._date.formatDate(member.dateOfBirth)\n );\n });\n }\n\n this.memberForm = this._formBuilder.group({\n memberId: [\"\"],\n firstName: [\"\", Validators.required],\n lastName: [\"\", Validators.required],\n relation: [\"\", Validators.required],\n dateOfBirth: [\"\", Validators.required],\n });\n }\n\n // convenience getter for easy access to form fields\n get f() {\n return this.memberForm.controls;\n }\n\n get isEdit() {\n return !!this.id && this.id.trim().length > 0 ? true : null;\n }\n\n onSubmit() {\n this.submitted = true;\n\n // reset alerts on submit\n this.successMessage = \"\";\n this.addUpdateError = [];\n this.memberForm.value.memberId = this.memberId;\n // stop here if form is invalid\n if (this.memberForm.invalid) {\n return;\n }\n\n this.loading = true;\n if (!!this.id) {\n this._memberService\n .updateFamilyMember(this.id, this.memberForm.value)\n .pipe(first())\n .subscribe(\n () => {\n // return to list\n this.successMessage = \"Member updated successfully.\";\n this.loading = false;\n },\n (error) => {\n if (error.error instanceof Array) {\n error.error.map((err) => this.addUpdateError.push(err.value));\n } else if (typeof error.error === \"string\") {\n this.addUpdateError.push(error.error);\n } else {\n this.addUpdateError.push(error);\n }\n this.loading = false;\n }\n );\n } else {\n // this.memberForm.value.planId = parseInt(this.memberForm.value.planId);\n this._memberService\n .addFamilyMember(this.memberForm.value)\n .pipe(first())\n .subscribe(\n (member) => {\n // return to list\n this.successMessage = \"Member added successfully.\";\n this.loading = false;\n // this.id = member.externalId;\n },\n (error) => {\n if (error.error instanceof Array) {\n error.error.map((err) => this.addUpdateError.push(err.value));\n } else if (typeof error.error === \"string\") {\n this.addUpdateError.push(error.error);\n } else {\n this.addUpdateError.push(error);\n }\n this.loading = false;\n }\n );\n }\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL2dyb3Vwcy9ncm91cC1tZW1iZXJzLWZhbWlseS9ncm91cC1tZW1iZXJzLWZhbWlseS1saXN0L2dyb3VwLW1lbWJlcnMtZmFtaWx5LWxpc3QuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { ColDef } from \"ag-grid-community\";\nimport { GroupService } from \"src/app/services/group.service\";\nimport { MemberService } from \"src/app/services/member.service\";\nimport { BtnCellRendererComponent } from \"src/app/shared/controls/renderers/button-renderer/btn.renderer\";\nimport { FamilyMembers } from \"src/app/models/family-member\";\nimport moment from \"moment\";\n@Component({\n selector: \"app-group-members-family-list\",\n templateUrl: \"./group-members-family-list.component.html\",\n styleUrls: [\"./group-members-family-list.component.scss\"],\n})\nexport class GroupMembersFamilyListComponent {\n memberId: string;\n members: FamilyMembers[];\n header: string = \"Family Members\";\n headerForAddMember: string = \"Family Members\";\n addingFamilyMember = false;\n selectedMemberId;\n\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n columnDefs: ColDef[] = [];\n\n private _gridApi;\n\n constructor(\n private _route: ActivatedRoute,\n private _router: Router,\n private _groupService: GroupService,\n private _memberService: MemberService\n ) {\n this._route.params.subscribe((params) => {\n this.memberId = params[\"memberId\"];\n });\n this._route.params.subscribe((params) => {\n this.selectedMemberId = params[\"memberId\"];\n });\n\n this.getAllMembers();\n\n const _this = this;\n this.columnDefs = [\n {\n headerName: \"First Name\",\n field: \"firstName\",\n suppressMovable: true,\n sortable: true,\n filter: true,\n },\n {\n headerName: \"Last Name\",\n field: \"lastName\",\n suppressMovable: true,\n sortable: true,\n filter: true,\n },\n\n {\n headerName: \"Relation\",\n field: \"relation\",\n suppressMovable: true,\n sortable: true,\n },\n {\n headerName: \"Date of Birth\",\n field: \"dateOfBirth\",\n suppressMovable: true,\n sortable: true,\n valueFormatter: this.dateFormatter,\n },\n {\n headerName: \"\",\n field: \"id\",\n suppressMovable: true,\n cellRendererFramework: BtnCellRendererComponent,\n cellRendererParams: {\n showDeleteBtn: false,\n showEditBtn: true,\n showDeActivateBtn: false,\n clicked: function (\n isDelete: boolean,\n id: any,\n isDeactivate: boolean\n ) {\n _this._router.navigate([\n `admin/groups/${_this.memberId}/familymember/${id}`,\n ]);\n },\n },\n },\n ];\n }\n\n dateFormatter(params) {\n return moment(params.value).format(\"D MMM YYYY\");\n }\n\n onGridReady(params) {\n this._gridApi = params.api;\n this._gridApi.setDomLayout(\"autoHeight\");\n }\n\n addMember() {\n this.addingFamilyMember = true;\n }\n\n showAllMembers() {\n this.getAllMembers();\n this.addingFamilyMember = false;\n }\n\n getAllMembers() {\n this._groupService\n .getGroupMembersFamily(this.memberId)\n .subscribe((members) => {\n this.members = members;\n });\n }\n}\n","import { Component } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\n@Component({\n selector: \"app-update-family-members\",\n templateUrl: \"./update-family-members.component.html\",\n})\nexport class UpdateFamilyMembersComponent {\n selectedId: string;\n selectedMembersReferenceId: string;\n header: string;\n\n constructor(\n private _route: ActivatedRoute,\n private _router: Router,\n ) {\n this._route.params.subscribe((params) => {\n this.selectedId = params[\"id\"];\n });\n this._route.params.subscribe((params) => {\n this.selectedMembersReferenceId = params[\"memberId\"];\n \n });\n }\n\n showAllMembers() {\n this._router.navigate([\n `/admin/groups/${this.selectedMembersReferenceId}/familyMembers`,\n ]);\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL2dyb3Vwcy9ncm91cC1tZW1iZXJzL2FkZC1jbGFpbS9hZGQtY2xhaW0uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport moment from 'moment';\nimport { first } from 'rxjs/internal/operators/first';\nimport { ClaimService } from 'src/app/services/claim.service';\nimport { ValidatorsService } from '../../../../../helpers/validators.service';\nimport { AlertifyService } from '../../../../../services/alertify.service';\n\n@Component({\n selector: 'app-add-claim',\n templateUrl: './add-claim.component.html',\n styleUrls: ['./add-claim.component.scss']\n})\nexport class AddClaimComponent {\n claimForm: FormGroup;\n loading = false;\n submitted = false;\n errorMessage: string[] = [];\n minDate;\n maxDate;\n get f() { return this.claimForm.controls; }\n\n private _groupId;\n private _externalMemberId;\n\n constructor(private _route: ActivatedRoute, private _formBuilder: FormBuilder,\n private _claimService: ClaimService, private _router: Router,\n private validatorsService: ValidatorsService ,private _alertify: AlertifyService) {\n this._route.params.subscribe(params => {\n this._groupId = params['groupId'];\n this._externalMemberId = params['memberId'];\n });\n const currentTime = new Date();\n this.minDate = moment(new Date(currentTime.getFullYear(), currentTime.getMonth(), 1)).format('YYYY-MM-DD');\n this.maxDate = moment(currentTime).format('YYYY-MM-DD');\n\n this.claimForm = this._formBuilder.group({\n claimType: [1],\n description: ['', Validators.required],\n durationInMinutes: ['', [Validators.required, this.validatorsService.nonNegativeValidator()]],\n code: ['', Validators.required],\n claimDate: [this.maxDate, Validators.required]\n });\n }\n \n onSubmit() {\n this.submitted = true;\n\n // reset alerts on submit\n this.errorMessage = [];\n\n // stop here if form is invalid\n if (this.claimForm.invalid) {\n return;\n }\n\n this.loading = true;\n this._claimService.addCustomClaim(this._externalMemberId, this.claimForm.value)\n .pipe(first())\n .subscribe(\n () => {\n this.loading = false;\n this._alertify.success('Claim added successfully.');\n this._router.navigate([`admin/group-view/${this._groupId}`]);\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this.errorMessage.push(err.value));\n } else if (typeof error.error === 'string') {\n this.errorMessage.push(error.error);\n } else {\n this.errorMessage.push(error);\n }\n this.loading = false;\n });\n }\n}\n","export default \".plan-dropdown {\\n -webkit-appearance: auto;\\n -moz-appearance: auto;\\n appearance: auto; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9jb250cm9scy9BZG1pbi9ncm91cHMvZ3JvdXAtbWVtYmVycy9hZGQtbWVtYmVyL2FkZC1lZGl0LW1lbWJlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHdCQUFnQjtLQUFoQixxQkFBZ0I7VUFBaEIsZ0JBQWdCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb250cm9scy9BZG1pbi9ncm91cHMvZ3JvdXAtbWVtYmVycy9hZGQtbWVtYmVyL2FkZC1lZGl0LW1lbWJlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5wbGFuLWRyb3Bkb3duIHtcbiAgYXBwZWFyYW5jZTogYXV0bztcbn1cbiJdfQ== */\"","import { DatePipe } from '@angular/common';\nimport { Component, OnInit, Input } from '@angular/core';\nimport { FormBuilder, Validators, FormGroup } from '@angular/forms';\nimport { first } from 'rxjs/operators';\nimport { MemberService } from 'src/app/services/member.service';\nimport { PlanService } from 'src/app/services/plan.service';\nimport { Plan } from 'src/app/models/plan';\nimport { ValidatorsService } from '../../../../../helpers/validators.service';\nimport { FormatDate } from '../../../../../helpers/format';\n\n@Component({\n selector: 'app-add-member',\n templateUrl: './add-edit-member.component.html',\n styleUrls: ['./add-edit-member.component.scss']\n})\nexport class AddEditMemberComponent implements OnInit {\n @Input()\n groupId: string;\n\n @Input()\n memberId: string;\n\n memberForm: FormGroup;\n loading = false;\n submitted = false;\n errorMessage = '';\n successMessage = '';\n addUpdateError: string[] = [];\n plans: Plan[];\n\n constructor(private _formBuilder: FormBuilder, private _memberService: MemberService, private _date: FormatDate, private _planService: PlanService, private validatorsService: ValidatorsService) {\n }\n\n ngOnInit() {\n if (!!this.memberId) {\n this._memberService.getMemberInfo(this.memberId).subscribe(member => {\n\n var payPeriodText = member.payPeriod ? member.payPeriod.toString() : \"\";\n if (payPeriodText == \"SemiMonthly\") {\n member.payPeriod = 1;\n }\n else if (payPeriodText == \"Monthly\") {\n member.payPeriod = 0;\n }\n else if (payPeriodText == \"Weekly\") {\n member.payPeriod = 2;\n }\n else if (payPeriodText == \"BiWeekly\") {\n member.payPeriod = 3;\n }\n else\n {\n member.payPeriod = -1;\n }\n\n this.memberForm.patchValue(member);\n this.memberForm.controls['dob'].patchValue(this._date.formatDate(member.dob));\n this.memberForm.controls['startDate'].patchValue(this._date.formatDate(member.startDate));\n this.memberForm.controls['terminationDate'].patchValue(this._date.formatDate(member.terminationDate));\n this.memberForm.controls['planStartDate'].patchValue(this._date.formatDate(member.planStartDate));\n });\n }\n\n this.memberForm = this._formBuilder.group({\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n externalId: ['', Validators.required],\n email: ['', [Validators.required, Validators.email]],\n dob: [],\n wellnessBenefitAmount: [0],\n startDate: [],\n terminationDate: [],\n isLyrics:[],\n planId: [null],\n planStartDate: [],\n payPeriod: [''],\n salaryPerPayPeriod: ['', this.validatorsService.nonNegativeValidator()],\n });\n\n this._planService.getAllPlans().subscribe(plans => {\n this.plans = plans;\n });\n }\n\n // convenience getter for easy access to form fields\n get f() { return this.memberForm.controls; }\n \n get isEdit() {\n return !!this.memberId && this.memberId.trim().length > 0 ? true : null;\n }\n\n onSubmit() {\n this.submitted = true;\n\n // reset alerts on submit\n this.successMessage = '';\n this.addUpdateError = [];\n\n // stop here if form is invalid\n if (this.memberForm.invalid) {\n return;\n }\n \n this.memberForm.value.payPeriod = this.memberForm.value.payPeriod == -1 ? null : this.memberForm.value.payPeriod;\n\n this.loading = true;\n if (!!this.memberId) {\n this.memberForm.value.planId = parseInt(this.memberForm.value.planId);\n console.log(this.memberForm.value);\n console.log('this.groupId, this.memberId: ', this.groupId, this.memberId);\n // return\n this._memberService.updateMember(this.groupId, this.memberId, this.memberForm.value)\n .pipe(first())\n .subscribe(\n () => {\n // return to list\n this.successMessage = 'Member updated successfully.';\n this.loading = false;\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this.addUpdateError.push(err.value));\n } else if (typeof error.error === 'string') {\n this.addUpdateError.push(error.error);\n } else {\n this.addUpdateError.push(error);\n }\n this.loading = false;\n });\n } else {\n this.memberForm.value.planId = parseInt(this.memberForm.value.planId);\n this._memberService.addMember(this.groupId, this.memberForm.value)\n .pipe(first())\n .subscribe(\n (member) => {\n // return to list\n this.successMessage = 'Member added successfully.';\n this.loading = false;\n this.memberId = member.externalId\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this.addUpdateError.push(err.value));\n } else if (typeof error.error === 'string') {\n this.addUpdateError.push(error.error);\n } else {\n this.addUpdateError.push(error);\n }\n this.loading = false;\n });\n }\n }\n}\n\n\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL2dyb3Vwcy9ncm91cC1tZW1iZXJzL2dyb3VwLW1lbWJlci1saXN0L2dyb3VwLW1lbWJlci1saXN0LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, Input } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { ColDef } from \"ag-grid-community\";\nimport { MemberWithHraStatus } from \"src/app/models/member\";\nimport { GroupService } from \"src/app/services/group.service\";\nimport { MemberService } from \"src/app/services/member.service\";\nimport { BtnCellRendererComponent } from \"src/app/shared/controls/renderers/button-renderer/btn.renderer\";\nimport { GroupNameRendererComponent } from \"../../group-list/group-name-renderer/group-name-renderer\";\n\n@Component({\n selector: \"app-group-member-list\",\n templateUrl: \"./group-member-list.component.html\",\n styleUrls: [\"./group-member-list.component.scss\"],\n})\nexport class GroupMemberListComponent {\n //@Input()\n //memberId: string;\n groupId: string;\n members: MemberWithHraStatus[];\n header: string = \"\";\n groupName: string = \"\";\n headerForAddMember: string = \"\";\n addingMember = false;\n selectedGroupId;\n selectedMemberId;\n\n defaultColDef = {\n \n resizable: true,\n };\n columnDefs: ColDef[] = [];\n\n private _gridApi;\n\n constructor(\n private _route: ActivatedRoute,\n private _router: Router,\n private _groupService: GroupService,\n private _memberService: MemberService\n ) {\n \n this._route.params.subscribe((params) => {\n this.groupId = params[\"id\"];\n });\n //this.selectedMemberId = this.memberId;\n this._route.params.subscribe((params) => {\n // this.selectedMemberId = params[\"memberId\"];\n });\n this._groupService.getGroup(this.groupId).subscribe((group) => {\n if (!!group) {\n this.header = `Members of ${group.name} Group`;\n this.headerForAddMember = `Member of ${group.name} Group`;\n this.groupName = group.name;\n this.selectedGroupId = group.externalId;\n }\n });\n\n this.getAllMembers();\n const monthNames = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ];\n const currentDate = new Date();\n const _this = this;\n this.columnDefs = [\n {\n headerName: \"External Id\",\n field: \"externalId\",\n suppressMovable: true,\n sortable: true,\n filter: true,\n width:150\n },\n {\n headerName: \"First Name\",\n field: \"firstName\",\n suppressMovable: true,\n sortable: true,\n filter: true,\n width:150\n // cellRendererFramework: GroupNameRendererComponent,\n // cellRendererParams: {\n // clicked: function (params: any) {\n // _this._router.navigate([\n // `/admin/groups/${params.data.externalId}/familyMembers`,\n // ]);\n // },\n // },\n },\n {\n headerName: \"Last Name\",\n field: \"lastName\",\n suppressMovable: true,\n sortable: true,\n filter: true,\n width: 150\n },\n { headerName: \"Email\", field: \"email\", suppressMovable: true, sortable: true, filter: true },\n {\n headerName: \"Plan Name\",\n field: \"planName\",\n suppressMovable: true,\n sortable: true,\n filter: true,\n width: 150\n },\n {\n headerName: \"Member Status\",\n field: \"memberStatus\",\n suppressMovable: true,\n sortable: true,\n filter: true,\n width: 150\n },\n {\n headerName: \"Questionnaire Status\",\n field: \"isHraCompleted\",\n suppressMovable: true,\n width: 150,\n cellRendererFramework: GroupNameRendererComponent,\n cellRendererParams: {\n btnText: \"View\",\n NoShowText: \"Add\",\n isNoShowTextClickable: true,\n clicked: function (params: any) {\n if (!!params.data.isHraCompleted) {\n _this._router.navigate([\n `admin/groups/${_this.groupId}/members/${params.data.externalId}/view-hra`,\n ]);\n } else {\n _this._router.navigate([\n `/hra-form/${_this.selectedGroupId}/${params.data.externalId}`,\n ]);\n }\n },\n show: function (params: any) {\n return params.value;\n },\n },\n },\n {\n headerName: `${monthNames[currentDate.getMonth()]} Claim Status`,\n field: \"isClaimCompletedForCurrentMonth\",\n suppressMovable: true,\n width: 150,\n cellRendererFramework: GroupNameRendererComponent,\n cellRendererParams: {\n btnText: \"Add Claim\",\n NoShowText: \"Completed\",\n clicked: function (params: any) {\n _this._router.navigate([\n `admin/groups/${_this.groupId}/members/${params.data.externalId}/add-claim`,\n ]);\n },\n show: function (params: any) {\n return !params.value;\n },\n },\n },\n {\n headerName: \"\",\n field: \"\",\n suppressMovable: true, \n cellRendererFramework:\n GroupNameRendererComponent, cellRendererParams: {\n showViewBtn: true,\n showEnrollViewBtn: true,\n clicked: function (params: any) {\n _this._router.navigate([`/admin/members/${params.data.externalId}`]);\n }\n }\n },\n ];\n }\n exportMembers() { \n this._groupService.exportMembers(this.groupId)\n .subscribe((response) => {\n let blob: any = new Blob([response], {\n type: \"text/csv; charset=utf-8\",\n });\n var filename = `${this.groupName}-members.csv`;\n this.downloadContent(blob, filename);\n });\n }\n private downloadContent(body: Blob, fileName: string): void {\n let url = window.URL.createObjectURL(body);\n let a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.setAttribute(\"style\", \"display: none\");\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n a.remove();\n }\n deactivateMember(memberId: string) {\n return this._memberService\n .deactivateMember(this.selectedGroupId, memberId)\n .subscribe();\n }\n\n onGridReady(params) {\n this._gridApi = params.api;\n this._gridApi.setDomLayout(\"autoHeight\");\n }\n\n addMember() {\n this.addingMember = true;\n }\n\n showAllMembers() {\n this.getAllMembers();\n this.addingMember = false;\n }\n\n getAllMembers() {\n this._groupService.getGroupMembers(this.groupId).subscribe((members) => { \n this.members = members;\n });\n }\n}\n","import { Component } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { GroupService } from 'src/app/services/group.service';\n\n@Component({\n selector: 'app-update-member',\n templateUrl: './update-member.component.html'\n})\nexport class UpdateMemberComponent {\n selectedGroupId: string;\n selectedGroupReferenceId: string;\n selectedMemberId: string;\n header: string;\n\n constructor(private _route: ActivatedRoute, private _router: Router, private _groupService: GroupService) {\n this._route.params.subscribe(params => { this.selectedMemberId = params['memberId']; });\n this._route.params.subscribe(params => {\n this.selectedGroupReferenceId = params['groupId'];\n this._groupService.getGroup(params['groupId']).subscribe(group => {\n if (!!group) {\n this.header = `Member of ${group.name} Group`;\n this.selectedGroupId = group.externalId;\n }\n });\n });\n }\n\n showAllMembers() {\n this._router.navigate([`/admin/groups/${this.selectedGroupReferenceId}/members`]);\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL2dyb3Vwcy9ncm91cC1tZW1iZXJzL3ZpZXctbWVtYmVyLWhyYS92aWV3LW1lbWJlci1ocmEuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { DynamicControlService } from 'src/app/data-driven/dynamic-control.Service';\nimport { QuestionService } from 'src/app/data-driven/question.service';\nimport { HRAService } from 'src/app/services/hra.service';\n\n@Component({\n selector: 'app-view-member-hra',\n templateUrl: './view-member-hra.component.html',\n styleUrls: ['./view-member-hra.component.scss']\n})\nexport class ViewMemberHraComponent implements OnInit {\n\n form: FormGroup;\n questions;\n\n private _groupId: string;\n private _externalId: string;\n\n constructor(\n private _hraService: HRAService,\n private _route: ActivatedRoute,\n private questionService: QuestionService,\n private qcs: DynamicControlService\n ) {\n\n this._route.params.subscribe(params => {\n this._groupId = params['groupId'];\n this._externalId = params['memberId'];\n });\n\n this.getQuestions();\n }\n\n ngOnInit() {\n this._hraService.getHRA(this._groupId, this._externalId).subscribe(x => {\n if (!!x) {\n var value = JSON.parse(x.savedForm);\n if (typeof value === 'string') {\n value = JSON.parse(value);\n }\n this.form.patchValue(value);\n }\n });\n }\n\n private getQuestions() {\n this.questionService.getQuestions(this._externalId).subscribe(question => {\n this.questions = question;\n this.form = this.qcs.toFormGroup(this.questions, true);\n });\n }\n\n}\n","export default \"label {\\n font-weight: bold; }\\n\\n/*Hide all except first fieldset*/\\n\\n#msform fieldset:not(:first-of-type) {\\n display: none; }\\n\\n.btn:not(:disabled):not(.disabled) {\\n cursor: pointer;\\n color: #fff !important;\\n background-color: #1e7e34 !important;\\n border-color: #1c7430 !important; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9jb250cm9scy9BZG1pbi9ncm91cHMvZ3JvdXAtdmlldy9ncm91cC12aWV3LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCLEVBQUE7O0FBR25CLGlDQUFBOztBQUNBO0VBQ0UsYUFBYSxFQUFBOztBQU1mO0VBQ0UsZUFBZTtFQUNmLHNCQUFzQjtFQUN0QixvQ0FBb0M7RUFDcEMsZ0NBQWdDLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb250cm9scy9BZG1pbi9ncm91cHMvZ3JvdXAtdmlldy9ncm91cC12aWV3LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsibGFiZWwge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLypIaWRlIGFsbCBleGNlcHQgZmlyc3QgZmllbGRzZXQqL1xuI21zZm9ybSBmaWVsZHNldDpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuXG5cblxuLmJ0bjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlN2UzNCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMxYzc0MzAgIWltcG9ydGFudDtcbn1cbiJdfQ== */\"","import { Component, OnInit, Input } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { catchError, debounceTime, distinctUntilChanged, first, map, switchMap, tap } from 'rxjs/operators';\nimport { GroupService } from 'src/app/services/group.service';\nimport { ColDef } from 'ag-grid-community';\nimport { AlertifyService } from 'src/app/services/alertify.service';\nimport { ActivatedRoute, Route, Router, UrlSerializer } from '@angular/router';\nimport { DatePipe, Location } from '@angular/common';\nimport { PeriodService } from '../../../../services/period.service';\nimport { Period } from '../../../../models/period';\nimport { Group } from '../../../../models/group';\nimport { Member } from '../../../../models/member';\nimport { MemberStatus } from '../../../../models/enums/memberStatus';\nimport { ClaimService } from 'src/app/services/claim.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { PopupComponent } from '../../../pop-up/popup/popup.component';\n\n\n\n@Component({\n selector: 'app-view-group',\n templateUrl: './group-view.component.html',\n styleUrls: ['./group-view.component.scss'],\n})\nexport class GroupViewComponent implements OnInit {\n @Input()\n groupRefrenceId: string;\n Id: number;\n periodId: number;\n claimForm: FormGroup;\n showClaimList = false;\n periodValue: string;\n state: string;\n city: string;\n loading = false;\n loadingBroker = false;\n groupData: Group = new Group();\n members: Member[];\n submitted = false;\n groupId: number;\n ShowGrid = false;\n periodScheduleList: any;\n period: Period[];\n \n externalId: string;\n errorMessage: string[] = [];\n successMessage = '';\n addUpdateError: string[] = [];\n columnDefs: ColDef[] = [];\n selectedEnumValue: MemberStatus = MemberStatus.All; // Set the default selected value\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n claimFormData: any;\n baseUrl: string = '';\n private gridApi;\n personalDetails!: FormGroup;\n addressDetails!: FormGroup;\n educationalDetails!: FormGroup;\n personal_step = false;\n address_step = false;\n education_step = false;\n step = 1;\n constructor(\n private _groupService: GroupService, private _datepipe: DatePipe, private location: Location,\n private _formBuilder: FormBuilder, private urlSerializer: UrlSerializer,\n private _claimService: ClaimService,\n private _periodService: PeriodService,\n private _fb: FormBuilder,\n private _alertify: AlertifyService, private dialog: MatDialog,\n private _router: Router, private _route: ActivatedRoute\n ) {\n\n this._route.params.subscribe(params => {\n this.groupRefrenceId = params['id'];\n });\n\n }\n activeTab = 'member';\n\n member(activeTab) {\n \n this.activeTab = activeTab;\n }\n\n claim(activeTab) {\n this.showClaimList = true;\n this.activeTab = activeTab;\n }\n ngOnInit() {\n this.getGroupById();\n }\n redirectToGroupEdit() {\n this._router.navigate([`/admin/groups/${this.groupRefrenceId}`]);\n }\n getGroupById() {\n if (!!this.groupRefrenceId) {\n this._groupService.getGroup(this.groupRefrenceId).subscribe(group => {\n \n this.groupData = group;\n if (group != null) {\n this.city = group.city;\n this.state = group.state;\n }\n this.externalId= group.externalId;\n //this.periodId = group.periodId;\n //this.groupId = group.id;\n this.getPeriods();\n \n });\n\n }\n }\n showPayment() {//claim-payment/:id\n this._router.navigate([`/admin/claim-payment/` + this.groupRefrenceId]);\n }\n showInoicePayment() {//claim-payment/:id\n this._router.navigate([`/admin/invoice/` + this.groupRefrenceId]);\n }\n // convenience getter for easy access to form fields\n get f() {\n return this.claimForm.controls;\n }\n \n getPeriods() {\n this._periodService\n .getAllPeriods()\n .subscribe((periods) => {\n if (periods.length > 0) {\n this.period = periods.filter(x => parseInt(x.id) === this.groupData.periodId).map(x => x.name);\n }\n });\n }\n OnRedirectToLeadList() {\n let groupid = this.groupRefrenceId;\n this._router.navigate(['admin/groups/' + this.externalId + '/lead-list'])\n }\n // copy data on button click\n copyData() {\n this.successMessage = '';\n this.baseUrl = this.getBaseUrl();\n const routeUrlTree = this._router.createUrlTree(['/plans/selection'], {\n queryParams: { groupid: this.externalId },\n });\n const urlString = this.urlSerializer.serialize(routeUrlTree);\n this.copyTextToClipboard(this.baseUrl + urlString);\n this.successMessage = 'Link copied successfully.';\n // alert(this.successMessage)\n this.dialog.open(PopupComponent, {\n data: this.successMessage,\n panelClass: 'custom-dialog-container'\n });\n }\n // get dynamic url\n private getBaseUrl(): string {\n const protocol = window.location.protocol;\n const hostname = window.location.hostname;\n const port = window.location.port;\n // Use the detected protocol, hostname, and port to form the base URL\n return `${protocol}//${hostname}${port ? ':' + port : ''}`;\n }\n\n\n // copy data \n private copyTextToClipboard(text: string) {\n const dummyInput = document.createElement('input');\n dummyInput.style.position = 'fixed';\n dummyInput.style.opacity = '0';\n dummyInput.value = text;\n document.body.appendChild(dummyInput);\n\n dummyInput.select();\n document.execCommand('copy');\n document.body.removeChild(dummyInput);\n }\n back() {\n this.location.back();\n }\n}\n\n","import { Component } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Location } from '@angular/common';\n\n@Component({\n selector: 'app-update-group',\n templateUrl: './update-group.component.html'\n})\nexport class UpdateGroupComponent {\n selectedGroupId: string;\n constructor(private _route: ActivatedRoute, private _router: Router, private location: Location) {\n this._route.params.subscribe(params => { this.selectedGroupId = params['groupId']; });\n }\n\n back() {\n this.location.back();\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { FormBuilder, Validators, FormGroup } from '@angular/forms';\nimport { first } from 'rxjs/operators';\nimport { IndemnityBenefitService } from 'src/app/services/indemnityBenefit.service';\nimport { ValidatorsService } from '../../../../helpers/validators.service';\n\n@Component({\n selector: 'app-add-indemnity-benefit',\n templateUrl: './add-edit.component.html'\n})\nexport class AddEditIndemnityBenefitComponent implements OnInit {\n @Input()\n indemnityBenefitId: number;\n indemnityBenefitForm: FormGroup;\n loading = false;\n submitted = false;\n errorMessage: string[] = [];\n successMessage = '';\n\n constructor(\n private _formBuilder: FormBuilder,\n private _indemnityBenefitService: IndemnityBenefitService, private validatorsService: ValidatorsService\n ) { }\n\n ngOnInit() {\n this.indemnityBenefitForm = this._formBuilder.group({\n name: ['', Validators.required],\n amount: [0, [Validators.required, this.validatorsService.nonNegativeValidator()]],\n monthlyLimit: [0, [Validators.required, this.validatorsService.nonNegativeValidator()]],\n isActive: [false],\n description: ['', Validators.required],\n code: ['', Validators.required]\n //broker: [''],\n });\n\n if (!!this.indemnityBenefitId) {\n this._indemnityBenefitService.getIndemnityBenefit(this.indemnityBenefitId).subscribe(indemnityBenefit => {\n this.indemnityBenefitForm.patchValue(indemnityBenefit);\n });\n }\n }\n \n // convenience getter for easy access to form fields\n get f() { return this.indemnityBenefitForm.controls; }\n\n onSubmit() {\n this.submitted = true;\n\n // reset alerts on submit\n this.successMessage = '';\n this.errorMessage = [];\n\n // stop here if form is invalid\n if (this.indemnityBenefitForm.invalid) {\n return;\n }\n\n this.loading = true;\n const indemnityBenefitId = this.indemnityBenefitId;\n // delete this.groupForm.value['broker'];\n if (!!indemnityBenefitId) {\n this._indemnityBenefitService.updateIndemnityBenefit(indemnityBenefitId, this.indemnityBenefitForm.value)\n .pipe(first())\n .subscribe(\n () => {\n // return to list\n this.successMessage = 'Indemnity Benefit updated successfully.';\n this.loading = false;\n this.errorMessage = [];\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this.errorMessage.push(err.value));\n } else if (typeof error.error === 'string') {\n this.errorMessage.push(error.error);\n } else {\n this.errorMessage.push(error);\n }\n this.loading = false;\n });\n } else {\n this._indemnityBenefitService.addIndemnityBenefit(this.indemnityBenefitForm.value)\n .pipe(first())\n .subscribe(\n (indemnityBenefit) => {\n // return to list\n this.successMessage = 'Indemnity Benefit added successfully.';\n this.loading = false;\n this.indemnityBenefitId = indemnityBenefit.id;\n this.errorMessage = [];\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this.errorMessage.push(err.value));\n } else if (typeof error.error === 'string') {\n this.errorMessage.push(error.error);\n } else {\n this.errorMessage.push(error);\n }\n this.loading = false;\n });\n }\n }\n}\n\n\n","import { Component } from '@angular/core';\nimport { IndemnityBenefitService } from 'src/app/services/indemnityBenefit.service';\nimport { IndemnityBenefit } from 'src/app/models/indemnityBenefit';\nimport { ColDef } from 'ag-grid-community';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BtnCellRendererComponent } from 'src/app/shared/controls/renderers/button-renderer/btn.renderer';\n\n@Component({\n selector: 'app-indemnitybenefits',\n templateUrl: './indemnitybenefit-list.component.html'\n})\nexport class IndemnityBenefitListComponent {\n selectedIndemnityBenefitId: number;\n addingIndemnityBenefit = false;\n indemnityBenefits: IndemnityBenefit[];\n columnDefs: ColDef[] = [];\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n\n private gridApi;\n\n constructor(private _indemnityBenefitService: IndemnityBenefitService, private _route: ActivatedRoute, private _router: Router) {\n this._route.params.subscribe(params => { this.selectedIndemnityBenefitId = params['indemnityBenefitId']; });\n if (this.selectedIndemnityBenefitId) {\n this.addingIndemnityBenefit = true;\n }\n const _this = this;\n this.getAllIndemnityBenefits();\n\n this.columnDefs = [\n { hide: true, field: 'id' },\n {\n headerName: 'Name', field: 'name', suppressMovable: true, sortable: true, filter: true\n },\n { headerName: 'Amount', field: 'amount', suppressMovable: true, sortable: true, filter: true, valueFormatter: params => \"$\" + params.data.amount },\n { headerName: 'Monthly Limit', field: 'monthlyLimit', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Active?', field: 'isActive', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Code', field: 'code', suppressMovable: true, sortable: true, filter: true },\n {\n headerName: '',\n field: 'id',\n suppressMovable: true,\n cellRendererFramework: BtnCellRendererComponent,\n cellRendererParams: {\n //showDeleteBtn: true,\n showEditBtn: true,\n clicked: function (isDelete: boolean, id: any) {\n if (isDelete) {\n _this.deleteIndemnityBenefit(id);\n } else {\n _this._router.navigate([`/admin/indemnitybenefits/${id}`]);\n }\n\n }\n },\n }];\n }\n\n onGridReady(params) {\n this.gridApi = params.api;\n this.gridApi.setDomLayout(\"autoHeight\");\n }\n\n getAllIndemnityBenefits() {\n this._indemnityBenefitService.getAllIndemnityBenefits().subscribe(indemnityBenefits => {\n this.indemnityBenefits = indemnityBenefits;\n });\n }\n\n deleteIndemnityBenefit(id: number) {\n this._indemnityBenefitService.deleteIndemnityBenefit(id).subscribe(x => {\n this.indemnityBenefits = this.indemnityBenefits.filter(g => g.id !== id);\n this.gridApi.setRowData(this.indemnityBenefits);\n });\n }\n\n addIndemnityBenefit() {\n this.addingIndemnityBenefit = true;\n }\n\n showAllIndemnityBenefits() {\n this.getAllIndemnityBenefits();\n this.addingIndemnityBenefit = false;\n }\n}\n","import { Component } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'app-update-indemnitybenefit-benefit',\n templateUrl: './update-indemnitybenefit.component.html'\n})\nexport class UpdateIndemnityBenefitComponent {\n selectedIndemnityBenefitId: number;\n constructor(private _route: ActivatedRoute, private _router: Router) {\n this._route.params.subscribe(params => { this.selectedIndemnityBenefitId = params['indemnityBenefitId']; });\n }\n\n showAllIndemnityBenefits() {\n this._router.navigate(['/admin/indemnitybenefits']);\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL2xlYWRzL2xlYWQtbGlzdC9sZWFkLWxpc3QuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ColDef } from 'ag-grid-community';\nimport { GroupService } from 'src/app/services/group.service';\nimport { UploadLeadComponent } from '../upload-lead/upload-lead.component';\nimport { BtnCellRendererComponent } from 'src/app/shared/controls/renderers/button-renderer/btn.renderer';\nimport { AlertifyService } from 'src/app/services/alertify.service';\nimport moment from 'moment';\n\n@Component({\n selector: 'app-lead-list',\n templateUrl: './lead-list.component.html',\n styleUrls: ['./lead-list.component.css']\n})\nexport class LeadListComponent {\n\n selectedGroupId: string;\n groupName: string;\n leads: any[] = [];\n columnDefs: ColDef[] = [];\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n\n private gridApi;\n\n constructor(private _groupService: GroupService, private _route: ActivatedRoute, private alertify :AlertifyService,\n private dialog: MatDialog, private _router: Router) {\n this._route.params.subscribe(params => {\n \n this.selectedGroupId = params['groupId'];\n });\n //const _this = this;\n \n\n this.columnDefs = [\n { hide: true, field: 'leadId' },\n { headerName: 'First Name', field: 'firstName', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Last Name', field: 'lastName', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Email', field: 'email', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Mobile', field: 'mobile', suppressMovable: true, sortable: true, filter: true },\n {\n headerName: 'Date of Birth', field: 'dob', sortable: true, filter: true, cellRenderer: (data) => {\n return moment(data.value).format('MM/DD/YYYY')\n }\n },\n { headerName: 'Plan', field: 'planName', suppressMovable: true, sortable: true, filter: true },\n {\n headerName: '',\n field: 'referenceId',\n suppressMovable: true,\n cellRendererFramework: BtnCellRendererComponent,\n cellRendererParams: {\n showLeadEnrollmentBtn: true, \n },\n }\n ];\n this.getAllLeads();\n this.getGroupName();\n }\n \n onGridReady(params) {\n this.gridApi = params.api;\n this.gridApi.setDomLayout(\"autoHeight\");\n }\n\n getAllLeads() { \n this._groupService.getGroupLeads(Number(this.selectedGroupId)).subscribe(leads => {\n this.leads = leads; \n }, error =>{\n console.log('lead list error :'+error.error);\n \n });\n }\n\n getGroupName() {\n \n this._groupService.getGroupName(this.selectedGroupId).subscribe(leads => {\n this.groupName = leads.value;\n }, error => {\n console.log('lead list error :' + error.error);\n\n });\n }\n openUploadLead(event: any) {\n event.preventDefault();\n const dailogRef = this.dialog.open(UploadLeadComponent, {\n width: '500px',\n height: 'auto',\n data: this.selectedGroupId,\n disableClose: true,\n hasBackdrop: false\n });\n dailogRef.afterClosed().subscribe(result => {\n if (result) { \n this.getAllLeads(); \n }\n });\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL2xlYWRzL3VwbG9hZC1sZWFkL3VwbG9hZC1sZWFkLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';\nimport { AlertifyService } from 'src/app/services/alertify.service';\nimport { environment } from '../../../../../environments/environment';\nimport { GroupService } from 'src/app/services/group.service';\n\n@Component({\n selector: 'app-upload-lead',\n templateUrl: './upload-lead.component.html',\n styleUrls: ['./upload-lead.component.css']\n})\nexport class UploadLeadComponent implements OnInit {\n leadFile: any;\n loading: boolean = false;\n downloadLink: string = environment.downloadLink;\n selectedGroupId: any;\n constructor(\n private alertify: AlertifyService, \n private _groupService : GroupService,\n public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) {\n this.selectedGroupId = data;\n }\n\n ngOnInit() {\n }\n onFileUpload(event: any) {\n if ((event.target as HTMLInputElement).files.length < 1) {\n return;\n }\n var allowedExtention = ['csv'];\n const file = (event.target as HTMLInputElement).files[0];\n let splitedValue = file.name.toLowerCase().split('.');\n if ((splitedValue.length < 2 || allowedExtention.indexOf(splitedValue[splitedValue.length - 1]) == -1)) {\n return;\n }\n else {\n this.leadFile = file;\n }\n }\n\n handleOnSave(event: any) {\n if (this.leadFile) {\n this.loading = true;\n this._groupService.uploadLeadByAdmin(this.selectedGroupId, this.leadFile).subscribe(result => {\n this.alertify.success(\"File uploaded successfully\");\n this.loading = false; \n this.dialogRef.close(true);\n },error => {\n this.alertify.error(error.error);\n });\n }\n else\n this.alertify.error(\"Please upload a file and submit\")\n }\n\n\n handleOnClose(event: any) {\n this.dialogRef.close(false);\n }\n\n}\n","export default \"\\n.container {\\n max-width: 1440px;\\n width: 1310px;\\n}\\n\\n.formtitle {\\n padding-bottom: 0px;\\n}\\n\\n.headingContainer{\\n border: 1px solid;\\n}\\n\\n.heading {\\n border-bottom: 1px solid;\\n}\\n\\n@media screen and (min-width: 320px) and (max-width: 600px) {\\n\\n .main-logo {\\n top: 24px;\\n }\\n\\n a b {\\n font-size: 22px !important;\\n }\\n\\n a span {\\n font-size: 22px !important;\\n }\\n\\n .logo {\\n width: 20rem !important;\\n }\\n}\\n\\n::-webkit-input-placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\\n color:#bbb6b6;\\n \\n}\\n\\n::-moz-placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\\n color:#bbb6b6;\\n \\n}\\n\\n:-ms-input-placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\\n color:#bbb6b6;\\n \\n}\\n\\n::-ms-input-placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\\n color:#bbb6b6;\\n \\n}\\n\\n::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\\n color:#bbb6b6;\\n \\n}\\n\\n.bgadd{background-image: linear-gradient(to right, #626a5c, #539b4c)!important;\\ncolor: #fff!important;\\npadding: 10px;\\nmargin-bottom: 0px;;}\\n\\n.styleline{padding-left: 18px!important;\\n font-weight: bold!important;\\n color: #1c34bb!important;\\n text-decoration: underline!important;}\\n\\n.errorsms{color: red!important;\\n display: block!important;\\n width: 100%!important;\\n padding-left: 18px!important;\\n font-weight: bold!important;\\n text-transform: uppercase!important;\\n font-size: 12px!important;}\\n\\n.btn-primary.disabled, .btn-primary:disabled{color: #000;}\\n\\n.errprtext {font-size: 12px;\\ncolor: red; \\nfont-weight: 500; font-family: revert;}\\n\\n.stepformmanage {\\n padding: 18px!important;\\n background-color: #ffffff!important;\\n \\n position: relative!important;\\n border-radius: 0px!important;\\n}\\n\\n.form-control:focus {\\n color: #495057;\\n background-color: #fff;\\n border-color: #80bdff;\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\\n}\\n\\n.btn-success {\\n color: #fff;\\n background-color: #f89a5e!important;\\n border-color: #f89a5e!important;\\n}\\n\\n.formset {\\n width: 100%;\\n height: 38px;\\n background: #fef4ee !important;\\n border: 1px solid #5e5e5e40!important;\\n border-radius: 4px!important;\\n}\\n\\nlabel {\\n font-weight: 500;\\n}\\n\\n.terms-content {\\n max-height: 100%;\\n}\\n\\n.term-item {\\n margin-bottom: 10px;\\n}\\n\\n.term-item label {\\n display: inline-block;\\n vertical-align: middle;\\n margin-left: 10px;\\n}\\n\\n.terms-container {\\nheight: 150px; /* Adjust the height as needed */\\noverflow-y: auto;\\nborder: 1px solid #ccc;\\npadding: 10px;\\n}\\n\\n.terms-content {\\nmax-height: 100%;\\n}\\n\\n.terms-text {\\nwhite-space: pre-wrap;\\n}\\n\\n.logo {\\n margin-left: 120px;\\n margin-top:30px;\\n width:100%;\\n}\\n\\n.HeaderForm {\\n color: black; font-size: 25px;\\n position: relative;\\n top: 14px;\\n left: 25px; \\n}\\n\\n/* .stepformmanage{margin-bottom: 25px;} */\\n\\n.formset {\\n width: 100%;\\n height: 46px;\\n background: #ffffff;\\n border: 1px solid #bbb6b640;\\n}\\n\\n@media screen and (min-width: 320px) and (max-width: 600px) {\\n.mr0{margin: 0px!important;}\\n\\n.rc-anchor-normal{ width: 98%!important;}\\n\\n}\\n\\n.mt-15{\\n margin-top: 15px;\\n}\\n\\n.mt-30{\\n margin-top: 30px;\\n}\\n\\n.mt-20 {\\n margin-top:20px;\\n}\\n\\n.mr-15 {\\n margin-right: 15px;\\n}\\n\\n.ml-15 {\\n margin-left: 15px;\\n}\\n\\n@media print {\\n .no-print, .no-print * {\\n display: none !important;\\n }\\n}\\n\\n.signClass > img {\\n width: 300px;\\n height: 150px;\\n vertical-align: bottom;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udHJvbHMvQWRtaW4vbWVtYmVycy9lbnJvbGxtZW50L2Vucm9sbG1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7RUFDRSxpQkFBaUI7RUFDakIsYUFBYTtBQUNmOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUNDO0VBQ0MsaUJBQWlCO0FBQ25COztBQUNBO0VBQ0Usd0JBQXdCO0FBQzFCOztBQUNBOztFQUVFO0lBQ0UsU0FBUztFQUNYOztFQUVBO0lBQ0UsMEJBQTBCO0VBQzVCOztFQUVBO0lBQ0UsMEJBQTBCO0VBQzVCOztFQUVBO0lBQ0UsdUJBQXVCO0VBQ3pCO0FBQ0Y7O0FBRUEsOEJBQWdCLHlDQUF5QztFQUN2RCxhQUFhOztBQUVmOztBQUhBLHFCQUFnQix5Q0FBeUM7RUFDdkQsYUFBYTs7QUFFZjs7QUFIQSx5QkFBZ0IseUNBQXlDO0VBQ3ZELGFBQWE7O0FBRWY7O0FBSEEsMEJBQWdCLHlDQUF5QztFQUN2RCxhQUFhOztBQUVmOztBQUhBLGdCQUFnQix5Q0FBeUM7RUFDdkQsYUFBYTs7QUFFZjs7QUFDQSxPQUFPLHVFQUF1RTtBQUM5RSxxQkFBcUI7QUFDckIsYUFBYTtBQUNiLGtCQUFrQixFQUFFOztBQUluQixXQUFXLDRCQUE0QjtFQUN0QywyQkFBMkI7RUFDM0Isd0JBQXdCO0VBQ3hCLG9DQUFvQyxDQUFDOztBQUdyQyxVQUFVLG9CQUFvQjtJQUM1Qix3QkFBd0I7SUFDeEIscUJBQXFCO0lBQ3JCLDRCQUE0QjtJQUM1QiwyQkFBMkI7SUFDM0IsbUNBQW1DO0lBQ25DLHlCQUF5QixDQUFDOztBQUU5Qiw2Q0FBNkMsV0FBVyxDQUFDOztBQUt6RCxZQUFZLGVBQWU7QUFDM0IsVUFBVTtBQUNWLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDOztBQUl0QztFQUNFLHVCQUF1QjtFQUN2QixtQ0FBbUM7O0VBRW5DLDRCQUE0QjtFQUM1Qiw0QkFBNEI7QUFDOUI7O0FBRUE7RUFDRSxjQUFjO0VBQ2Qsc0JBQXNCO0VBQ3RCLHFCQUFxQjtFQUNyQixVQUFVO0VBQ1YsZ0RBQWdEO0FBQ2xEOztBQUVBO0VBQ0UsV0FBVztFQUNYLG1DQUFtQztFQUNuQywrQkFBK0I7QUFDakM7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsWUFBWTtFQUNaLDhCQUE4QjtFQUM5QixxQ0FBcUM7RUFDckMsNEJBQTRCO0FBQzlCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUdBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UscUJBQXFCO0VBQ3JCLHNCQUFzQjtFQUN0QixpQkFBaUI7QUFDbkI7O0FBRUk7QUFDSixhQUFhLEVBQUUsZ0NBQWdDO0FBQy9DLGdCQUFnQjtBQUNoQixzQkFBc0I7QUFDdEIsYUFBYTtBQUNiOztBQUVBO0FBQ0EsZ0JBQWdCO0FBQ2hCOztBQUVBO0FBQ0EscUJBQXFCO0FBQ3JCOztBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLGVBQWU7RUFDZixVQUFVO0FBQ1o7O0FBRUE7RUFDRSxZQUFZLEVBQUUsZUFBZTtFQUM3QixrQkFBa0I7RUFDbEIsU0FBUztFQUNULFVBQVU7QUFDWjs7QUFDQSwwQ0FBMEM7O0FBRzFDO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsMkJBQTJCO0FBQzdCOztBQUdBO0FBQ0EsS0FBSyxxQkFBcUIsQ0FBQzs7QUFFM0IsbUJBQW1CLG9CQUFvQixDQUFDOztBQUV4Qzs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFDQTtFQUNFLGVBQWU7QUFDakI7O0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7O0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7O0FBQ0E7RUFDRTtJQUNFLHdCQUF3QjtFQUMxQjtBQUNGOztBQUNBO0VBQ0UsWUFBWTtFQUNaLGFBQWE7RUFDYixzQkFBc0I7QUFDeEIiLCJmaWxlIjoic3JjL2FwcC9jb250cm9scy9BZG1pbi9tZW1iZXJzL2Vucm9sbG1lbnQvZW5yb2xsbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXG4uY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiAxNDQwcHg7XG4gIHdpZHRoOiAxMzEwcHg7XG59XG5cbi5mb3JtdGl0bGUge1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuIC5oZWFkaW5nQ29udGFpbmVye1xuICBib3JkZXI6IDFweCBzb2xpZDtcbn1cbi5oZWFkaW5nIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzIwcHgpIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXG4gIC5tYWluLWxvZ28ge1xuICAgIHRvcDogMjRweDtcbiAgfVxuXG4gIGEgYiB7XG4gICAgZm9udC1zaXplOiAyMnB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICBhIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMjJweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmxvZ28ge1xuICAgIHdpZHRoOiAyMHJlbSAhaW1wb3J0YW50O1xuICB9XG59XG5cbjo6cGxhY2Vob2xkZXIgeyAvKiBDaHJvbWUsIEZpcmVmb3gsIE9wZXJhLCBTYWZhcmkgMTAuMSsgKi9cbiAgY29sb3I6I2JiYjZiNjtcbiBcbn1cbi5iZ2FkZHtiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICM2MjZhNWMsICM1MzliNGMpIWltcG9ydGFudDtcbmNvbG9yOiAjZmZmIWltcG9ydGFudDtcbnBhZGRpbmc6IDEwcHg7XG5tYXJnaW4tYm90dG9tOiAwcHg7O31cblxuXG5cbiAuc3R5bGVsaW5le3BhZGRpbmctbGVmdDogMThweCFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkIWltcG9ydGFudDtcbiAgY29sb3I6ICMxYzM0YmIhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSFpbXBvcnRhbnQ7fVxuXG5cbiAgLmVycm9yc21ze2NvbG9yOiByZWQhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGJsb2NrIWltcG9ydGFudDtcbiAgICB3aWR0aDogMTAwJSFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAxOHB4IWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogYm9sZCFpbXBvcnRhbnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxMnB4IWltcG9ydGFudDt9XG5cbi5idG4tcHJpbWFyeS5kaXNhYmxlZCwgLmJ0bi1wcmltYXJ5OmRpc2FibGVke2NvbG9yOiAjMDAwO31cblxuXG5cblxuLmVycnBydGV4dCB7Zm9udC1zaXplOiAxMnB4O1xuY29sb3I6IHJlZDsgICBcbmZvbnQtd2VpZ2h0OiA1MDA7IGZvbnQtZmFtaWx5OiByZXZlcnQ7fVxuXG5cblxuLnN0ZXBmb3JtbWFuYWdlIHtcbiAgcGFkZGluZzogMThweCFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYhaW1wb3J0YW50O1xuICBcbiAgcG9zaXRpb246IHJlbGF0aXZlIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4IWltcG9ydGFudDtcbn1cblxuLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGNvbG9yOiAjNDk1MDU3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICM4MGJkZmY7XG4gIG91dGxpbmU6IDA7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDAsIDEyMywgMjU1LCAwLjI1KTtcbn1cblxuLmJ0bi1zdWNjZXNzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmODlhNWUhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNmODlhNWUhaW1wb3J0YW50O1xufVxuXG4uZm9ybXNldCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDM4cHg7XG4gIGJhY2tncm91bmQ6ICNmZWY0ZWUgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzVlNWU1ZTQwIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4IWltcG9ydGFudDtcbn1cblxubGFiZWwge1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG5cbi50ZXJtcy1jb250ZW50IHtcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLnRlcm0taXRlbSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi50ZXJtLWl0ZW0gbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4gICAgLnRlcm1zLWNvbnRhaW5lciB7XG5oZWlnaHQ6IDE1MHB4OyAvKiBBZGp1c3QgdGhlIGhlaWdodCBhcyBuZWVkZWQgKi9cbm92ZXJmbG93LXk6IGF1dG87XG5ib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xucGFkZGluZzogMTBweDtcbn1cblxuLnRlcm1zLWNvbnRlbnQge1xubWF4LWhlaWdodDogMTAwJTtcbn1cblxuLnRlcm1zLXRleHQge1xud2hpdGUtc3BhY2U6IHByZS13cmFwO1xufVxuLmxvZ28ge1xuICBtYXJnaW4tbGVmdDogMTIwcHg7XG4gIG1hcmdpbi10b3A6MzBweDtcbiAgd2lkdGg6MTAwJTtcbn1cblxuLkhlYWRlckZvcm0ge1xuICBjb2xvcjogYmxhY2s7IGZvbnQtc2l6ZTogMjVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDE0cHg7XG4gIGxlZnQ6IDI1cHg7ICBcbn1cbi8qIC5zdGVwZm9ybW1hbmFnZXttYXJnaW4tYm90dG9tOiAyNXB4O30gKi9cblxuXG4uZm9ybXNldCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQ2cHg7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiYmI2YjY0MDtcbn1cblxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4ubXIwe21hcmdpbjogMHB4IWltcG9ydGFudDt9XG5cbi5yYy1hbmNob3Itbm9ybWFseyB3aWR0aDogOTglIWltcG9ydGFudDt9XG5cbn1cblxuLm10LTE1e1xuICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuXG4ubXQtMzB7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG59XG4ubXQtMjAge1xuICBtYXJnaW4tdG9wOjIwcHg7XG59XG4ubXItMTUge1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG59XG4ubWwtMTUge1xuICBtYXJnaW4tbGVmdDogMTVweDtcbn1cbkBtZWRpYSBwcmludCB7XG4gIC5uby1wcmludCwgLm5vLXByaW50ICoge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnNpZ25DbGFzcyA+IGltZyB7XG4gIHdpZHRoOiAzMDBweDtcbiAgaGVpZ2h0OiAxNTBweDtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn0iXX0= */\"","import { DatePipe, Location } from \"@angular/common\";\nimport { Component, Input, OnInit, ViewChild } from \"@angular/core\";\nimport { FormBuilder, FormGroup, NgForm, Validators } from \"@angular/forms\";\nimport { MatDialog } from \"@angular/material\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { first, map } from \"rxjs/operators\";\nimport { AddressValidateModel } from \"src/app/models/addressValidateModel\";\nimport { EmployeesService } from \"src/app/services/employees.service\";\nimport { GroupService } from \"src/app/services/group.service\";\nimport { MemberService } from \"src/app/services/member.service\";\nimport { SharedService } from \"src/app/services/shared.service\";\nimport { SignatureService } from \"src/app/services/signature.service\";\nimport { MustMatch } from \"src/app/helpers/must-match.validators\";\nimport { AlertifyService } from \"src/app/services/alertify.service\";\nimport { EnrollmentService } from \"src/app/services/enrollment.service\";\nimport { environment } from \"src/environments/environment\";\nimport { Member } from 'src/app/models/member';\n\n@Component({\n selector: \"app-member-enrollment\",\n templateUrl: \"./enrollment.component.html\",\n styleUrls: [\"./enrollment.component.css\"],\n})\nexport class MemberEnrollmentComponent implements OnInit {\n showssn:boolean = false;\n memberSSN:string;\n addEmployeeForm: FormGroup;\n memberData: Member = new Member();\n memberId: string;\n ipAddress: string;\n hasInsurance: string;\n groupInfo: any;\n constructor(private _route: ActivatedRoute, private _groupService: GroupService,\n private _fb: FormBuilder, private _memberService: MemberService\n ) {\n\n this._route.params.subscribe(params => {\n this.memberId = params['memberid'];\n });\n }\n\n ngOnInit() {\n this.getMemberById();//for member details\n this.getMemberAddress(); // for address \n this.getMemberSignature(); // signature details\n\n }\n\n getMemberById() {\n this._memberService.getMemberDetails(this.memberId).subscribe(member => {\n this.memberData = member;\n this.hasInsurance = this.memberData.insurancePolicyNo == null || this.memberData.insurancePolicyNo == '' ? \"2\" : \"1\";\n if (this.memberData.groupId != null && this.memberData.groupId != 0) {\n this.getGroupInfo(this.memberData.groupId);\n\n }\n this.getMemberDependents();\n });\n }\n getMemberDependents() {\n this._memberService.getMemberDependents(this.memberId).subscribe((dependents: any) => {\n console.log(dependents);\n this.memberData.dependents = dependents;\n });\n }\n getMemberAddress() {\n this._memberService.getMemberAddress(this.memberId).subscribe((address: any) => {\n this.memberData.addressLine1 = address.mailingAddress;\n this.memberData.addressLine2 = address.apartmentNumber;\n this.memberData.city = address.city;\n this.memberData.zipCode = address.zipCode;\n this.memberData.state = address.state; \n });\n }\n\n getMemberSignature() {\n this._memberService.getMemberSignature(this.memberId).subscribe((signature: any) => {\n if(signature)\n {\n this.memberData.browserName = signature.browserName;\n this.memberData.browserVersion = signature.browserVersion;\n this.ipAddress = signature.ipAddress;\n this.memberData.signatureDateTime = signature.signatureDateTime;\n this.memberData.signaturePath = \"data:image/png;base64,\" + signature.signaturePath;\n }\n });\n }\n getGroupInfo(groupId: any) {\n this._groupService.getGroupByGroupId(Number(groupId)).subscribe(res => {\n \n if (res) {\n \n this.groupInfo = res;\n }\n })\n\n }\n showSSN(){\n this.showssn = !this.showssn;\n if(this.showssn){\n this._memberService.getSSNByMemberId(this.memberId).subscribe(res=>{\n this.memberSSN = res;\n })\n }\n }\n}\n\n","import { Component } from '@angular/core';\nimport { GroupService } from 'src/app/services/group.service';\nimport { ColDef, ValueGetterParams } from 'ag-grid-community';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Member } from '../../../../models/member';\nimport { MemberService } from '../../../../services/member.service';\nimport { MemberStatus } from '../../../../models/enums/memberStatus';\nimport { MemberNameRendererComponent } from './member-name-renderer/member-name-renderer';\n\n@Component({\n selector: 'app-members',\n templateUrl: './member-list.component.html'\n})\nexport class MemberListComponent {\n\n members: Member[];\n groupExternalId: string; \n columnDefs: ColDef[] = [];\n defaultColDef = {\n flex: 1,\n resizable: true,\n };\n private gridApi;\n \n enumValues = [\n { value: MemberStatus.All, text: 'Select Status' },\n { value: MemberStatus.Pending, text: 'Pending' },\n { value: MemberStatus.Active, text: 'Active' },\n { value: MemberStatus.Terminated, text: 'Terminated' }\n ];\n\n selectedEnumValue: MemberStatus = MemberStatus.All; // Set the default selected value\n constructor(private _memberService: MemberService, private _route: ActivatedRoute,\n private _router: Router, private groupService: GroupService) {\n const monthNames = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ];\n const currentDate = new Date();\n const _this = this;\n \n \n this.columnDefs = [\n { hide: true, field: 'referenceId' },\n { hide: true, field: 'lastName' },\n {\n headerName: 'Id', field: 'externalId', suppressMovable: true, maxWidth: 120, sortable: true, filter: true\n },\n {\n headerName: 'Name', field: 'firstName', suppressMovable: true, maxWidth: 150, sortable: true, filter: true, \n valueFormatter: (params) => {\n if (params.data && params.data.firstName && params.data.lastName) {\n return params.data.firstName + \" \" + params.data.lastName;\n }\n return \"\"; // or handle appropriately for your case\n },\n },\n { headerName: 'Group Name', field: 'groupName', sortable: true, maxWidth: 300, filter: true },\n { headerName: 'Plan', field: 'planName', sortable: true, maxWidth: 100, filter: true },\n {\n headerName: 'Ques. Status', field: \"isHraCompleted\",\n suppressMovable: true, maxWidth: 150,\n cellRendererFramework: MemberNameRendererComponent,\n cellRendererParams: {\n btnText: \"View\",\n NoShowText: \"Add\",\n isNoShowTextClickable: true,\n clicked: function (params: any) {\n \n if (!!params.data.isHraCompleted) { \n _this._router.navigate([\n `admin/groups/${params.data.groupReferenceId}/members/${params.data.externalId}/view-hra`,\n ]);\n } else {\n _this._router.navigate([\n `/hra-form/${params.data.groupExternalId}/${params.data.externalId}`,\n ]);\n }\n },\n show: function (params: any) {\n return params.value;\n }\n }\n },\n {\n headerName: `${monthNames[currentDate.getMonth()]} Claim Status`,\n field: \"isClaimCompletedForCurrentMonth\",\n suppressMovable: true, maxWidth: 200,\n cellRendererFramework: MemberNameRendererComponent,\n cellRendererParams: {\n btnText: \"Add Claim\",\n NoShowText: \"Completed\",\n clicked: function (params: any) {\n _this._router.navigate([\n `admin/groups/${params.data.groupReferenceId}/members/${params.data.externalId}/add-claim`,\n ]);\n },\n show: function (params: any) {\n return !params.value;\n },\n },\n },\n\n { headerName: 'Member Status', field: 'memberStatus', maxWidth: 150, sortable: true, filter: true },\n {\n headerName: '',\n field: \"\", width: 200,\n suppressMovable: true,\n cellRendererFramework: MemberNameRendererComponent,\n cellRendererParams: {\n showViewBtn: true,\n showEnrollViewBtn: true,\n clicked: function (params: any) {\n _this._router.navigate([`/admin/members/${params.data.externalId}`]);\n }\n \n // clicked: function (params: any) {\n // _this._router.navigate([]).then(result => { window.open(`/admin/enroll/member/${params.data.externalId}`, '_blank'); });\n // },\n // show: function (params: any) {\n // return !params.value;\n // },\n },\n },\n\n ];\n this.loadData();\n }\n \n \n\n onGridReady(params: any) {\n this.gridApi = params.api;\n this.gridApi.setDomLayout(\"autoHeight\"); \n }\n\n abValueGetter(params: ValueGetterParams) {\n return params.data.firstName + \" \" + params.data.lastName;\n }\n\n onChange(value: any) {\n \n this.selectedEnumValue = value.target.value;\n\n this.loadData();\n }\n\n loadData() {\n this._memberService.getAllSearchMembers(this.selectedEnumValue)\n .subscribe((members:any) => {\n this.members = members;\n }); \n } \n\n onFilterTextBoxChanged() {\n this.gridApi.setQuickFilter(\n (document.getElementById('filter-text-box') as HTMLInputElement).value\n );\n }\n \n\n}\n","export default \".EnrollBtn {\\n background-color: #4CAF50;\\n color: white;\\n /* border-radius: 15px; */\\n font-size: 12px;\\n line-height: 18px;\\n border: 0px;\\n padding: 4px 12px; }\\n\\n.mr2 {\\n margin-right: 2px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9jb250cm9scy9BZG1pbi9tZW1iZXJzL21lbWJlci1saXN0L21lbWJlci1uYW1lLXJlbmRlcmVyL21lbWJlci1uYW1lLXJlbmRlcmVyLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx5QkFBeUI7RUFDekIsWUFBWTtFQUNaLHlCQUFBO0VBQ0EsZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsaUJBQWlCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb250cm9scy9BZG1pbi9tZW1iZXJzL21lbWJlci1saXN0L21lbWJlci1uYW1lLXJlbmRlcmVyL21lbWJlci1uYW1lLXJlbmRlcmVyLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuRW5yb2xsQnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRDQUY1MDtcbiAgY29sb3I6IHdoaXRlO1xuICAvKiBib3JkZXItcmFkaXVzOiAxNXB4OyAqL1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICBib3JkZXI6IDBweDtcbiAgcGFkZGluZzogNHB4IDEycHg7XG59XG5cbi5tcjIge1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbn1cbiJdfQ== */\"","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { IAfterGuiAttachedParams } from 'ag-grid-community';\nimport { CommonModule } from '@angular/common';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'member-name-renderer',\n templateUrl: './member-name-renderer.html',\n styleUrls: [\"./member-name-renderer.scss\"],\n})\nexport class MemberNameRendererComponent implements ICellRendererAngularComp {\n\n params: any;\n constructor(private router: Router) {\n\n }\n refresh(params: any): boolean {\n return true;\n }\n\n afterGuiAttached?(params?: IAfterGuiAttachedParams): void {\n\n }\n\n agInit(params: any): void {\n this.params = params;\n }\n\n clickHandler() {\n this.params.clicked(this.params);\n }\n OnRedirectToMemberView() {\n let memberId = this.params.data.externalId;\n this.router.navigate([`/admin/members/${memberId}`]);\n }\n OnRedirectToEnrollFormView() {\n let memberId = this.params.data.externalId;\n this.router.navigate([]).then(result => { window.open(`/admin/enroll/member/${memberId}`, '_blank'); });\n }\n\n show(): boolean {\n return typeof this.params.show !== \"undefined\" ? this.params.show(this.params) : true;\n }\n}\n","export default \".stepformmanage {\\n padding: 18px !important;\\n background-color: #ffffff !important;\\n box-shadow: 0 0.5px 3px rgba(2, 2, 2,0.15);\\n position: relative !important;\\n border-radius: 0px !important;\\n }\\n label{\\n font-weight: bold;\\n }\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udHJvbHMvQWRtaW4vbWVtYmVycy9tZW1iZXItdmlldy9tZW1iZXItdmlldy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksd0JBQXdCO0lBQ3hCLG9DQUFvQztJQUNwQywwQ0FBMEM7SUFDMUMsNkJBQTZCO0lBQzdCLDZCQUE2QjtFQUMvQjtFQUNBO0lBQ0UsaUJBQWlCO0VBQ25CIiwiZmlsZSI6InNyYy9hcHAvY29udHJvbHMvQWRtaW4vbWVtYmVycy9tZW1iZXItdmlldy9tZW1iZXItdmlldy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnN0ZXBmb3JtbWFuYWdlIHtcbiAgICBwYWRkaW5nOiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMC41cHggM3B4IHJnYmEoMiwgMiwgMiwwLjE1KTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgfVxuICBsYWJlbHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfSJdfQ== */\"","import { DatePipe, Location } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { first } from 'rxjs/operators';\nimport { Member } from 'src/app/models/member';\nimport { AlertifyService } from 'src/app/services/alertify.service';\nimport { MemberService } from 'src/app/services/member.service';\nimport { PlanService } from 'src/app/services/plan.service';\n\n@Component({\n selector: 'member-view',\n templateUrl: './member-view.component.html',\n styleUrls: ['./member-view.component.css']\n})\nexport class MemberViewComponent implements OnInit {\n plans: any;\n externalProvider: any[];\n showssn: boolean = false;\n memberSSN: string;\n memberId: string;\n memberForm: FormGroup;\n externalProviderForm: FormGroup;\n addDependentForm: FormGroup;\n memberData: Member = new Member();\n ipAddress: string;\n loading: boolean;\n IsNewRecord: boolean;\n submitted: boolean;\n showStartDate: boolean = false;\n startDate: Date;\n minStartDate: string;\n isStartDateValid: boolean = true;\n btnText: string = \"Add\";\n // for personal details\n minPrimaryAge: string;\n maxPrimaryAge: string;\n isMinPrimaryAgeValid: boolean = true;\n isMaxPrimaryAgeValid: boolean = true;\n city: string = '';\n state: string = '';\n enumStatuses = [\n { value: 'Pending', text: 'Pending' },\n { value: 'Active', text: 'Active' },\n { value: 'Terminated', text: 'Terminated' }\n ];\n\n enumType = [\n { value: 0, text: 'WHVC' }\n\n ];\n // for dependent\n dependentText: string = '';\n dependentId: number = 0;\n providerId: number = 0;\n minDependentAge: string;\n maxDependentAge: string;\n minChildAge: string;\n isMinDependentAgeValid: boolean = true;\n isMaxDependentAgeValid: boolean = true;\n noDependent = 'No Dependent Found';\n noProvider = 'No Provider Found';\n\n // for insurance\n addInsuranceForm: FormGroup;\n constructor(private _route: ActivatedRoute, private _router: Router,\n private _memberService: MemberService, private location: Location,\n private _planService: PlanService,\n private _fb: FormBuilder,\n private _alertify: AlertifyService) {\n this._route.params.subscribe(params => {\n this.memberId = params['memberid'];\n });\n // status activate start\n var minSD = new Date();\n minSD.setMonth(minSD.getMonth() - 1);\n var yr = minSD.getFullYear();\n var mn = (minSD.getMonth() + 1) > 9 ? (minSD.getMonth() + 1) : '0' + (minSD.getMonth() + 1);\n var dt = minSD.getDate();\n this.minStartDate = yr + '-' + mn + '-' + (dt < 10 ? '0' + dt : dt);\n //for personal\n var minPA = new Date();\n minPA.setFullYear(minPA.getFullYear() - 100);\n yr = minPA.getFullYear();\n mn = (minPA.getMonth() + 1) > 9 ? (minPA.getMonth() + 1) : '0' + (minPA.getMonth() + 1);\n dt = minPA.getDate();\n this.minPrimaryAge = yr + '-' + mn + '-' + (dt < 10 ? '0' + dt : dt);\n var maxPA = new Date();\n maxPA.setFullYear(maxPA.getFullYear() - 21);\n yr = maxPA.getFullYear();\n mn = (maxPA.getMonth() + 1) > 9 ? (maxPA.getMonth() + 1) : '0' + (maxPA.getMonth() + 1);\n dt = maxPA.getDate();\n this.maxPrimaryAge = yr + '-' + mn + '-' + (dt < 10 ? '0' + dt : dt);\n this.maxDependentAge = yr + '-' + mn + '-' + (dt < 10 ? '0' + dt : dt); // for dependent\n\n var minDA = new Date();\n yr = minDA.getFullYear();\n mn = (minDA.getMonth() + 1) > 9 ? (minDA.getMonth() + 1) : '0' + (minDA.getMonth() + 1);\n dt = minDA.getDate();\n this.minChildAge = yr + '-' + mn + '-' + (dt < 10 ? '0' + dt : dt);\n minDA.setFullYear(minDA.getFullYear() - 100);\n yr = minDA.getFullYear();\n mn = (minDA.getMonth() + 1) > 9 ? (minDA.getMonth() + 1) : '0' + (minDA.getMonth() + 1);\n dt = minDA.getDate();\n this.minDependentAge = yr + '-' + mn + '-' + (dt < 10 ? '0' + dt : dt);\n\n this.getPlanList();\n this.getMemberForm();\n this.getDependentForm();\n this.getInsuranceForm();\n this.getExternalProviderForm();\n\n }\n openEnrollForm() {\n this._router.navigate([`/admin/enroll/member/` + this.memberId]);\n }\n ngOnInit() {\n this.getMemberById();//for member details\n this.getMemberAddress(); // for address \n this.getMemberSignature(); // signature details\n this.getExternalProviderByMemberId();\n }\n getMemberById() {\n this._memberService.getMemberDetails(this.memberId).subscribe(member => { \n this.memberData = member;\n this.getMemberDependents(); // for dependents\n });\n }\n getMemberDependents() {\n this._memberService.getMemberDependents(this.memberId).subscribe((dependents: any) => {\n console.log('dependents: ' + dependents);\n this.memberData.dependents = dependents;\n }, error => {\n this.loading = false;\n this.memberData.dependents = [];\n });\n }\n getMemberAddress() {\n this._memberService.getMemberAddress(this.memberId).subscribe((address: any) => {\n this.memberData.addressLine1 = address.mailingAddress;\n this.memberData.addressLine2 = address.apartmentNumber;\n this.memberData.city = address.city;\n this.memberData.zipCode = address.zipCode;\n this.memberData.state = address.state;\n });\n }\n\n\n getMemberSignature() {\n this._memberService.getMemberSignature(this.memberId).subscribe((signature: any) => {\n if (signature) {\n this.memberData.browserName = signature.browserName;\n this.memberData.browserVersion = signature.browserVersion;\n this.ipAddress = signature.ipAddress;\n this.memberData.signatureDateTime = signature.signatureDateTime;\n this.memberData.signaturePath = \"data:image/png;base64,\" + signature.signaturePath;\n }\n });\n }\n updateStatus(status: any) { \n this.submitted = true;\n if (status == 1) {\n this.showStartDate = true;\n if (!this.startDate) {\n return;\n }\n this.loading = true;\n const updateMember: any = {\n externalId: this.memberId,\n startDate: this.startDate,\n memberStatus: status\n }\n this._memberService.updateMemberStatus(updateMember).subscribe(res => {\n const btn = document.getElementById('closeStatus')!;\n btn.click();\n this.memberData.memberStatus = res.memberStatus;\n this.loading = false;\n this.submitted = false;\n this.showStartDate = false;\n this.startDate = null;\n this._alertify.success(\"Status updated successfully\");\n \n\n }, error => {\n\n this.loading = false;\n this.submitted = false;\n this._alertify.error(error.error);\n });\n }\n else {\n this.loading = true;\n const updateMember: any = {\n externalId: this.memberId,\n startDate: this.startDate,\n memberStatus: status\n }\n this._memberService.updateMemberStatus(updateMember).subscribe(res => {\n this.memberData.memberStatus = res.memberStatus;\n this.loading = false;\n this.submitted = false;\n this.showStartDate = false;\n this.startDate = null;\n this._alertify.success(\"Status updated successfully\");\n\n }, error => {\n\n this.loading = false;\n this.submitted = false;\n this._alertify.error(error.error);\n });\n }\n\n }\n submitActivation() {\n debugger;\n this.submitted = true;\n if (new Date(this.startDate) > new Date(this.minStartDate)) {\n this.isStartDateValid = true;\n this.updateStatus(1);\n }\n else {\n this.isStartDateValid = false;\n };\n }\n back() {\n this.location.back();\n }\n\n onSubmit() {\n this.submitted = true;\n if (!this.isMaxPrimaryAgeValid || !this.isMinPrimaryAgeValid) {\n return;\n }\n\n this.memberForm.controls.city.setValue(this.city);\n this.memberForm.controls.state.setValue(this.state);\n if (!this.memberForm.valid) {\n return;\n }\n \n this.memberForm.controls.planId.setValue(this.memberForm.value.planId == null || this.memberForm.value.planId == \"\" ? 0 : Number(this.memberForm.value.planId));\n this.loading = true;\n this._memberService.updateMemberPersonalDetails(this.memberId, this.memberForm.value)\n .pipe(first())\n .subscribe(\n (response) => {\n\n this.memberData = response;\n this.memberId = response.externalId;\n this.getMemberAddress();\n this.loading = false;\n this.submitted = false;\n this._alertify.success(\"Personal detail updated successfully\");\n const button = document.getElementById('closeP')!;\n button.click();\n },\n (error) => {\n if (error.error instanceof Array) {\n this._alertify.error(error.error);\n error.error.map((err) => this._alertify.error(err.value));\n } else if (typeof error.error === \"string\") {\n this._alertify.error(error.error);\n } else {\n this._alertify.error(error.error);\n }\n this.loading = false;\n }\n );\n }\n\n showAllMembers() {\n this._router.navigate([`/admin/members`]);\n }\n showAllGroupMembers() {\n this._router.navigate([`/admin/group-view/` + this.memberData.groupReferenceId]);\n }\n getMemberForm() {\n this.memberForm = this._fb.group({\n id: [\"\"],\n firstName: [\"\", Validators.required],\n lastName: [\"\", Validators.required],\n addressLine1: [\"\", Validators.required],\n addressLine2: [\"\"],\n middleName: [\"\"],\n zipCode: [\"\", Validators.required],\n mobile: [\"\", Validators.required],\n secondaryMobile: [\"\"],\n email: [\"\", [Validators.required, Validators.email]],\n dob: [\"\", Validators.required],\n gender: [\"\", Validators.required],\n maritalStatus: [\"\", Validators.required],\n city: [\"\"],\n state: [\"\"],\n planId: [\"\"],\n memberStatus: [0],\n startDate: [\"\"]\n });\n }\n get f() {\n return this.memberForm.controls;\n }\n dobValidatePrimary() {\n const minDate = new Date();\n minDate.setFullYear(minDate.getFullYear() - 100);\n const maxDate = new Date();\n maxDate.setFullYear(maxDate.getFullYear() - 21);\n const dob = new Date(this.memberForm.controls.dob.value);\n if (dob < minDate) {\n this.isMaxPrimaryAgeValid = false;\n }\n else {\n this.isMaxPrimaryAgeValid = true;\n }\n\n if (dob > maxDate) {\n this.isMinPrimaryAgeValid = false;\n }\n else {\n this.isMinPrimaryAgeValid = true;\n }\n }\n setMemberForm() {\n this.f.id.setValue(this.memberData.id);\n this.f.firstName.setValue(this.memberData.firstName);\n this.f.lastName.setValue(this.memberData.lastName);\n this.f.addressLine1.setValue(this.memberData.addressLine1);\n this.f.addressLine2.setValue(this.memberData.addressLine2);\n this.f.middleName.setValue(this.memberData.middleName);\n this.f.zipCode.setValue(this.memberData.zipCode);\n this.f.mobile.setValue(this.memberData.mobile);\n this.f.secondaryMobile.setValue(this.memberData.secondaryMobile);\n this.f.email.setValue(this.memberData.email);\n this.f.dob.setValue(this.memberData.dob == null ? '' : this.memberData.dob.toString().substr(0, 10));\n this.dobValidatePrimary();\n this.f.gender.setValue(this.memberData.gender);\n this.f.maritalStatus.setValue(this.memberData.maritalStatus);\n this.f.planId.setValue(this.memberData.planId);\n this.f.startDate.setValue(this.memberData.startDate == null ? null : this.memberData.startDate.toString().substr(0, 10));\n this.f.memberStatus.setValue(this.memberData.memberStatus);\n this.f.city.setValue(this.memberData.city);\n this.f.state.setValue(this.memberData.state);\n }\n\n handleOnChange(event: any) {\n if (event.target.value.length >= 5) {\n let xml: string = '' + event.target.value + '';\n this._memberService.getCityStateByZip(xml).subscribe((res) => {\n if (res) {\n this.city = res.zipCode.city;\n this.state = res.zipCode.state;\n this.f.city.setValue(this.city);\n this.f.state.setValue(this.state);\n }\n });\n }\n }\n getDependentForm() {\n this.addDependentForm = this._fb.group({\n type: [\"\", Validators.required],\n firstName: [\"\", Validators.required],\n middleName: [\"\"],\n lastName: [\"\", Validators.required],\n dob: [\"\", Validators.required],\n gender: [\"\", Validators.required],\n });\n }\n\n get d() {\n return this.addDependentForm.controls;\n }\n\n dobValidate() {\n const minDate = new Date();\n const minAge = this.addDependentForm.controls.type.value == 'Child' ? 21 : 100\n minDate.setFullYear(minDate.getFullYear() - minAge);\n const maxDate = new Date();\n const maxAge = this.addDependentForm.controls.type.value == 'Child' ? 0 : 21\n maxDate.setFullYear(maxDate.getFullYear() - maxAge);\n const dob = new Date(this.addDependentForm.controls.dob.value);\n if (dob < minDate) {\n this.isMaxDependentAgeValid = false;\n }\n else {\n this.isMaxDependentAgeValid = true;\n }\n\n if (dob > maxDate) {\n this.isMinDependentAgeValid = false;\n }\n else {\n this.isMinDependentAgeValid = true;\n }\n }\n\n updateAgeValidation() {\n if (this.addDependentForm.controls.type.value == 'Spouse') {\n var minPA = new Date();\n minPA.setFullYear(minPA.getFullYear() - 100);\n var yr = minPA.getFullYear();\n var mn = (minPA.getMonth() + 1) > 9 ? (minPA.getMonth() + 1) : '0' + (minPA.getMonth() + 1);\n var dt = minPA.getDate();\n this.minDependentAge = yr + '-' + mn + '-' + (dt < 10 ? '0' + dt : dt);\n var maxPA = new Date();\n maxPA.setFullYear(maxPA.getFullYear() - 21);\n yr = maxPA.getFullYear();\n mn = (maxPA.getMonth() + 1) > 9 ? (maxPA.getMonth() + 1) : '0' + (maxPA.getMonth() + 1);\n dt = maxPA.getDate();\n this.maxDependentAge = yr + '-' + mn + '-' + (dt < 10 ? '0' + dt : dt);\n }\n else if (this.addDependentForm.controls.type.value == 'Child') {\n var maxPA = new Date();\n maxPA.setFullYear(maxPA.getFullYear() - 21);\n yr = maxPA.getFullYear();\n mn = (maxPA.getMonth() + 1) > 9 ? (maxPA.getMonth() + 1) : '0' + (maxPA.getMonth() + 1);\n dt = maxPA.getDate();\n this.minDependentAge = yr + '-' + mn + '-' + (dt < 10 ? '0' + dt : dt);\n this.maxDependentAge = this.minChildAge;\n }\n }\n editDependent(dependent: any) {\n if (dependent == null) {\n this.dependentId = 0;\n this.dependentText = \"Add\";\n this.getDependentForm();\n }\n else {\n this.dependentText = \"Update\";\n this.setDependentForm(dependent);\n }\n }\n removeDependent(dependent: any, index: number) {\n this._memberService.deleteDependent(dependent.dependentId).subscribe(res => {\n this.loading = false;\n this.submitted = false;\n this.getMemberDependents();\n this._alertify.success(\"Dependent removed successfully\");\n }, error => {\n if (error.error instanceof Array) {\n error.error.map((err) => this._alertify.error(err.value));\n } else if (typeof error.error === \"string\") {\n this._alertify.error(error.error);\n } else {\n this._alertify.error(error.error);\n }\n this.loading = false;\n })\n }\n setDependentForm(dependent: any) {\n this.dependentId = dependent.dependentId;\n this.d.firstName.setValue(dependent.firstName);\n this.d.lastName.setValue(dependent.lastName);\n this.d.type.setValue(dependent.type);\n this.d.middleName.setValue(dependent.middleName);\n this.d.dob.setValue(dependent.dob.toString().substr(0, 10));\n this.dobValidate();\n this.d.gender.setValue(dependent.gender);\n }\n\n\n\n onDependentSubmit() {\n this.submitted = true;\n if (!this.isMaxDependentAgeValid || !this.isMinDependentAgeValid) {\n return;\n }\n if (this.addDependentForm.valid) {\n if (this.dependentId == 0) {\n if (this.addDependentForm.controls.type.value == 'Spouse' && this.memberData.dependents != undefined && this.memberData.dependents.filter(x => x.type.toLowerCase() == 'spouse').length > 0) {\n this._alertify.error(\"You have already added Spouse\");\n }\n else {\n const member: any = {\n externalId: this.memberId,\n dependents: []\n };\n this._memberService.addEditDependent(this.dependentId, member, this.addDependentForm.value).subscribe(res => {\n this.loading = false;\n this.submitted = false;\n this._alertify.success(\"Dependent added successfully\");\n this.getMemberDependents();\n this.getDependentForm();\n const button = document.getElementById('closeD')!;\n button.click();\n }, error => {\n if (error.error instanceof Array) {\n error.error.map((err) => this._alertify.error(err.value));\n } else if (typeof error.error === \"string\") {\n this._alertify.error(error.error);\n } else {\n this._alertify.error(error.error);\n }\n this.loading = false;\n })\n }\n }\n else {\n const spouse = this.memberData.dependents.filter(x => x.type.toLowerCase() == 'spouse');\n if (spouse.length > 0) {\n if (this.addDependentForm.controls.type.value == 'Spouse' && spouse[0].dependentId != this.dependentId) {\n this._alertify.error(\"You have already added Spouse\");\n }\n else {\n const member: any = {\n externalId: this.memberId,\n dependents: []\n };\n this._memberService.addEditDependent(this.dependentId, member, this.addDependentForm.value).subscribe(res => {\n this.loading = false;\n this.submitted = false;\n this.getMemberDependents();\n this.getDependentForm();\n this._alertify.success(\"Dependent updated successfully\");\n const button = document.getElementById('closeD')!;\n button.click();\n }, error => {\n if (error.error instanceof Array) {\n error.error.map((err) => this._alertify.error(err.value));\n } else if (typeof error.error === \"string\") {\n this._alertify.error(error.error);\n } else {\n this._alertify.error(error.error);\n }\n this.loading = false;\n })\n }\n }\n else {\n const member: any = {\n ssn: this.memberId,\n dependents: []\n };\n this._memberService.addEditDependent(this.dependentId, member, this.addDependentForm.value).subscribe(res => {\n this.loading = false;\n this.submitted = false;\n this.getMemberDependents();\n this._alertify.success(\"Dependent updated successfully\");\n const button = document.getElementById('closeD')!;\n button.click();\n }, error => {\n if (error.error instanceof Array) {\n error.error.map((err) => this._alertify.error(err.value));\n } else if (typeof error.error === \"string\") {\n this._alertify.error(error.error);\n } else {\n this._alertify.error(error.error);\n }\n this.loading = false;\n })\n }\n }\n\n }\n }\n\n getInsuranceForm() {\n this.addInsuranceForm = this._fb.group({\n hasInsurance: [\"1\", Validators.required],\n healthInsuranceCompanyName: [\"\", Validators.required],\n insurancePolicyNo: [\"\", Validators.required],\n insuranceEffectiveDate: [\"\", Validators.required],\n insuranceEndDate: [\"\", Validators.required],\n insuranceAddress: [\"\", Validators.required]\n });\n }\n\n get i() {\n return this.addInsuranceForm.controls;\n }\n\n setInsuranceForm() {\n this.i.hasInsurance.setValue(this.memberData.insurancePolicyNo == null || this.memberData.insurancePolicyNo == '' ? \"2\" : \"1\");\n this.i.healthInsuranceCompanyName.setValue(this.memberData.healthInsuranceCompanyName);\n this.i.insurancePolicyNo.setValue(this.memberData.insurancePolicyNo);\n this.i.insuranceEffectiveDate.setValue(this.memberData.insuranceEffectiveDate == null || this.memberData.insuranceEffectiveDate == '' ? '' : this.memberData.insuranceEffectiveDate.substr(0, 10));\n this.i.insuranceEndDate.setValue(this.memberData.insuranceEndDate == null || this.memberData.insuranceEndDate == '' ? '' : this.memberData.insuranceEndDate.substr(0, 10));\n this.i.insuranceAddress.setValue(this.memberData.insuranceAddress);\n }\n setExternalProviderForm(provider: any) {\n this.providerId = provider.id;\n this.t.id.setValue(provider.id);\n this.t.type.setValue(provider.type);\n this.t.effectiveDate.setValue(provider.effectiveDate == null ? null : provider.effectiveDate.toString().substr(0, 10));\n this.t.terminationDate.setValue(provider.terminationDate == null ? null : provider.terminationDate.toString().substr(0, 10));\n\n }\n\n getExternalProviderForm() {\n this.externalProviderForm = this._fb.group({\n terminationDate: [null, Validators.required],\n type: [0, Validators.required],\n effectiveDate: [\"\", Validators.required],\n id: [0]\n });\n }\n get t() {\n return this.externalProviderForm.controls;\n }\n editProvider(provider: any) {\n\n if (provider == null) {\n this.providerId = 0;\n this.btnText = \"Add\";\n this.IsNewRecord = true;\n this.getExternalProviderForm();\n }\n else {\n this.btnText = \"Update\";\n this.IsNewRecord = false;\n this.setExternalProviderForm(provider);\n }\n }\n getExternalProviderByMemberId() {\n\n this._memberService.getMemberProvider(this.memberId).subscribe((provider: any) => {\n\n if (provider) {\n\n this.btnText = \"Edit\";\n this.IsNewRecord = false;\n this.externalProvider = provider;\n }\n else if (provider == null) {\n this.btnText = \"Add\";\n this.IsNewRecord = true;\n\n }\n });\n }\n onExternalProviderSubmit() {\n if (this.IsNewRecord) {\n this.externalProviderForm.get('terminationDate').clearValidators();\n this.externalProviderForm.get('terminationDate').updateValueAndValidity();\n }\n else {\n this.externalProviderForm.get('terminationDate').setValidators([Validators.required]);\n this.externalProviderForm.get('terminationDate').updateValueAndValidity();\n }\n this.submitted = true;\n if (!this.externalProviderForm.valid) {\n return;\n }\n \n if (!this.IsNewRecord && this.externalProviderForm.controls.terminationDate.value==null) {\n const button = document.getElementById('closeT')!;\n button.click();\n return;\n }\n this.loading = true;\n this._memberService.addUpdateMemberExternalProvider(this.memberId, this.externalProviderForm.value)\n .pipe(first()).subscribe((response) => {\n this.loading = false;\n this.submitted = false;\n if (!this.IsNewRecord) {\n this._alertify.success(\"Termination date updated successfully\");\n }\n else {\n this._alertify.success(\"External Provider detail added successfully\");\n }\n const button = document.getElementById('closeT')!;\n button.click();\n\n this.getExternalProviderByMemberId();\n\n },\n (error) => {\n if (error.error instanceof Array) {\n this._alertify.error(error.error);\n error.error.map((err) => this._alertify.error(err.value));\n } else if (typeof error.error === \"string\") {\n this._alertify.error(error.error);\n } else {\n this._alertify.error(error.error);\n }\n this.loading = false;\n }\n );\n }\n\n onInsuranceSubmit() {\n if (this.addInsuranceForm.controls.hasInsurance.value == 1) {\n this.addInsuranceForm.get('healthInsuranceCompanyName').setValidators([Validators.required]);\n this.addInsuranceForm.get('healthInsuranceCompanyName').updateValueAndValidity();\n this.addInsuranceForm.get('insurancePolicyNo').setValidators([Validators.required]);\n this.addInsuranceForm.get('insurancePolicyNo').updateValueAndValidity();\n this.addInsuranceForm.get('insuranceAddress').setValidators([Validators.required]);\n this.addInsuranceForm.get('insuranceAddress').updateValueAndValidity();\n this.addInsuranceForm.get('insuranceEffectiveDate').setValidators([Validators.required]);\n this.addInsuranceForm.get('insuranceEffectiveDate').updateValueAndValidity();\n this.addInsuranceForm.get('insuranceEndDate').setValidators([Validators.required]);\n this.addInsuranceForm.get('insuranceEndDate').updateValueAndValidity();\n } else {\n this.addInsuranceForm.get('healthInsuranceCompanyName').clearValidators();\n this.addInsuranceForm.get('healthInsuranceCompanyName').updateValueAndValidity();\n this.addInsuranceForm.get('insurancePolicyNo').clearValidators();\n this.addInsuranceForm.get('insurancePolicyNo').updateValueAndValidity();\n this.addInsuranceForm.get('insuranceAddress').clearValidators();\n this.addInsuranceForm.get('insuranceAddress').updateValueAndValidity();\n this.addInsuranceForm.get('insuranceEffectiveDate').clearValidators();\n this.addInsuranceForm.get('insuranceEffectiveDate').updateValueAndValidity();\n this.addInsuranceForm.get('insuranceEndDate').clearValidators();\n this.addInsuranceForm.get('insuranceEndDate').updateValueAndValidity();\n this.addInsuranceForm.controls.healthInsuranceCompanyName.setValue('');\n this.addInsuranceForm.controls.insurancePolicyNo.setValue('');\n this.addInsuranceForm.controls.insuranceAddress.setValue('');\n this.addInsuranceForm.controls.insuranceEffectiveDate.setValue(null);\n this.addInsuranceForm.controls.insuranceEndDate.setValue(null);\n }\n\n this.submitted = true;\n if (this.addInsuranceForm.invalid) {\n return;\n }\n this._memberService.updateMemberInsurance(this.memberId, this.addInsuranceForm.value).subscribe(res => {\n this.loading = false;\n this.submitted = false;\n this.getMemberById();\n this._alertify.success(\"Insurance updated successfully\");\n const button = document.getElementById('closeI')!;\n button.click();\n }, error => {\n if (error.error instanceof Array) {\n error.error.map((err) => this._alertify.error(err.value));\n } else if (typeof error.error === \"string\") {\n this._alertify.error(error.error);\n } else {\n this._alertify.error(error.error);\n }\n this.loading = false;\n })\n }\n showSSN() {\n this.showssn = !this.showssn;\n if (this.showssn) {\n this._memberService.getSSNByMemberId(this.memberId).subscribe(res => {\n this.memberSSN = res;\n })\n }\n }\n getPlanList() {\n this._planService.getAllPlans().subscribe(res => {\n this.plans = res;\n })\n }\n sendCertificate() {\n this._memberService.sendCertificateByAdmin(this.memberId).subscribe((res: any) => {\n this._alertify.success(res.message);\n }, error => {\n this._alertify.error(error.error);\n });\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL3BlcmlvZC9hZGQtcGVyaW9kL2FkZC1wZXJpb2QuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { first } from 'rxjs/operators';\nimport { AlertService } from 'src/app/services/alertService.service';\nimport { PeriodService } from 'src/app/services/period.service';\nimport { AlertifyService } from '../../../../services/alertify.service';\n\n@Component({\n selector: 'app-add-period',\n templateUrl: './add-period.component.html',\n styleUrls: ['./add-period.component.scss']\n})\nexport class AddPeriodComponent implements OnInit {\n\n periodForm: FormGroup;\n loading = false;\n submitted = false;\n errorMessage: string[] = [];\n\n get f() { return this.periodForm.controls; }\n\n constructor(private _formBuilder: FormBuilder, private _periodService: PeriodService,\n private _router: Router, private _alertify: AlertifyService) { }\n\n ngOnInit() {\n this.periodForm = this._formBuilder.group({\n id: 0,\n name: ['', Validators.required],\n });\n\n }\n\n onSubmit() {\n this.submitted = true;\n \n // reset alerts on submit\n this.errorMessage = [];\n \n // stop here if form is invalid\n if (this.periodForm.invalid) {\n return;\n }\n\n this.loading = true;\n this._periodService.addPeriod(this.periodForm.value)\n .pipe(first())\n .subscribe(\n () => {\n this.loading = false; \n this._alertify.success('Period added successfully.');\n this._router.navigate(['/admin/periods']);\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this.errorMessage.push(err.value));\n } else if (typeof error.error === 'string') {\n this.errorMessage.push(error.error);\n } else {\n this.errorMessage.push(error);\n }\n this.loading = false;\n });\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL3BlcmlvZC9wZXJpb2QtbGlzdC9wZXJpb2QtbGlzdC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\nimport { ColDef } from 'ag-grid-community';\nimport { Period } from '../../../../models/period';\nimport { PeriodService } from '../../../../services/period.service';\nimport { BtnCellRendererComponent } from '../../../../shared/controls/renderers/button-renderer/btn.renderer';\nimport { GroupNameRendererComponent } from '../../groups/group-list/group-name-renderer/group-name-renderer';\nimport { EditButtonRendererComponent } from '../renderButton/view-button-renderer.component';\n\n@Component({\n selector: 'app-period-list',\n templateUrl: './period-list.component.html',\n styleUrls: ['./period-list.component.scss']\n})\nexport class PeriodListComponent implements OnInit {\n periods: Period[];\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n columnDefs: ColDef[] = [\n { headerName: 'Id', field: 'id', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Name', field: 'name', suppressMovable: true, sortable: true, filter: true },\n //{ headerName: 'Action',field: 'id',cellRendererFramework: EditButtonRendererComponent },\n {\n headerName: '',\n field: \"id\",\n suppressMovable: true,\n cellRendererFramework: BtnCellRendererComponent,\n cellRendererParams: {\n ViewBtn: true\n },\n },\n ];\n\n constructor(private _periodService: PeriodService) { \n this._getAllPeriods();\n }\n \n private _gridApi;\n\n ngOnInit() {\n }\n \n onGridReady(params) {\n this._gridApi = params.api;\n }\n\n private _getAllPeriods() {\n this._periodService.getAllPeriods().subscribe(periods => {\n this.periods = periods;\n //this.renderPopup = true;\n this._gridApi.hideOverlay();\n if (this.periods.length == 0)\n this._gridApi.showNoRowsOverlay();\n });\n }\n\n public overlayNoRowsTemplate =\n 'No rows found';\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL3BlcmlvZC9wZXJpb2Qtc2NoZWR1bGUtcGxhbi9lZGl0LXBlcmlvZC1zY2hlZHVsZS1wbGFuL2VkaXQtcGVyaW9kLXNjaGVkdWxlLXBsYW4uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, Input, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { first } from 'rxjs/operators';\nimport { ValidatorsService } from '../../../../../helpers/validators.service';\nimport { AlertifyService } from '../../../../../services/alertify.service';\nimport { PeriodScheduleService } from '../../../../../services/periodSchedule.service';\n\n\n@Component({\n selector: 'app-edit-schedule-plan',\n templateUrl: './edit-period-schedule-plan.component.html',\n styleUrls: ['./edit-period-schedule-plan.component.scss']\n})\nexport class EditPeriodSchedulePlanComponent implements OnInit {\n\n periodScheduleForm: FormGroup;\n loading = false;\n submitted = false;\n errorMessage: string[] = [];\n @Input() periodScheduleId: string;\n get f() { return this.periodScheduleForm.controls; }\n\n constructor(private _formBuilder: FormBuilder, private _route: ActivatedRoute,\n private _periodScheduleService: PeriodScheduleService, private _router: Router,\n private _alertify: AlertifyService, private validatorsService: ValidatorsService) {\n this._route.params.subscribe(params => { this.periodScheduleId = params['id']; });\n }\n\n ngOnInit() {\n this.periodScheduleForm = this._formBuilder.group({\n id: 0,\n periodScheduleId: [0],\n premiumAmount: [0, [Validators.required, this.validatorsService.nonNegativeValidator()]],\n claimAmount: [0, [Validators.required, this.validatorsService.nonNegativeValidator()]],\n });\n \n if (!!this.periodScheduleId) {\n\n this._periodScheduleService.getSchedulePlanById(Number(this.periodScheduleId)).subscribe(schedule => {\n \n this.periodScheduleForm.patchValue(schedule);\n\n });\n\n }\n\n }\n\n onSubmit() {\n this.submitted = true;\n\n // reset alerts on submit\n this.errorMessage = [];\n\n // stop here if form is invalid\n if (this.periodScheduleForm.invalid) {\n return;\n }\n\n this.loading = true;\n\n this.periodScheduleForm.controls.premiumAmount.setValue(+this.periodScheduleForm.value.premiumAmount);\n this.periodScheduleForm.controls.claimAmount.setValue(+this.periodScheduleForm.value.claimAmount);\n if (!!this.periodScheduleId) {\n this._periodScheduleService.updatePeriodSchedulePlan(Number(this.periodScheduleId), this.periodScheduleForm.value)\n .pipe(first())\n .subscribe(\n () => {\n this.loading = false;\n this._alertify.success('Period schedule plan updated successfully.');\n this._router.navigate(['/admin/periodSchedule-plan/' + this.periodScheduleForm.value.periodScheduleId]);\n\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this.errorMessage.push(err.value));\n } else if (typeof error.error === 'string') {\n this.errorMessage.push(error.error);\n } else {\n this.errorMessage.push(error);\n }\n this.loading = false;\n });\n } else {\n\n }\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL3BlcmlvZC9wZXJpb2Qtc2NoZWR1bGUtcGxhbi9wZXJpb2Qtc2NoZWR1bGUtcGxhbi5jb21wb25lbnQuc2NzcyJ9 */\"","import { DatePipe } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ColDef } from 'ag-grid-community';\nimport { PeriodSchedulePlan } from '../../../../models/periodschedule';\nimport { PeriodScheduleService } from '../../../../services/periodSchedule.service';\nimport { BtnCellRendererComponent } from '../../../../shared/controls/renderers/button-renderer/btn.renderer';\n\n\n@Component({\n selector: 'app-period-schedulePlan',\n templateUrl: './period-schedule-plan.component.html',\n styleUrls: ['./period-schedule-plan.component.scss']\n})\n\nexport class PeriodSchedulePlanComponent implements OnInit {\n periodSchedulePlan: PeriodSchedulePlan[];\n \n periodScheduleId: number;\n columnDefs: ColDef[] = [];\n defaultColDef = {\n flex: 1,\n minWidth: 100,\n resizable: true,\n };\n constructor(private _periodScheduleService: PeriodScheduleService,\n private _route: ActivatedRoute) {\n \n this._route.params.subscribe(params => { this.periodScheduleId = params['id']; });\n \n \n const _this = this;\n this.columnDefs = [\n { headerName: 'Id', field: 'id', suppressMovable: true, sortable: true, filter: true }, \n {\n headerName: 'Plan Name', field: 'planName', suppressMovable: true, sortable: true, filter: true\n },\n { headerName: 'Claim Amount', field: 'claimAmount', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Premium Amount', field: 'premiumAmount', suppressMovable: true, sortable: true, filter: true }, {\n headerName: '',\n field: \"id\",\n suppressMovable: true,\n cellRendererFramework: BtnCellRendererComponent,\n cellRendererParams: {\n showEditPeriodSchedule: true\n },\n }];\n\n \n }\n private _gridApi;\n\n ngOnInit() {\n this.getPeriodById(this.periodScheduleId);\n }\n\n onGridReady(params) {\n this._gridApi = params.api;\n }\n\n \n getPeriodById(periodScheduleId: number) {\n \n this._periodScheduleService.getAllPeriodSchedulePlanById(Number(periodScheduleId)).subscribe(data => { \n this.periodSchedulePlan = data;\n });\n }\n \n\n public overlayNoRowsTemplate =\n 'No rows found';\n\n}\n\n","import { Component } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'app-update-schedule-plan',\n templateUrl: './update-period-schedule-plan.component.html'\n})\nexport class UpdatePeriodSchedulePlanComponent {\n selectedId: string;\n constructor(private _route: ActivatedRoute, private _router: Router) {\n this._route.params.subscribe(params => { this.selectedId = params['id']; });\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL3BlcmlvZC9wZXJpb2Qtc2NoZWR1bGUvZWRpdC1wZXJpb2Qtc2NoZWR1bGUvZWRpdC1wZXJpb2Qtc2NoZWR1bGUuY29tcG9uZW50LnNjc3MifQ== */\"","import { DatePipe } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { first } from 'rxjs/operators';\nimport { AlertService } from 'src/app/services/alertService.service';\nimport { FormatDate } from '../../../../../helpers/format';\nimport { ValidatorsService } from '../../../../../helpers/validators.service';\nimport { AlertifyService } from '../../../../../services/alertify.service';\nimport { PeriodScheduleService } from '../../../../../services/periodSchedule.service';\n\n\n@Component({\n selector: 'app-edit-period',\n templateUrl: './edit-period-schedule.component.html',\n styleUrls: ['./edit-period-schedule.component.scss']\n})\nexport class EditPeriodScheduleComponent implements OnInit {\n\n periodScheduleForm: FormGroup;\n loading = false;\n submitted = false;\n errorMessage: string[] = [];\n @Input() periodScheduleId: string;\n get f() { return this.periodScheduleForm.controls; }\n\n constructor(private _formBuilder: FormBuilder, private _route: ActivatedRoute, private _datepipe: DatePipe,\n private _periodScheduleService: PeriodScheduleService, private _router: Router,\n private _alertify: AlertifyService, private validatorsService: ValidatorsService) {\n this._route.params.subscribe(params => { this.periodScheduleId = params['id']; });\n }\n\n ngOnInit() {\n this.periodScheduleForm = this._formBuilder.group({\n id: 0,\n periodId: [''],\n startDate: ['', Validators.required],\n endDate: ['', Validators.required],\n invoiceDate: ['', Validators.required],\n invoiceDueDate: ['', Validators.required],\n claimPaymentDate: ['', Validators.required],\n claimStartDate: ['', Validators.required],\n claimEndDate: ['', Validators.required],\n premiumPercent: [0, [Validators.required, this.validatorsService.nonNegativeValidator()]],\n claimPercent: [0, [Validators.required, this.validatorsService.nonNegativeValidator()]],\n });\n if (!!this.periodScheduleId) {\n \n this._periodScheduleService.getScheduleById(this.periodScheduleId).subscribe(schedule => {\n \n this.periodScheduleForm.patchValue(schedule);\n this.periodScheduleForm.controls[\"startDate\"].patchValue(\n this._getDate(schedule.startDate)\n );\n this.periodScheduleForm.controls[\"endDate\"].patchValue(\n this._getDate(schedule.endDate)\n );\n this.periodScheduleForm.controls[\"invoiceDate\"].patchValue(\n this._getDate(schedule.invoiceDate)\n );\n this.periodScheduleForm.controls[\"invoiceDueDate\"].patchValue(\n this._getDate(schedule.invoiceDueDate)\n );\n\n this.periodScheduleForm.controls[\"claimPaymentDate\"].patchValue(\n this._getDate(schedule.claimPaymentDate)\n );\n this.periodScheduleForm.controls[\"claimStartDate\"].patchValue(\n this._getDate(schedule.claimStartDate)\n );\n this.periodScheduleForm.controls[\"claimEndDate\"].patchValue(\n this._getDate(schedule.claimEndDate)\n );\n });\n\n }\n\n }\n \n onSubmit() {\n this.submitted = true;\n \n // reset alerts on submit\n this.errorMessage = [];\n \n // stop here if form is invalid\n if (this.periodScheduleForm.invalid) {\n return;\n }\n\n this.loading = true;\n //this.periodScheduleForm.controls.periodId.setValue(+this.periodScheduleForm.value.periodId);\n this.periodScheduleForm.controls.premiumPercent.setValue(+this.periodScheduleForm.value.premiumPercent);\n this.periodScheduleForm.controls.claimPercent.setValue(+this.periodScheduleForm.value.claimPercent);\n if (!!this.periodScheduleId) {\n this._periodScheduleService.updatePeriodSchedule(this.periodScheduleId, this.periodScheduleForm.value)\n .pipe(first())\n .subscribe(\n () => {\n this.loading = false;\n this._alertify.success('Period Schedule updated successfully.');\n this._router.navigate(['/admin/period/' + this.periodScheduleForm.value.periodId +'/period-schedule']);\n \n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this.errorMessage.push(err.value));\n } else if (typeof error.error === 'string') {\n this.errorMessage.push(error.error);\n } else {\n this.errorMessage.push(error);\n }\n this.loading = false;\n });\n } else {\n \n }\n }\n private _getDate(date: Date): string {\n return this._datepipe.transform(date, \"yyyy-MM-dd\");\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL3BlcmlvZC9wZXJpb2Qtc2NoZWR1bGUvcGVyaW9kLXNjaGVkdWxlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { DatePipe } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ColDef } from 'ag-grid-community';\nimport { FormatDate } from '../../../../helpers/format';\nimport { Period } from '../../../../models/period';\nimport { PeriodSchedule } from '../../../../models/periodschedule';\nimport { PeriodService } from '../../../../services/period.service';\nimport { PeriodScheduleService } from '../../../../services/periodSchedule.service';\nimport { BtnCellRendererComponent } from '../../../../shared/controls/renderers/button-renderer/btn.renderer';\n\n\n@Component({\n selector: 'app-period-schedule',\n templateUrl: './period-schedule.component.html',\n styleUrls: ['./period-schedule.component.scss']\n})\n\nexport class PeriodScheduleComponent implements OnInit {\n periodSchedule: PeriodSchedule[];\n period: Period;\n periodId: string;\n columnDefs: ColDef[] = [];\n defaultColDef = {\n flex: 1,\n minWidth: 100,\n resizable: true,\n };\n constructor(private _periodScheduleService: PeriodScheduleService,\n private _date: FormatDate, private _periodService: PeriodService,\n private _route: ActivatedRoute, private _router: Router) {\n \n this._route.params.subscribe(params => { this.periodId = params['periodid']; });\n \n \n const _this = this;\n this.columnDefs = [\n { headerName: 'Id', field: 'id', suppressMovable: true, sortable: true, filter: true },\n {\n headerName: 'Start Date', field: 'startDate', suppressMovable: true, sortable: true, filter: true, valueFormatter: function (params) {\n return !!params.value ? _date.formatDate(params.value.substr(0, 10)) : '';\n }\n },\n {\n headerName: 'End Date', field: 'endDate', suppressMovable: true, sortable: true, filter: true, valueFormatter: function (params) {\n return !!params.value ? _date.formatDate(params.value.substr(0, 10)) : '';\n }\n },\n { headerName: 'Claim Percent', field: 'claimPercent', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Premium Percent', field: 'premiumPercent', suppressMovable: true, sortable: true, filter: true },];\n\n this.columnDefs.push({\n headerName: \"\",\n field: \"id\",\n suppressMovable: true,\n cellRendererFramework: BtnCellRendererComponent,\n cellRendererParams: {\n showPeriodSchedule:true,\n showEditBtn: true,\n clicked: function (isDelete: boolean, id: any) {\n if (isDelete) {\n // _this.deletePlan(id);\n } else {\n \n _this._router.navigate([`/admin/periodschedule/${id}`]);\n\n }\n },\n },\n });\n }\n private _gridApi;\n\n ngOnInit() {\n this._getAllSchedule(this.periodId);\n this.getPeriodById(this.periodId);\n }\n\n onGridReady(params) {\n this._gridApi = params.api;\n }\n\n showAllBrokers() {\n this._getAllSchedule(this.periodId);\n //this.addingPeriod = false;\n }\n getPeriodById(periodId:string) {\n this._periodService.getPeriodById(periodId).subscribe(data => { \n this.period = data;\n });\n }\n private _getAllSchedule(periodid) {\n \n this._periodScheduleService.getPeriodScheduleById(periodid).subscribe(data => { \n this.periodSchedule = data;\n if (this.periodSchedule.length == 0)\n this._gridApi.showNoRowsOverlay();\n });\n }\n\n public overlayNoRowsTemplate =\n 'No rows found';\n\n}\n\n","import { Component } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'app-update-period-schedule',\n templateUrl: './update-period-schedule.component.html'\n})\nexport class UpdatePeriodScheduleComponent {\n selectedId: string;\n constructor(private _route: ActivatedRoute, private _router: Router) {\n this._route.params.subscribe(params => { this.selectedId = params['id']; });\n }\n}\n","// edit-button-renderer.component.ts\nimport { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { PeriodScheduleComponent } from '../period-schedule/period-schedule.component';\n\n@Component({\n selector: 'app-edit-button-renderer',\n template: ``,\n})\nexport class EditButtonRendererComponent implements ICellRendererAngularComp {\n private params: any;\n\n constructor(private modalService: NgbModal) { }\n\n agInit(params: any): void {\n this.params = params;\n }\n\n refresh(): boolean {\n return false;\n }\n \n openScheduleModal(): void {\n \n const periodId = this.params.value;\n // Call the modal service to open the modal\n this.modalService.open(PeriodScheduleComponent, { size: 'xl' }).componentInstance.periodId = periodId;\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { FormBuilder, Validators, FormGroup } from '@angular/forms';\nimport { first } from 'rxjs/operators';\nimport { PlanService } from 'src/app/services/plan.service';\nimport { ValidatorsService } from '../../../../helpers/validators.service';\n\n@Component({\n selector: 'app-add-plan',\n templateUrl: './add-edit.component.html'\n})\nexport class AddEditPlanComponent {\n\n @Input()\n planId: number;\n\n planForm: FormGroup;\n loading = false;\n submitted = false;\n successMessage = '';\n errorMessage: string[] = [];\n\n constructor(\n private formBuilder: FormBuilder, private validatorsService: ValidatorsService,\n private planService: PlanService) { }\n\n ngOnInit() {\n // referenceId: string;\n this.planForm = this.formBuilder.group({\n name: ['', Validators.required],\n monthlyPremiumAmount: [0, [Validators.required, this.validatorsService.nonNegativeValidator()]],\n monthlyClaimAmount: [0, [Validators.required, this.validatorsService.nonNegativeValidator()]],\n description: [''],\n isActive: [false],\n isEligibleMedicalReceipts: [false]\n });\n\n if (!!this.planId) {\n this.planService.getPlanById(this.planId).subscribe(video => {\n this.planForm.patchValue(video);\n });\n }\n }\n\n // convenience getter for easy access to form fields\n get f() { return this.planForm.controls; }\n \n onSubmit() {\n this.submitted = true;\n\n // reset alerts on submit\n this.errorMessage = [];\n this.successMessage = '';\n\n // stop here if form is invalid\n if (this.planForm.invalid) {\n return;\n }\n\n this.loading = true;\n const planId = this.planId;\n if (!!planId) {\n this.planService.updatePlan(planId, this.planForm.value)\n .pipe(first())\n .subscribe(\n () => {\n // return to list\n this.successMessage = 'Plan updated successfully.';\n this.loading = false;\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this.errorMessage.push(err.value));\n } else if (typeof error.error === 'string') {\n this.errorMessage.push(error.error);\n } else {\n this.errorMessage.push(error);\n }\n this.loading = false;\n });\n } else {\n this.planService.addPlan(this.planForm.value)\n .pipe(first())\n .subscribe(\n (plan) => {\n // return to list\n this.successMessage = 'Plan added successfully.';\n this.loading = false;\n this.planId = plan.id;\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this.errorMessage.push(err.value));\n } else if (typeof error.error === 'string') {\n this.errorMessage.push(error.error);\n } else {\n this.errorMessage.push(error);\n }\n this.loading = false;\n });\n }\n }\n}\n\n\n","export default \".planname {\\n font-size: 18px;\\n font-weight: bold;\\n margin: 10px 0px;\\n text-align: center;\\n height: 68px; }\\n\\n.img-fluid {\\n border-radius: 8px 8px 0px 0px !important; }\\n\\n.plantag {\\n margin: 2px 0px;\\n font-size: 14px;\\n text-align: center;\\n webkit-line-clamp: 2;\\n -webkit-box-orient: vertical;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n display: -webkit-box;\\n height: 70px; }\\n\\n.btnparchase {\\n margin-bottom: 18px; }\\n\\n.cardplan {\\n margin-bottom: 20px;\\n background-color: #fff;\\n border: 1px solid transparent;\\n border-radius: 14px;\\n border: 1px solid #d7d7d7;\\n box-shadow: #919eab4d 0 0 2px, #919eab1f 0 12px 24px -4px; }\\n\\n.cardplan:hover {\\n box-shadow: 0 10px 50px -5px rgba(51, 71, 91, 0.12);\\n transform: scale(1.03);\\n cursor: pointer; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9jb250cm9scy9BZG1pbi9wbGFucy9wbGFuLWxpc3QvcGxhbi1saXN0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLFlBQVksRUFBQTs7QUFHaEI7RUFBVyx5Q0FBd0MsRUFBQTs7QUFFbkQ7RUFDSSxlQUFlO0VBQ2YsZUFBZTtFQUNmLGtCQUFrQjtFQUNsQixvQkFBb0I7RUFDcEIsNEJBQTRCO0VBQzVCLGdCQUFnQjtFQUNoQix1QkFBdUI7RUFDdkIsY0FBYztFQUNkLG9CQUFvQjtFQUNwQixZQUFZLEVBQUE7O0FBSWhCO0VBQ0ksbUJBQW1CLEVBQUE7O0FBR3ZCO0VBQ0ksbUJBQW1CO0VBQ25CLHNCQUFzQjtFQUN0Qiw2QkFBNkI7RUFDN0IsbUJBQW1CO0VBQ25CLHlCQUF5QjtFQUV6Qix5REFBeUQsRUFBQTs7QUFRN0Q7RUFDSSxtREFBb0Q7RUFFcEQsc0JBQXVCO0VBQ3ZCLGVBQWUsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL3BsYW5zL3BsYW4tbGlzdC9wbGFuLWxpc3QuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucGxhbm5hbWUge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBtYXJnaW46IDEwcHggMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDY4cHg7XG59XG5cbi5pbWctZmx1aWR7Ym9yZGVyLXJhZGl1czogOHB4IDhweCAwcHggMHB4IWltcG9ydGFudDt9XG5cbi5wbGFudGFnIHtcbiAgICBtYXJnaW46IDJweCAwcHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgaGVpZ2h0OiA3MHB4O1xufVxuXG5cbi5idG5wYXJjaGFzZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbn1cblxuLmNhcmRwbGFuIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDdkN2Q3O1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgLjA1KTtcbiAgICBib3gtc2hhZG93OiAjOTE5ZWFiNGQgMCAwIDJweCwgIzkxOWVhYjFmIDAgMTJweCAyNHB4IC00cHg7XG59XG5cblxuXG5cblxuXG4uY2FyZHBsYW46aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCA1MHB4IC01cHggcmdiYSg1MSwgNzEsIDkxLCAgMC4xMik7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMDMwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDMwKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59Il19 */\"","import { Component } from '@angular/core';\nimport { PlanService } from 'src/app/services/plan.service';\nimport { Plan } from 'src/app/models/plan';\nimport { ColDef } from 'ag-grid-community';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BtnCellRendererComponent } from 'src/app/shared/controls/renderers/button-renderer/btn.renderer';\n\n@Component({\n selector: \"app-plan\",\n templateUrl: \"./plan-list.component.html\",\n styleUrls: [\"./plan-list.component.scss\"],\n})\nexport class PlanListComponent {\n selectedPlanId: number;\n addingPlan = false;\n signatureData: string;\n plans: Plan[];\n columnDefs: ColDef[] = [];\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n\n private gridApi;\n\n constructor(\n private _planService: PlanService,\n private _route: ActivatedRoute,\n private _router: Router,\n \n ) {\n this._route.params.subscribe((params) => {\n this.selectedPlanId = params[\"id\"];\n });\n if (this.selectedPlanId) {\n this.addingPlan = true;\n }\n const _this = this;\n _this.getAllPlans();\n\n this.columnDefs = [\n { headerName: \"Name\", field: \"name\", suppressMovable: true, sortable: true, filter: true },\n {\n headerName: \"Monthly Premium\",\n field: \"monthlyPremiumAmount\",\n suppressMovable: true,\n sortable: true,\n filter: true,\n valueFormatter: (params) => \"$\" + params.data.monthlyPremiumAmount,\n },\n {\n headerName: \"Monthly Claim\",\n field: \"monthlyClaimAmount\",\n suppressMovable: true,\n sortable: true,\n filter: true,\n valueFormatter: (params) => \"$\" + params.data.monthlyClaimAmount,\n },\n {\n headerName: \"Description\",\n field: \"description\",\n suppressMovable: true,\n sortable: true,\n filter: true,\n },\n ];\n\n this.columnDefs.push({\n headerName: \"\",\n field: \"id\",\n suppressMovable: true,\n cellRendererFramework: BtnCellRendererComponent,\n cellRendererParams: {\n //showDeleteBtn: true,\n showEditBtn: true,\n clicked: function (isDelete: boolean, id: any) {\n if (isDelete) {\n _this.deletePlan(id);\n } else {\n // console.log(_this._router);\n // console.log(id);\n _this._router.navigate([`/admin/plans/${id}`]);\n }\n },\n },\n });\n }\n\n onGridReady(params) {\n this.gridApi = params.api;\n this.gridApi.setDomLayout(\"autoHeight\");\n }\n\n getAllPlans() {\n this._planService.getAllPlans().subscribe((plans) => {\n this.plans = plans;\n // console.log('this.plans: ', this.plans);\n });\n }\n\n deletePlan(id: number) {\n this._planService.deletePlan(id).subscribe((x) => {\n this.plans = this.plans.filter((g) => g.id !== id);\n this.gridApi.setRowData(this.plans);\n });\n }\n\n addPlan() {\n this.addingPlan = true;\n }\n\n addUpdatePlan(planId: string) {\n this._router.navigate([`admin/addplan/${planId}`]);\n }\n\n // Route Static-- groupId/memberId/planId\n AddUpdateEmployee(planId: string) {\n this._router.navigate(['admin/enrollment'], {\n queryParams: {\n groupid: 1,\n id: planId\n }\n });\n\n // this._router.navigate([`admin/enrollment/1/${planId}`]);\n }\n\n showAllPlans() {\n this.getAllPlans();\n this.addingPlan = false;\n }\n}\n","import { Component } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'app-update-plan',\n templateUrl: './update-plan.component.html'\n})\nexport class UpdatePlanComponent {\n selectedPlanId: string;\n constructor(private _route: ActivatedRoute, private _router: Router) {\n this._route.params.subscribe(params => { this.selectedPlanId = params['id']; });\n }\n\n showAllPlans() {\n this._router.navigate(['/admin/plans']);\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { FormBuilder, Validators, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { first } from 'rxjs/operators';\nimport { AlertifyService } from 'src/app/services/alertify.service';\nimport { VideoService } from 'src/app/services/video.service';\nimport { ValidatorsService } from '../../../../helpers/validators.service';\n\n@Component({\n selector: 'app-add-video',\n templateUrl: './add-edit.component.html'\n})\nexport class AddEditVideoComponent implements OnInit {\n\n @Input()\n videoId: string;\n\n videoForm: FormGroup;\n loading = false;\n submitted = false;\n successMessage = '';\n errorMessage: string[] = [];\n\n constructor(\n private formBuilder: FormBuilder,\n private videoService: VideoService,\n private alertify: AlertifyService, private validatorsService: ValidatorsService,\n private router: Router) { }\n\n ngOnInit() {\n // referenceId: string;\n this.videoForm = this.formBuilder.group({\n url: ['', Validators.required],\n title: ['', Validators.required],\n thumbnail: ['', Validators.required],\n durationInSeconds: ['', [Validators.required, this.validatorsService.nonNegativeValidator()]],\n code: ['', Validators.required],\n description: ['', Validators.required],\n extraInfo: [''],\n videoCategories: ['']\n });\n\n if (!!this.videoId) {\n this.videoService.getVideoById(this.videoId).subscribe(video => {\n this.videoForm.patchValue(video);\n });\n }\n }\n \n // convenience getter for easy access to form fields\n get f() { return this.videoForm.controls; }\n\n onSubmit() {\n this.submitted = true;\n\n // reset alerts on submit\n this.errorMessage = [];\n this.successMessage = '';\n\n // stop here if form is invalid\n if (this.videoForm.invalid) {\n return;\n }\n\n this.loading = true;\n const videoRefrenceId = this.videoId;\n console.log(this.videoForm.value);\n if (!!videoRefrenceId) {\n this.videoService.updateVideo(videoRefrenceId, this.videoForm.value)\n .pipe(first())\n .subscribe(\n () => {\n // return to list\n //this.successMessage = 'Video updated successfully.';\n this.loading = false;\n this.alertify.success('Video updated successfully.');\n this.router.navigate(['/admin/videos']);\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this.alertify.error(err.value)); //this.addUpdateError.push\n } else if (typeof error.error === 'string') {\n //this.addUpdateError.push(error.error);\n this.alertify.error(error.error)\n } else {\n //this.addUpdateError.push(error);\n this.alertify.error(error);\n }\n this.loading = false;\n });\n } else {\n this.videoService.addVideo(this.videoForm.value)\n .pipe(first())\n .subscribe(\n (video) => {\n // return to list\n //this.successMessage = 'Video added successfully.';\n this.loading = false;\n this.videoId = video.referenceId;\n this.alertify.success('Video added successfully.');\n window.location.reload();\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this.alertify.error(err.value)); //this.addUpdateError.push\n } else if (typeof error.error === 'string') {\n //this.addUpdateError.push(error.error);\n this.alertify.error(error.error)\n } else {\n //this.addUpdateError.push(error);\n this.alertify.error(error);\n }\n this.loading = false;\n });\n }\n }\n}\n\n\n","import { Component } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'app-update-video',\n templateUrl: './update-video.component.html'\n})\nexport class UpdateVideoComponent {\n selectedVideoId: string;\n constructor(private _route: ActivatedRoute, private _router: Router) {\n this._route.params.subscribe(params => { this.selectedVideoId = params['videoId']; });\n }\n\n showAllVideos() {\n this._router.navigate(['/admin/videos']);\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0FkbWluL3ZpZGVvcy92aWRlby1saXN0L3ZpZGVvLWxpc3QuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { VideoService } from 'src/app/services/video.service';\nimport { ColDef } from 'ag-grid-community';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Videos } from 'src/app/models/videos';\nimport { BtnCellRendererComponent } from 'src/app/shared/controls/renderers/button-renderer/btn.renderer';\n\n@Component({\n selector: 'app-videos',\n templateUrl: './video-list.component.html',\n styleUrls: ['./video-list.component.scss']\n})\nexport class VideoListComponent implements OnInit {\n selectedVideoId: string;\n addingVideo = false;\n videos: Videos[];\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n\n columnDefs: ColDef[] = [\n { hide: true, field: 'referenceId' },\n { headerName: 'Url', field: 'url', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Title', field: 'title', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Description', field: 'description', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Extra Info', field: 'extraInfo', suppressMovable: true, sortable: true, filter: true }\n ];\n\n private gridApi;\n\n constructor(private _videoService: VideoService, private _route: ActivatedRoute, private _router: Router) {\n this._route.params.subscribe(params => { this.selectedVideoId = params['videoId']; });\n if (this.selectedVideoId) {\n this.addingVideo = true;\n }\n }\n ngOnInit() {\n const _this = this;\n this.getAllVideos(); \n this.columnDefs.push({\n headerName: '',\n field: 'referenceId',\n cellRendererFramework: BtnCellRendererComponent,\n cellRendererParams: {\n // showDeleteBtn: true,\n showEditBtn: true,\n clicked: function (isDelete: boolean, referenceId: any) {\n if (isDelete) {\n _this.deleteVideo(referenceId);\n } else {\n _this._router.navigate([`/admin/videos/${referenceId}`]);\n }\n\n }\n }\n });\n }\n onGridReady(params) {\n this.gridApi = params.api;\n this.gridApi.setDomLayout(\"autoHeight\");\n }\n\n getAllVideos() {\n this._videoService.getAllVideos().subscribe(videos => {\n this.videos = videos;\n });\n }\n\n deleteVideo(referenceId: string) {\n this._videoService.deleteVideo(referenceId).subscribe(x => {\n this.videos = this.videos.filter(g => g.referenceId !== referenceId);\n this.gridApi.setRowData(this.videos);\n });\n }\n\n addVideo() {\n this.addingVideo = true;\n }\n\n showAllVideos(showVideo: boolean) {\n this.getAllVideos();\n this.addingVideo = false;\n }\n}\n","import { Component } from '@angular/core';\nimport { WellnessProgressService } from 'src/app/services/wellnessProgressService.service';\nimport { WellnessProgress } from 'src/app/models/wellnessProgress';\nimport { ColDef } from 'ag-grid-community';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BtnCellRendererComponent } from 'src/app/shared/controls/renderers/button-renderer/btn.renderer';\nimport { saveAs as importedSaveAs } from \"file-saver\";\nimport { DatePipe } from '@angular/common';\nimport { FormatDate } from '../../../../helpers/format';\n\n@Component({\n selector: 'app-medicalreceipts',\n templateUrl: './medicalreceipt-list.component.html'\n})\nexport class MedicalReceiptListComponent {\n wellnessProgresses: WellnessProgress[];\n columnDefs: ColDef[] = [];\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n\n filterParams = {\n comparator: function (filterLocalDateAtMidnight, cellValue) {\n if (cellValue == null) { return -1; }\n const dateAsString = cellValue.substr(0, 10);\n const dateParts = dateAsString.split('-');\n const cellDate = new Date(\n Number(dateParts[0]),\n Number(dateParts[1]) - 1,\n Number(dateParts[2])\n );\n if (filterLocalDateAtMidnight.getTime() === cellDate.getTime()) {\n return 0;\n }\n if (cellDate < filterLocalDateAtMidnight) {\n return -1;\n }\n if (cellDate > filterLocalDateAtMidnight) {\n return 1;\n }\n },\n browserDatePicker: true,\n };\n\n private gridApi;\n\n constructor(private _wellnessProgressService: WellnessProgressService, private _date: FormatDate, private _route: ActivatedRoute, private _router: Router) {\n const _this = this;\n this.getAllWellnessProgressForMedicalReceiptType();\n\n this.columnDefs = [\n { hide: true, field: 'id' },\n { headerName: 'Member Id', field: 'externalMemberId', suppressMovable:true, sortable: true, filter: true },\n { headerName: 'First Name', field: 'memberFirstName', suppressMovable:true, sortable: true, filter: true },\n { headerName: 'Last Name', field: 'memberLastName', suppressMovable: true, sortable: true, filter: true },\n {\n headerName: 'Service Date', field: 'serviceDate', suppressMovable: true, sortable: true, filter: 'agDateColumnFilter',\n filterParams: this.filterParams, valueFormatter: function (params) {\n return !!params.value ? _date.formatDate(params.value.substr(0, 10)) : \"\";\n },\n },\n { headerName: 'Provider Name', field: 'providerName', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Benefit Type', field: 'indemnityBenefitName', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Amount', field: 'amount', suppressMovable: true, sortable: true, filter: true, valueFormatter: params => \"$\" + params.data.amount },\n {\n headerName: '',\n field: 'id',\n suppressMovable: true,\n cellRendererFramework: BtnCellRendererComponent,\n cellRendererParams: {\n showDownloadBtn: true,\n showEditBtn: true,\n clicked: function (isDelete: boolean, id: any, isDownload: boolean) {\n if (isDownload) {\n _this._wellnessProgressService.downloadMedicalReceipt(id).subscribe(blob => {\n var receipt = _this.wellnessProgresses.filter(wellness => wellness.id === id);\n let file = _this.makeid(5);\n if (receipt != null && receipt.length > 0) {\n file = receipt[0].friendlyFileName;\n }\n\n importedSaveAs(blob, file);\n });\n } else {\n _this._router.navigate([`/admin/medicalreceipts/${id}`]);\n }\n }\n },\n }\n ];\n }\n\n onGridReady(params) {\n this.gridApi = params.api;\n this.gridApi.setDomLayout(\"autoHeight\");\n }\n\n getAllWellnessProgressForMedicalReceiptType() {\n this._wellnessProgressService.getAllWellnessProgressForMedicalReceiptType().subscribe(wellnessProgresses => {\n this.wellnessProgresses = wellnessProgresses;\n });\n }\n\n makeid(length) {\n var result = '';\n var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var charactersLength = characters.length;\n for (var i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() *\n charactersLength));\n }\n return result;\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { FormBuilder, Validators, FormGroup } from '@angular/forms';\nimport { first } from 'rxjs/operators';\nimport { DatePipe } from '@angular/common';\nimport { WellnessProgressService } from 'src/app/services/wellnessProgressService.service';\nimport { WellnessProgressReviewStatus } from 'src/app/models/enums/wellnessProgressReviewStatus';\nimport { IndemnityBenefitService } from 'src/app/services/indemnityBenefit.service';\nimport { IndemnityBenefit } from 'src/app/models/indemnityBenefit';\nimport { saveAs as importedSaveAs } from \"file-saver\";\nimport { ColDef } from 'ag-grid-community';\nimport { FormatDate } from '../../../../helpers/format';\n\n@Component({\n selector: 'app-update-medicalreceipt',\n templateUrl: './update-medicalreceipt.component.html'\n})\nexport class UpdateMedicalReceiptComponent implements OnInit {\n @Input()\n medicalReceiptId: number;\n medicalReceiptForm: FormGroup;\n indemnityBenefits: IndemnityBenefit[];\n wellnessProgressReviewStatusKeys: any;\n friendlyFileName: string;\n loading = false;\n submitted = false;\n isReciptPending = true;\n errorMessage: string[] = [];\n successMessage = '';\n columnDefs: ColDef[] = [];\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n\n\n private gridApi;\n private WellnessProgressReviewStatus = WellnessProgressReviewStatus;\n\n constructor(private _route: ActivatedRoute,\n private _router: Router,private _date: FormatDate,\n private _formBuilder: FormBuilder,\n private _wellnessProgressService: WellnessProgressService,\n private _indemnityBenefitService: IndemnityBenefitService)\n {\n this._route.params.subscribe(params => { this.medicalReceiptId = params['medicalReceiptId']; });\n\n this.columnDefs = [\n { hide: true, field: 'id' },\n { headerName: 'Name', field: 'name', checkboxSelection: true, suppressMovable:true, sortable: true, filter: true, autoHeight: true },\n //{\n // headerName: 'Name', field: 'name', sortable: true, filter: true\n //},\n { headerName: 'Amount', field: 'amount', suppressMovable: true, sortable: true, filter: true, autoHeight: true, valueFormatter: params => \"$\" + params.data.amount },\n ];\n }\n\n ngOnInit() {\n this.wellnessProgressReviewStatusKeys = Object.keys(WellnessProgressReviewStatus).filter(Number);\n // this.getAllIndemnityBenefits();\n this.medicalReceiptForm = this._formBuilder.group({\n type:[1],\n serviceDate: ['', [Validators.required]],\n providerName: ['', [Validators.required]],\n reviewStatus:[],\n comments: [''],\n indemnityBenefitId: [0],\n patientName: ['', [Validators.required]],\n patientBirthDate: ['', [Validators.required]]\n });\n\n if (!!this.medicalReceiptId) {\n this._wellnessProgressService.getWellnessProgress(this.medicalReceiptId).subscribe(medicalReceipt => {\n this.medicalReceiptForm.patchValue(medicalReceipt);\n this.medicalReceiptForm.controls['serviceDate'].patchValue(this._date.formatDate(medicalReceipt.serviceDate));\n this.medicalReceiptForm.controls['reviewStatus'].patchValue(WellnessProgressReviewStatus[medicalReceipt.reviewStatus]);\n this.friendlyFileName = medicalReceipt.friendlyFileName;\n if (medicalReceipt.reviewStatus) {\n this.isReciptPending = false;\n }\n\n if (medicalReceipt.patientBirthDate) {\n this.medicalReceiptForm.controls['patientBirthDate'].patchValue(this._date.formatDate(medicalReceipt.patientBirthDate));\n }\n });\n }\n }\n\n getAllIndemnityBenefits() {\n this._indemnityBenefitService.getAllIndemnityBenefits().subscribe(indemnityBenefits => {\n this.indemnityBenefits = indemnityBenefits;\n });\n }\n\n // convenience getter for easy access to form fields\n get f() { return this.medicalReceiptForm.controls; }\n\n \n onSubmit() {\n this.submitted = true;\n\n // reset alerts on submit\n this.successMessage = '';\n this.errorMessage = [];\n\n // stop here if form is invalid\n if (this.medicalReceiptForm.invalid) {\n return;\n }\n\n this.loading = true;\n const medicalReceiptId = this.medicalReceiptId;\n // delete this.groupForm.value['broker'];\n if (!!medicalReceiptId) {\n this._wellnessProgressService.updateMedicalReceipt(medicalReceiptId, this.medicalReceiptForm.value)\n .pipe(first())\n .subscribe(\n () => {\n if (this.medicalReceiptForm.value.reviewStatus) {\n this.isReciptPending = false;\n }\n // return to list\n this.successMessage = 'Medical Receipt updated successfully.';\n this.loading = false;\n this.errorMessage = [];\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this.errorMessage.push(err.value));\n } else if (typeof error.error === 'string') {\n this.errorMessage.push(error.error);\n } else {\n this.errorMessage.push(error);\n }\n this.loading = false;\n });\n } \n }\n\n showAllMedicalReceipts() {\n this._router.navigate(['/admin/medicalreceipts']);\n }\n \n downloadReceipt() {\n this._wellnessProgressService.downloadMedicalReceipt(this.medicalReceiptId).subscribe(blob => {\n let file = this.makeid(5);\n if (this.friendlyFileName != null && this.friendlyFileName.length > 0) {\n file = this.friendlyFileName;\n }\n\n importedSaveAs(blob, file);\n });\n }\n\n makeid(length) {\n var result = '';\n var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var charactersLength = characters.length;\n for (var i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() *\n charactersLength));\n }\n return result;\n }\n\n goToViewRecipt() {\n this._router.navigate(['admin/medicalreceipts']);\n }\n\n\n onGridReady(params) {\n this.gridApi = params.api;\n var index = 0;\n this.getAllIndemnityBenefits();\n setTimeout(() => {\n // this.gridApi.setDomLayout(\"autoHeight\");\n params.api.forEachNode(node => {\n if (node.data.id == this.medicalReceiptForm.value.indemnityBenefitId) {\n node.setSelected(true, true);\n index = node.id;\n }\n });\n this.gridApi.ensureIndexVisible(Number(index));\n }, 2000);\n }\n\n onRowSelectedEvent(params) {\n if (params.node.isSelected()) {\n this.medicalReceiptForm.controls['indemnityBenefitId'].patchValue(params.data.id);\n }\n\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0Jyb2tlci9icm9rZXItZ3JvdXAtbWVtYmVycy9icm9rZXItZ3JvdXAtbWVtYmVycy5jb21wb25lbnQuY3NzIn0= */\"","import { Component } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ColDef } from 'ag-grid-community';\nimport { BrokerService } from 'src/app/services/broker.service';\nimport { GroupService } from 'src/app/services/group.service';\nimport { BtnCellRendererComponent } from 'src/app/shared/controls/renderers/button-renderer/btn.renderer';\n\n@Component({\n selector: 'app-broker-group-members',\n templateUrl: './broker-group-members.component.html',\n styleUrls: ['./broker-group-members.component.css']\n})\nexport class BrokerGroupMembersComponent {\n members;\n columnDefs: ColDef[] = [\n { hide: true, field: 'externalId' },\n { headerName: 'First Name', field: 'firstName', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Last Name', field: 'lastName', suppressMovable: true, sortable: true, filter: true },\n ];\n\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n\n private _groupExternalId: string;\n\n constructor(private _brokerservice: BrokerService, private _groupService: GroupService, private _route: ActivatedRoute, private _router: Router) {\n const _this = this;\n this._route.params.subscribe(params => {\n _this._groupExternalId = params['groupId'];\n this._brokerservice.getAllGroupMembers(_this._groupExternalId).subscribe(x => {\n this.members = x;\n });\n });\n\n this.columnDefs.push({\n headerName: '',\n field: 'externalId',\n cellRendererFramework: BtnCellRendererComponent,\n cellRendererParams: {\n showClickableBtn: true,\n btnText: 'Complete Engagement Questionnaire',\n clicked: function (boolean, referenceId: any) {\n _this._router.navigate([`/hra-form/${_this._groupExternalId}/${referenceId}`]);\n }\n },\n });\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL0Jyb2tlci9icm9rZXItZ3JvdXBzL2Jyb2tlci1ncm91cHMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ColDef } from 'ag-grid-community';\nimport { BrokerService } from 'src/app/services/broker.service';\nimport { BtnCellRendererComponent } from 'src/app/shared/controls/renderers/button-renderer/btn.renderer';\n\n@Component({\n selector: 'app-broker-groups',\n templateUrl: './broker-groups.component.html',\n styleUrls: ['./broker-groups.component.scss']\n})\nexport class BrokerGroupsComponent {\n\n groups;\n columnDefs: ColDef[] = [\n { hide: true, field: 'externalId' },\n { headerName: 'Group Name', field: 'name', suppressMovable: true, sortable: true, filter: true },\n ];\n\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n\n constructor(private _brokerservice: BrokerService, private _router: Router) {\n const _this = this;\n this._brokerservice.getAllGroups().subscribe(x => {\n this.groups = x;\n });\n\n this.columnDefs.push({\n headerName: '',\n field: 'externalId',\n suppressMovable: true,\n cellRendererFramework: BtnCellRendererComponent,\n cellRendererParams: {\n showClickableBtn: true,\n btnText: 'View Employees',\n clicked: function (boolean, referenceId: any) {\n _this._router.navigate([`/agents/groups/${referenceId}`]);\n }\n },\n });\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { BrokerRoutingModule } from './broker-routing.module';\nimport { BrokerGroupMembersComponent } from './broker-group-members/broker-group-members.component';\nimport { BrokerGroupsComponent } from './broker-groups/broker-groups.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { BtnCellRendererComponent } from 'src/app/shared/controls/renderers/button-renderer/btn.renderer';\nimport { AgGridModule } from 'ag-grid-angular';\n\n@NgModule({\n declarations: [\n BrokerGroupsComponent,\n BrokerGroupMembersComponent\n ],\n imports: [\n SharedModule,\n // BrokerRoutingModule,\n AgGridModule.withComponents([BtnCellRendererComponent])\n ],\n})\nexport class BrokerModule { }\n","export default \"/*\\nHigh DPI screens (retina macbooks, highresolution laptops, etc)\\n*/\\n/* Firefox specific styles go here */\\n/*\\nCOMMON COLOR NAMES\\n\\nThese colors are mapped to the names from the official colors.\\nInstead of having names like `crush` or `blaze`, developers will use their common, non-marketized name.\\neg. $red: crush\\n $orange: blaze\\n\\nThen, use the `hra-color` function to get the color\\neg. color: hra-color($red)\\n*/\\n/* **** */\\n/* * Charts Colors */\\n/* info text background */\\n/* Use following classes for aesthetics only - New UI KIT */\\n/* Color Mapping*/\\n/*ends*/\\n/* Used for grids and margins */\\n/*\\n font sizes\\n */\\n/*\\n * Header size\\n */\\n/*\\n * Device Group settings\\n */\\n/*\\n * Border settings\\n */\\n/*\\n * Shadows go by level\\n */\\n/*\\n * Padding settings\\n */\\n/*\\n * Inputs\\n */\\n/*\\n * ToolTips\\n */\\n/*\\n * Action bar sizes\\n */\\n/**\\n* Device grid sizes\\n*/\\n/*\\n * Focus border\\n */\\n/*\\n * Border\\n */\\n/*\\n * Pop-up\\n*/\\n/*\\n* Status Notification\\n*/\\n/*\\n Round button sizes\\n */\\n/*\\n * Image Icon Sizes\\n */\\n/** Modal sizes **/\\n.theme-color {\\n color: #000; }\\n.theme-color p {\\n line-height: 1.3rem; }\\nul.comming-soon li {\\n width: 100%;\\n list-style: none; }\\nul.categories {\\n width: 100%;\\n list-style: none; }\\nul.categories li {\\n width: 215px;\\n display: inline-block;\\n margin-right: 2rem;\\n vertical-align: top;\\n margin-top: 1rem;\\n text-align: center;\\n cursor: default; }\\nul.categories li p {\\n margin-top: 0.5rem;\\n line-height: 20px; }\\nul.categories li.enabled {\\n cursor: pointer; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21lZGlhcXVlcmllcy5zY3NzIiwic3JjL2FwcC9jb250cm9scy9NZW1iZXJzL2NhdGVnb3JpZXMtbGlzdGluZy9jYXRlZ29yaWVzLWxpc3RpbmcvY2F0ZWdvcmllcy1saXN0aW5nLmNvbXBvbmVudC5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9zdHlsZXMvYmFzZS9fbWl4aW5zLnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvc2hhcmVkL3N0eWxlcy9iYXNlL19jb2xvcnMuc2NzcyIsIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX3NldHRpbmdzLnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvY29udHJvbHMvTWVtYmVycy9jYXRlZ29yaWVzLWxpc3RpbmcvY2F0ZWdvcmllcy1saXN0aW5nL2NhdGVnb3JpZXMtbGlzdGluZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4QkE7O0NDNUJDO0FDMEtELG9DQUFBO0FDNUtBOzs7Ozs7Ozs7O0NGY0M7QUUrREQsU0FBQTtBQVVBLG9CQUFBO0FBS0EseUJBQUE7QUFJQSwyREFBQTtBQUVBLGlCQUFBO0FBb0JBLE9BQUE7QUNuSEEsK0JBQUE7QUFpQkE7O0VISUU7QUdtQkY7O0VIaEJFO0FHOEJGOztFSDNCRTtBR3lDRjs7RUh0Q0U7QUcrQ0Y7O0VINUNFO0FHa0VGOztFSC9ERTtBR2lGRjs7RUg5RUU7QUdvRkY7O0VIakZFO0FHNEZGOztFSHpGRTtBR2dHRjs7Q0g3RkM7QUdxR0Q7O0VIbEdFO0FHd0dGOztFSHJHRTtBRzhHRjs7Q0gzR0M7QUdxSEQ7O0NIbEhDO0FHMEhEOztFSHZIRTtBRzhIRjs7RUgzSEU7QUdzSUYsa0JBQUE7QUN6TUE7RUFDSSxXQUFXLEVBQUE7QUFEZjtJQUlRLG1CQUFtQixFQUFBO0FBSTNCO0VBRVEsV0FBVztFQUNYLGdCQUFnQixFQUFBO0FBSXhCO0VBQ0ksV0FBVztFQUNYLGdCQUFnQixFQUFBO0FBRnBCO0lBS1EsWUFBWTtJQUNaLHFCQUFxQjtJQUNyQixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLGdCQUFnQjtJQUNoQixrQkFBa0I7SUFDbEIsZUFBZSxFQUFBO0FBWHZCO01BY1ksa0JBQWtCO01BQ2xCLGlCQUFpQixFQUFBO0FBZjdCO0lBb0JRLGVBQWUsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL01lbWJlcnMvY2F0ZWdvcmllcy1saXN0aW5nL2NhdGVnb3JpZXMtbGlzdGluZy9jYXRlZ29yaWVzLWxpc3RpbmcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAgQXV0aG9yOiBSYWZhbCBCcm9taXJza2lcbi8vICB3d3c6IGh0dHA6Ly9yYWZhbGJyb21pcnNraS5jb20vXG4vLyAgZ2l0aHViOiBodHRwOi8vZ2l0aHViLmNvbS9wYXJhbm9pZGEvc2Fzcy1tZWRpYXF1ZXJpZXNcbi8vXG4vLyAgTGljZW5zZWQgdW5kZXIgYSBNSVQgTGljZW5zZVxuLy9cbi8vICBWZXJzaW9uOlxuLy8gIDEuNi4xXG4vLyAtLS0gZ2VuZXJhdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIG1xKCRhcmdzLi4uKSB7XG4gICRtZWRpYS10eXBlOiAnb25seSBzY3JlZW4nO1xuICAkbWVkaWEtdHlwZS1rZXk6ICdtZWRpYS10eXBlJztcbiAgJGFyZ3M6IGtleXdvcmRzKCRhcmdzKTtcbiAgJGV4cHI6ICcnO1xuICBAaWYgbWFwLWhhcy1rZXkoJGFyZ3MsICRtZWRpYS10eXBlLWtleSkge1xuICAgICRtZWRpYS10eXBlOiBtYXAtZ2V0KCRhcmdzLCAkbWVkaWEtdHlwZS1rZXkpO1xuICAgICRhcmdzOiBtYXAtcmVtb3ZlKCRhcmdzLCAkbWVkaWEtdHlwZS1rZXkpO1xuICB9XG4gIEBlYWNoICRrZXksXG4gICR2YWx1ZSBpbiAkYXJncyB7XG4gICAgQGlmICR2YWx1ZSB7XG4gICAgICAkZXhwcjogXCIjeyRleHByfSBhbmQgKCN7JGtleX06ICN7JHZhbHVlfSlcIjtcbiAgICB9XG4gIH1cbiAgQG1lZGlhICN7JG1lZGlhLXR5cGV9ICN7JGV4cHJ9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5cbi8qXG5IaWdoIERQSSBzY3JlZW5zIChyZXRpbmEgbWFjYm9va3MsIGhpZ2hyZXNvbHV0aW9uIGxhcHRvcHMsIGV0YylcbiovXG5cbkBtaXhpbiBoZHBpKCRyYXRpbzogMS4zKSB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSwgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogI3tyb3VuZCgkcmF0aW8qOTYpfWRwaSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vICRvcmllbnRhdGlvbjogbGFuZHNjYXBlIHwgcG9ydHJhaXRcbkBtaXhpbiB0YWJsZXQoJG9yaWVudGF0aW9uOiBmYWxzZSkge1xuICAkbWluOiAyNjhweDtcbiAgJG1heDogMTAyNHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCwgJG9yaWVudGF0aW9uOiAkb3JpZW50YXRpb24pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBzbWFsbCBkZXNrdG9wIC0gMTAyNSA8LT4gMTI4MFxuQG1peGluIHNtYWxsLWRlc2t0b3AoKSB7XG4gICRtaW46IDEwMjVweDtcbiAgJG1heDogMTI4MHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIG1lZGl1bSBkZXNrdG9wIC0gMTI4MSA8LT4gMTQ0MFxuQG1peGluIG1lZGl1bS1kZXNrdG9wKCkge1xuICAkbWluOiAxMjgxcHg7XG4gICRtYXg6IDE0NDBweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBsYXJnZSBkZXNrdG9wIC0gMTQ0MSA8LT4gMTYwMFxuQG1peGluIGxhcmdlLWRlc2t0b3AoKSB7XG4gICRtaW46IDE0NDFweDtcbiAgJG1heDogMTYwMHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIHhsYXJnZSBkZXNrdG9wIC0gMTYwMSAtPiBpbmZpbml0eVxuQG1peGluIHhsYXJnZS1kZXNrdG9wKCkge1xuICAkbWluOiAxNjAxcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gZGVza3RvcCBvdmVybGF5XG5AbWl4aW4gZGVza3RvcC1vdmVybGF5KCkge1xuICAgICRtaW46IDI2OHB4O1xuICAgICRtYXg6IDkyNnB4O1xuICAgIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cbiIsIi8qXG5IaWdoIERQSSBzY3JlZW5zIChyZXRpbmEgbWFjYm9va3MsIGhpZ2hyZXNvbHV0aW9uIGxhcHRvcHMsIGV0YylcbiovXG4vKiBGaXJlZm94IHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG4vKlxuQ09NTU9OIENPTE9SIE5BTUVTXG5cblRoZXNlIGNvbG9ycyBhcmUgbWFwcGVkIHRvIHRoZSBuYW1lcyBmcm9tIHRoZSBvZmZpY2lhbCBjb2xvcnMuXG5JbnN0ZWFkIG9mIGhhdmluZyBuYW1lcyBsaWtlIGBjcnVzaGAgb3IgYGJsYXplYCwgZGV2ZWxvcGVycyB3aWxsIHVzZSB0aGVpciBjb21tb24sIG5vbi1tYXJrZXRpemVkIG5hbWUuXG5lZy4gJHJlZDogY3J1c2hcbiAgICAkb3JhbmdlOiBibGF6ZVxuXG5UaGVuLCB1c2UgdGhlIGBocmEtY29sb3JgIGZ1bmN0aW9uIHRvIGdldCB0aGUgY29sb3JcbmVnLiBjb2xvcjogaHJhLWNvbG9yKCRyZWQpXG4qL1xuLyogKioqKiAqL1xuLyogKiBDaGFydHMgQ29sb3JzICovXG4vKiBpbmZvIHRleHQgYmFja2dyb3VuZCAqL1xuLyogVXNlIGZvbGxvd2luZyBjbGFzc2VzIGZvciBhZXN0aGV0aWNzIG9ubHkgLSBOZXcgVUkgS0lUICovXG4vKiBDb2xvciBNYXBwaW5nKi9cbi8qZW5kcyovXG4vKiBVc2VkIGZvciBncmlkcyBhbmQgbWFyZ2lucyAqL1xuLypcbiAgZm9udCBzaXplc1xuICovXG4vKlxuICogSGVhZGVyIHNpemVcbiAqL1xuLypcbiAqIERldmljZSBHcm91cCBzZXR0aW5nc1xuICovXG4vKlxuICogQm9yZGVyIHNldHRpbmdzXG4gKi9cbi8qXG4gKiBTaGFkb3dzIGdvIGJ5IGxldmVsXG4gKi9cbi8qXG4gKiBQYWRkaW5nIHNldHRpbmdzXG4gKi9cbi8qXG4gKiBJbnB1dHNcbiAqL1xuLypcbiAqIFRvb2xUaXBzXG4gKi9cbi8qXG4gKiBBY3Rpb24gYmFyIHNpemVzXG4gKi9cbi8qKlxuKiAgRGV2aWNlIGdyaWQgc2l6ZXNcbiovXG4vKlxuICogRm9jdXMgYm9yZGVyXG4gKi9cbi8qXG4gKiBCb3JkZXJcbiAqL1xuLypcbiAqIFBvcC11cFxuKi9cbi8qXG4qIFN0YXR1cyBOb3RpZmljYXRpb25cbiovXG4vKlxuICBSb3VuZCBidXR0b24gc2l6ZXNcbiAqL1xuLypcbiAqIEltYWdlIEljb24gU2l6ZXNcbiAqL1xuLyoqIE1vZGFsIHNpemVzICoqL1xuLnRoZW1lLWNvbG9yIHtcbiAgY29sb3I6ICMwMDA7IH1cbiAgLnRoZW1lLWNvbG9yIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjNyZW07IH1cblxudWwuY29tbWluZy1zb29uIGxpIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxudWwuY2F0ZWdvcmllcyB7XG4gIHdpZHRoOiAxMDAlO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG4gIHVsLmNhdGVnb3JpZXMgbGkge1xuICAgIHdpZHRoOiAyMTVweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAycmVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XG4gICAgdWwuY2F0ZWdvcmllcyBsaSBwIHtcbiAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OyB9XG4gIHVsLmNhdGVnb3JpZXMgbGkuZW5hYmxlZCB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4iLCJAaW1wb3J0ICcuL21lZGlhcXVlcmllcyc7XG5cbi8vLyAvIHN0eWxlZ3VpZGU6aWdub3JlOnN0YXJ0XG4vLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2Vcbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcbi8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIFRoZSBiYXNlIHZhbHVlIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBgcmVtYC4gSWYgeW91J3JlIHVzaW5nIEZvdW5kYXRpb24gb3V0IG9mIHRoZSBib3gsIHRoaXMgaXMgMTZweC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgYG51bGxgLCB0aGUgZnVuY3Rpb24gd2lsbCByZWZlcmVuY2UgdGhlIGAkYmFzZS1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlPT1udWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpPT0nJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cbiAgQGlmICRjb3VudD09MSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XG59XG5cbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXG5AZnVuY3Rpb24gLXpmLWJwLXRvLWVtKCR2YWx1ZSkge1xuICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICBAaWYgdW5pdCgkdmFsdWUpPT0ncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9J251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSsnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW1cbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWU9PTByZW0ge1xuICAgICR2YWx1ZTogMDtcbiAgfVxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIEFuaW1hdGlvbiBrZXlmcmFtZXMgYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGFuaW1hdGlvbi1uYW1lIC0gTmFtZSBvZiB0aGUgYW5pbWF0aW9uLlxuQG1peGluIGtleWZyYW1lcygkYW5pbWF0aW9uLW5hbWUpIHtcbiAgQC13ZWJraXQta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1tb3ota2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1tcy1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW8ta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBBbmltYXRpb24gYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0ciAtIGNzczMgYW5pbWF0aW9uIHNwZWMuXG5AbWl4aW4gYW5pbWF0aW9uKCRzdHIpIHtcbiAgLXdlYmtpdC1hbmltYXRpb246ICN7JHN0cn07XG4gIC1tb3otYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtbXMtYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtby1hbmltYXRpb246ICN7JHN0cn07XG4gIGFuaW1hdGlvbjogI3skc3RyfTtcbn1cblxuLy8vIEJveCBzaGFkb3cgYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0ciAtIGNzczMgYm94LXNoYWRvdyBzcGVjLlxuQG1peGluIGJveC1zaGFkb3coJHN0cikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICN7JHN0cn07XG4gIC1tb3otYm94LXNoYWRvdzogI3skc3RyfTtcbiAgLW8tYm94LXNoYWRvdzogI3skc3RyfTtcbiAgYm94LXNoYWRvdzogI3skc3RyfTtcbn1cblxuLy8vIGdyYWRpZW50IGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gZ3JhZGllbnQoJGNvbG9yMSwgJGNvbG9yMikge1xuICBiYWNrZ3JvdW5kOiAjeyRjb2xvcjF9O1xuICAvKiBGb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBncmFkaWVudHMgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBTYWZhcmkgNS4xIHRvIDYuMCAqL1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBPcGVyYSAxMS4xIHRvIDEyLjAgKi9cbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBGaXJlZm94IDMuNiB0byAxNSAqL1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIFN0YW5kYXJkIHN5bnRheCAqL1xufVxuXG5AbWl4aW4gdmVydGljYWwtZ3JhZGllbnQtZGl2aWRlcigpe1xuICB3aWR0aDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6IDFweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgaHJhLWNvbG9yKCRncmV5LCAyMCksICR3aGl0ZSk7XG59XG5cblxuLy8vIElFIG9ubHkgcXVlcnlcbkBtaXhpbiBpZS1vbmx5KCkge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuICAgIC8qIElFMTArIHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG5AbWl4aW4gY3JlYXRlLWFuaW1hdGlvbigkYW5pLW5hbWUpIHtcbiAgYW5pbWF0aW9uOiAkYW5pLW5hbWUgZm9yd2FyZHMgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cblxuQG1peGluIGNyZWF0ZS10cmFuc2l0aW9uKCRwcm9wZXJ0eS1uYW1lKSB7XG4gIHRyYW5zaXRpb246ICRwcm9wZXJ0eS1uYW1lIDMwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG4vLy8gRWRnZSBvbmx5IHF1ZXJ5XG5AbWl4aW4gZWRnZS1vbmx5KCkge1xuICBAc3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAvKiBFZGdlIHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG4vKiBGaXJlZm94IHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG5AbWl4aW4gZmlyZWZveC1vbmx5KCkge1xuICBAc3VwcG9ydHMgKC1tb3otYXBwZWFyYW5jZTpub25lKSB7XG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG5cbi8vIHN0eWxlZ3VpZGU6aWdub3JlOmVuZCIsIi8qXG5DT01NT04gQ09MT1IgTkFNRVNcblxuVGhlc2UgY29sb3JzIGFyZSBtYXBwZWQgdG8gdGhlIG5hbWVzIGZyb20gdGhlIG9mZmljaWFsIGNvbG9ycy5cbkluc3RlYWQgb2YgaGF2aW5nIG5hbWVzIGxpa2UgYGNydXNoYCBvciBgYmxhemVgLCBkZXZlbG9wZXJzIHdpbGwgdXNlIHRoZWlyIGNvbW1vbiwgbm9uLW1hcmtldGl6ZWQgbmFtZS5cbmVnLiAkcmVkOiBjcnVzaFxuICAgICRvcmFuZ2U6IGJsYXplXG5cblRoZW4sIHVzZSB0aGUgYGhyYS1jb2xvcmAgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb2xvclxuZWcuIGNvbG9yOiBocmEtY29sb3IoJHJlZClcbiovXG5cbiR0aGVtZS1ncmVlbjogI2RmZDI2OTtcbiR0aGVtZS1jb2xvcjogJHRoZW1lLWdyZWVuO1xuJGJsdWU6IGJsdWU7XG4kY3lhbjogY3lhbjtcbiRncmV5OiBncmV5O1xuJHJlZDogY3J1c2g7XG4kb3JhbmdlOiBibGF6ZTtcbiR5ZWxsb3c6IHN1bnNldCwgNjA7XG4kZ3JlZW46IHNlYWZvYW07XG4kbGlnaHQtZ3JlZW46IHNlYXdlZWQ7XG4kZGFyay1ncmVlbjogbWFyaW5lO1xuJGJyb3duOiBicm93bjtcbiRwdXJwbGU6IHB1cnBsZTtcbiRzdW5zZXQ6IHN1bnNldDtcbiRwaW5rOiBwaW5rO1xuXG4kbmV3Z3JleTogbmV3Z3JleTtcbiRuZXdibHVlOiBuZXdibHVlO1xuJG5ld2N5YW46IG5ld2N5YW47XG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBobWEncyBDb2xvdXIgUGFsZXR0ZVxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuJGNvbG9yczogKFxuICAgIGJsdWU6ICg1OiAjZjNmYmZlLCAxMDogI2UyZjRmYiwgMjA6ICNiYWU1ZjUsIDQwOiAjNzFjOGYxLCA2MDogIzMyYjZlOSwgODA6ICMwMDk5ZDMsIDEwMDogIzAwNzRhYSwgMTIwOiAjMDY0YzdjKSxcbiAgICBjcnVzaDogKDU6ICNmZmY3ZjYsIDEwOiAjZmVmMGVkLCAyMDogI2ZkZGZkYywgNDA6ICNmYWMxYmEsIDYwOiAjZjQ4MjcyLCA4MDogI2YxNjE0ZiwgMTAwOiAjZTMyNzIyLCAxMTA6I2MxM2YyYiwgMTIwOiAjYTcxZTIyKSxcbiAgICBjeWFuOiAoNTogI2YyZjlmOSwgMTA6ICNlNmY0ZjQsIDIwOiAjY2NlYWVhLCA0MDogIzlhZDdkNiwgNjA6ICM2OGM1YzQsIDgwOiAjMzZiMWIwLCAxMDA6ICMwMjlmOWQsIDEyMDogIzAyNmY2ZiksXG4gICAgYmxhemU6ICg1OiAjZmZmN2YzLCAxMDogI2ZmZjFlOSwgMjA6ICNmY2UxZDMsIDQwOiAjZmNjNWE3LCA2MDogI2Y3YTc3YiwgODA6ICNmNjg5NGQsIDEwMDogI2YyNmIyMSwgMTIwOiAjYjczZTI1KSxcbiAgICBncmV5OiAoNTogI2ZhZmJmYiwgMTA6ICNlY2VmZjAsIDIwOiAjZTRlN2U5LCA0MDogI2E4YjJiNywgNjA6ICM4MjhkOTMsIDgwOiAjNUI2NjcwLCAxMDA6ICMzZDQ2NGQsIDEyMDogIzE0MWUyNSksXG4gICAgc2VhZm9hbTogKDU6ICNlZmY5ZjgsIDEwOiAjZTRmN2YzLCAyMDogI2NmZWRlOCwgNDA6ICNhNWVhZGIsIDYwOiAjNjFkNmI4LCA4MDogIzJmZDJhOCwgMTAwOiAjMWVhZDhhLCAxMjA6ICMwYjcwNWQpLFxuICAgIHNlYXdlZWQ6ICg1OiAjZjhmYmY2LCAxMDogI2YyZjhlZCwgMjA6ICNlM2YwZDksIDQwOiAjY2JlNGI1LCA2MDogI2IwZDc4ZSwgODA6ICM5NWNiNmEsIDEwMDogIzdhYzE0MiwgMTIwOiAjNDk5MTQyKSxcbiAgICBtYXJpbmU6ICg1OiAjZjdmOWYzLCAxMDogI2YxZjRlOCwgMjA6ICNlNGVhZDIsIDQwOiAjY2JkOWE3LCA2MDogI2JmZGI4NSwgODA6ICNhZWQyNTUsIDEwMDogIzdhYTEzZSwgMTIwOiAjNGM3MzM2KSxcbiAgICBwZWJibGU6ICg1OiAjZmJmY2ZjLCAxMDogI2Y1ZjZmNiwgMjA6ICNlOWU4ZTksIDQwOiAjZDVkNGQ1LCA2MDogI2FhYWFhYiwgODA6ICM3YzdjODEsIDEwMDogIzU0NTM1NSwgMTIwOiAjMjgyNzJiKSxcbiAgICBzdW5zZXQ6ICg1OiAjZmZmZGVlLCAxMDogI2ZmZmJkYiwgMjA6ICNmZGY3YjQsIDQwOiAjZmZmNTdlLCA2MDogI2ZmZjEwMCwgODA6ICNmYmFkMWMsIDEwMDogI2Y0N2YxZiwgMTIwOiAjYzk1NDI4KSxcbiAgICBicm93bjogKDU6ICNmN2Y0ZjIsIDEwOiAjZWFlNGUxLCAyMDogI2Q4Y2VjYiwgNDA6ICNiYWFiYTUsIDYwOiAjOTY4MzdjLCA4MDogIzc3NWQ1MywgMTAwOiAjNTkzODJjLCAxMjA6ICMyZjE4MGQpLFxuICAgIHB1cnBsZTogKDU6ICNmMmVmZjcsIDEwOiAjZThkZmVmLCAyMDogI2Q3YzllMywgNDA6ICNjMWFlZDUsIDYwOiAjYTA4NWJlLCA4MDogIzdiNjFhYSwgMTAwOiAjNjY0ZmExLCAxMjA6ICM0MjJlODUpLFxuICAgIHBpbms6ICg1OiAjZmVmNGY4LCAxMDogI2ZjZTdlZiwgMjA6ICNmYWRhZTEsIDQwOiAjZjRhMmMyLCA2MDogI2VkNzNhNCwgODA6ICNlOTQ1ODYsIDEwMDogI2UzMTU2NywgMTIwOiAjYWIxZDQxKSxcblxuICAgIC8vIE5ldyBVSSBLaXQgY29sb3JzIC0gbmV3IHByZWZpeCB3aWxsIGJlIHJlbW92ZWQgb25jZSB0aGUgbWlncmF0aW9uIGlzIGNvbXBsZXRlZFxuICAgIC8vIEl0IGFsc28gbWFrZXMgc3VyZSB0aGF0IGNvbG9yIHZhcmlhYmxlcyBhcmUgdXNlZFxuICAgIG5ld2dyZXk6ICg1OiAjZmNmY2ZjLCAxMDogI2Y3ZjdmNywgMjA6ICNmMmYyZjIsIDQwOiAjZTllOWU5LCA1MDogI2M3YzdjNywgNjA6ICNhOWE5YTksIDcwOiAjODA4MDgwLCA4MDogIzZiNmI2YiwxMDA6ICM0YjRiNGIsMTIwOiMyOTI5MjkpLFxuICAgIG5ld2JsdWU6ICg1OiAjZjBmNmZhLCAxMDogI2UyZWVmNSwgMjA6ICNiOGQ1ZTcsIDQwOiAjOGViYmQ3LCA1MDogIzY5YTFjNywgNTU6ICM0ZjhmYmQsIDY1OiAjMzg3ZWIzLCA3MDogIzJmNzJhOCwgODA6ICMyNTYyOTcsIDEwMDogIzFkNTI4NSwgMTIwOiAjMTAzNzY2KSxcbiAgICBuZXdjeWFuOiAoNTogI2YwZjZmYSwgMTA6ICNlMmVlZjUsIDIwOiAjYjhkNWU3LCA0MDogIzhlYmJkNywgNTA6ICM2OWExYzcsIDU1OiAjNGY4ZmJkLCA2NTogIzM4N2ViMywgMTAwOiAjMmY3MmE4LCAxMjA6ICMyNTYyOTcsIDE0MDogIzFkNTI4NSwgMTYwOiAjMTAzNzY2KSxcbik7XG5cbkBmdW5jdGlvbiBocmEtY29sb3IoJGNvbG9yLCAkdmFsdWU6IDEwMCkge1xuICAgICRzZWxlY3RlZENvbG9yOiAkY29sb3I7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGNvbG9yKSA9PSAnbGlzdCcpIHtcbiAgICAgICAgJHNlbGVjdGVkQ29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAgICAgICAkdmFsdWU6IG50aCgkY29sb3IsIDIpO1xuICAgIH1cblxuICAgICRjb2xvci1tYXA6IG1hcC1nZXQoJGNvbG9ycywgJHNlbGVjdGVkQ29sb3IpO1xuICAgIEBpZiAoJGNvbG9yLW1hcCA9PSBudWxsKSB7XG4gICAgICAgIEBlcnJvciAkc2VsZWN0ZWRDb2xvciArICcgaXMgbm90IHBhcnQgb2YgdGhlIGNvbG9yIHBhbGV0dGUnO1xuICAgIH1cbiAgICBAcmV0dXJuIG1hcC1nZXQoJGNvbG9yLW1hcCwgJHZhbHVlKTtcbn1cblxuJGJsYWNrOiBocmEtY29sb3IoJGdyZXksIDEyMCk7XG4kd2hpdGU6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiRjb2xvci1ncmF5LXRyYW5zcGFyZW50OiB0cmFuc3BhcmVudGl6ZShocmEtY29sb3IoJGdyZXkpLCAwLjgpO1xuJGhvdmVyLWNvbG9yOiBocmEtY29sb3IoJGdyZXksIDIwKTtcblxuXG4vKiAqKioqICovXG4kc3VjY2Vzcy1jb2xvcjogaHJhLWNvbG9yKCRncmVlbik7XG4kd2FybmluZy1jb2xvcjogaHJhLWNvbG9yKCR5ZWxsb3cpO1xuJGFsZXJ0LWNvbG9yOiBocmEtY29sb3IoJHJlZCk7XG4kY29sb3ItaW52YWxpZDogaHJhLWNvbG9yKCRyZWQpO1xuJGRpc2FibGVkLWNvbG9yOiBocmEtY29sb3IoJGdyZXksIDEwKTtcbiRkaXNhYmxlZC1ib3JkZXI6IGhyYS1jb2xvcigkZ3JleSwgNDApO1xuJGNvbG9yLWhyYS1hbmNob3I6IGhyYS1jb2xvcigkYmx1ZSk7XG4kZGlzYWJsZWQtZm9yZS1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCA0MCk7XG5cbi8qICogQ2hhcnRzIENvbG9ycyAqL1xuJHN0YWNrZWQtdG9vbHRpcC1jaXJjbGUtYmc6ICMzZjQwNDI7XG4kY2hhcnQtdG9vbHRpcC1jaXJjbGU6ICNmZjg5NGM7XG4kZG9udXQtY291bnQ6ICNmZjZiNTc7XG5cbi8qIGluZm8gdGV4dCBiYWNrZ3JvdW5kICovXG4kaW5mby1iYWNrZ3JvdW5kOiAjZmZmZGU2O1xuXG5cbi8qIFVzZSBmb2xsb3dpbmcgY2xhc3NlcyBmb3IgYWVzdGhldGljcyBvbmx5IC0gTmV3IFVJIEtJVCAqL1xuLy8gU3RhbmRhcmRpc2UgdmFyaWFibGVzIHNob3VsZCBiZSB1c2VkIGluc3RlYWQgb2YgZGlyZWN0IGNvbG9yc1xuLyogQ29sb3IgTWFwcGluZyovXG4kcHJpbWFyeS1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Ymx1ZSwgNzApO1xuJHByaW1hcnktaG92ZXItYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDEwMCk7XG4kcHJpbWFyeS10ZXh0OiR3aGl0ZTtcblxuJGRlbGV0ZS1iYWNrZ3JvdW5kOiBocmEtY29sb3IoJHJlZCwgMTEwKTtcblxuJHNlY29uZGFyeS10ZXh0OmhyYS1jb2xvcigkbmV3Ymx1ZSwgNTUpO1xuJHNlY29uZGFyeS1iYWNrZ3JvdW5kOiR3aGl0ZTtcbiRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDUpO1xuJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Z3JleSwgNTApO1xuJHNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZDokc2Vjb25kYXJ5LXRleHQ7XG5cbiRmbGF0LWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDgwKTtcbiRmbGF0LWhvdmVyOiBocmEtY29sb3IoJG5ld2dyZXksIDEwMCk7XG4kZmxhdC1kaXNhYmxlZDogaHJhLWNvbG9yKCRuZXdncmV5LCA3MCk7XG5cbiRhY3Rpb24taG92ZXItYmFja2dyb3VuZDogaHJhLWNvbG9yKCRuZXdibHVlLCA4MCk7XG4kYWN0aW9uLWRpc2FibGVkOiBocmEtY29sb3IoJG5ld2dyZXksIDU1KTtcbiRhY3Rpb24tYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDUwKTtcbi8qZW5kcyovXG5cbiRidXR0b24tcHJpbWFyeS10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktYmFja2dyb3VuZDtcbiRidXR0b24tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiRwcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLXByaW1hcnktZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1kZWxldGUtYmFja2dyb3VuZC1jb2xvcjogJGRlbGV0ZS1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1wcmltYXJ5LWRpc2FibGVkLWJvcmRlci1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuXG4vLyBTZWNvbmRhcnkgYnV0dG9ucyBhbmQgc2Vjb25kYXJ5IGFjdGlvbiBidXR0b25zIHNoYXJlIGNvbG9ycyBcbiRidXR0b24tc2Vjb25kYXJ5LWJvcmRlci1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1zZWNvbmRhcnktdGV4dC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItdGV4dC1jb2xvcjogJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1zZWNvbmRhcnktZGlzYWJsZWQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG5cbiRidXR0b24tZmxhdC1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiRidXR0b24tZmxhdC1jb2xvcjogJGZsYXQtY29sb3I7XG4kYnV0dG9uLWZsYXQtaG92ZXItY29sb3I6JGZsYXQtaG92ZXI7XG4kYnV0dG9uLWZsYXQtZGlzYWJsZWQtY29sb3I6ICRmbGF0LWRpc2FibGVkO1xuXG4kYnV0dG9uLWFjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1ob3Zlci10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1kaXNhYmxlZC10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1kZWxldGUtYmFja2dyb3VuZC1jb2xvcjokZGVsZXRlLWJhY2tncm91bmQ7XG5cbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWRpc2FibGVkLWNvbG9yOiAkYWN0aW9uLWRpc2FibGVkO1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG5cbiR1bnNlbGVjdGVkLWNob2ljZS1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJHNlbGVjdGVkLWNob2ljZS1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuXG4kcmFkaW8tbGFiZWwtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiR0b2dnbGUtb24tYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJHRvZ2dsZS1vZi1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kdG9nZ2xlLWhlYWQtY29sb3I6ICR3aGl0ZTtcblxuJGlucHV0LXRleHQtbGFiZWwtY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgMTIwKTtcbiRpbnB1dC10ZXh0LWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA0MCk7XG4kaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA2MCk7XG4kaW5wdXQtdGV4dC1hY3RpdmUtYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDgwKTtcbiRpbnB1dC10ZXh0LWFjdGl2ZS10ZXh0LWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDEyMCk7XG4kaW5wdXQtdGV4dC1lcnJvci1ib3JkZXItY29sb3I6IGhyYS1jb2xvcigkcmVkLCAxMTApO1xuJGlucHV0LXRleHQtZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDUwKTtcbiRpbnB1dC10ZXh0LWVycm9yLW1lc3NhZ2UtY29sb3I6ICRpbnB1dC10ZXh0LWVycm9yLWJvcmRlci1jb2xvcjtcbiRpbnB1dC10ZXh0LWRpc2FibGVkLWNvbG9yOiAkaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjtcbiRpbnB1dC10ZXh0LWxhYmVsLWRpc2FibGVkLWNvbG9yOiAkaW5wdXQtdGV4dC1ib3JkZXItY29sb3I7XG4kaW5wdXQtdGV4dC1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjsiLCJAaW1wb3J0ICdtaXhpbnMnO1xuQGltcG9ydCAnY29sb3JzJztcblxuLyogVXNlZCBmb3IgZ3JpZHMgYW5kIG1hcmdpbnMgKi9cblxuJHNtYWxsLXNpemU6IDQgIWRlZmF1bHQ7XG4kbGFyZ2Utc2l6ZTogMTIgIWRlZmF1bHQ7XG4kc21hbGwtc3F1YXJlOiByZW0tY2FsYygkc21hbGwtc2l6ZSkgIWRlZmF1bHQ7XG4kbGFyZ2Utc3F1YXJlOiByZW0tY2FsYygkbGFyZ2Utc2l6ZSkgIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtZ3JheTogdHJhbnNwYXJlbnRpemUoaHJhLWNvbG9yKCRncmV5LCA0MCksIDAuOCk7XG4kdHJhbnNwYXJlbnQtd2hpdGU6IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KTtcbiRhbmltYXRpb24tdGltaW5nOiAwLjI1cztcbiRyYWQtZ3JhZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyLCB0cmFuc3BhcmVudGl6ZShocmEtY29sb3IoJGdyZXkpLCAwLjUpIDgwJSwgdHJhbnNwYXJlbnRpemUoJGJsYWNrLCAwLjUpIDEwMCUpO1xuJGxpbmVhci1ncmFkOiByZ2JhKCRibGFjaywgMC43KTtcblxuJHNjcm9sbC1iYXItd2lkdGg6ICRzbWFsbC1zcXVhcmUgKiAyO1xuJHNjcm9sbC1iYXItd2lkdGgtZmlyZWZveDogcmVtLWNhbGMoMTcpO1xuJHNjcm9sbC1iYXItd2lkdGgtZWRnZTogcmVtLWNhbGMoMTcpO1xuJHNjcm9sbC1iYXItd2lkdGgtaWU6IHJlbS1jYWxjKDE3KTtcblxuLypcbiAgZm9udCBzaXplc1xuICovXG4kaWNvbi1mb250LXNpemUtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiAzICFkZWZhdWx0OyAvLyAxMnB4XG4kaWNvbi1mb250LXNpemUtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogNCAhZGVmYXVsdDsgLy8gMTZweFxuJGljb24tZm9udC1zaXplLXJlZ3VsYXI6ICRzbWFsbC1zcXVhcmUgKiA1ICFkZWZhdWx0OyAvLyAyMHB4XG4kaWNvbi1mb250LXNpemUtbGFyZ2U6ICRzbWFsbC1zcXVhcmUgKiA2OyAvLyAyNHB4XG4kaWNvbi1mb250LXNpemUteC1sYXJnZTogJHNtYWxsLXNxdWFyZSAqIDc7IC8vIDI4cHhcbiRpY29uLWZvbnQtc2l6ZS1wbGFjZWhvbGRlcjogJGxhcmdlLXNxdWFyZSAqIDc7XG4kZm9udC1zaXplOiAkaWNvbi1mb250LXNpemUtbWVkaXVtICFkZWZhdWx0OyAvLyAxM3B4XG4kZm9udC1zaXplLW1lZGl1bTogJGljb24tZm9udC1zaXplLW1lZGl1bTsgLy8xNnB4XG4kZm9udC1zaXplLWxhcmdlOiAkaWNvbi1mb250LXNpemUtcmVndWxhcjtcbiRmb250LXNpemUteC1sYXJnZTogJGljb24tZm9udC1zaXplLXgtbGFyZ2U7XG4kZm9udC1zaXplLWhlYWRlcjogMTRweDtcblxuXG4kZm9udC13ZWlnaHQtbGlnaHQ6IDMwMDsgLy8gU291cmNlIFNhbnMgUHJvIExpZ2h0XG4kZm9udC13ZWlnaHQtcmVndWxhcjogNDAwOyAvLyBTb3VyY2UgU2FucyBQcm8gTGlnaHRcbiRmb250LXdlaWdodC1zZW1pLWJvbGQ6IDYwMDsgLy8gU291cmNlIFNhbnMgUHJvIFNlbWkgQm9sZFxuJGZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDsgLy8gU291cmNlIFNhbnMgUHJvIEJvbGRcblxuXG5cbi8qXG4gKiBIZWFkZXIgc2l6ZVxuICovXG5cbiRoZWFkZXItaGVpZ2h0OiByZW0tY2FsYyg1MikgIWRlZmF1bHQ7XG4kaGVhZGVyLXRleHQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogOCAhZGVmYXVsdDsgLy8zMnB4XG4kc3ViLW5hdi1oZWlnaHQ6IDByZW0gIWRlZmF1bHQ7IC8vIDBweFxuJHNlYXJjaC1iYXItaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTUgIWRlZmF1bHQ7XG4vLyRwYWdpbmF0aW9uLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDI1ICFkZWZhdWx0O1xuJGNoYXJ0cy1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3NCAhZGVmYXVsdDtcbiRtYWluLWhlYWRlci1oZWlnaHQ6ICRoZWFkZXItaGVpZ2h0KyRzdWItbmF2LWhlaWdodCAhZGVmYXVsdDtcbiR2aXJ0dWFsLWdyb3VwLWluZGljYXRvci1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3O1xuJGhlYWRlci1zaWRlLW1hcmdpbjogcmVtLWNhbGMoMjQpO1xuXG4vKlxuICogRGV2aWNlIEdyb3VwIHNldHRpbmdzXG4gKi9cblxuJGRldmljZS1ncm91cC1wYWRkaW5nLWxlZnQ6ICRzbWFsbC1zcXVhcmUgKiA2O1xuJGRldmljZS1ncm91cC1pdGVtcy1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA5O1xuJGRldmljZS1ncm91cC13aWR0aDogJGxhcmdlLXNxdWFyZSAqIDI4O1xuJGRldmljZS1ncm91cC1taW4td2lkdGg6ICRzbWFsbC1zcXVhcmUgKiA1NTtcbiRkZXZpY2UtZ3JvdXAtbWF4LXdpZHRoOiAkc21hbGwtc3F1YXJlICogMTQwO1xuJGRldmljZS1ncm91cC1tYXJnaW4tdG9wOiAkc2VhcmNoLWJhci1oZWlnaHQ7XG4kZGV2aWNlLWdyb3VwLWJ1dHRvbi13aWR0aDogJGxhcmdlLXNxdWFyZSAqIDIxO1xuJGRldmljZS1ncm91cC1idXR0b24taGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTE7XG4kZGV2aWNlLWdyb3VwLWJ1dHRvbi1ib3JkZXI6IDFweCBzb2xpZCBocmEtY29sb3IoJGdyZXksIDIwKTtcblxuLypcbiAqIEJvcmRlciBzZXR0aW5nc1xuICovXG5cbiRib3JkZXItYmFzZTogMXB4IHNvbGlkIHJnYigyMDQsIDIwNCwgMjA0KTtcbiRib3JkZXItcmFkaXVzLXNtYWxsOiAzcHg7XG4kYm9yZGVyLXJhZGl1cy1iYXNlOiA0cHg7XG4kYm9yZGVyLXJhZGl1cy1sYXJnZTogNnB4O1xuXG4vKlxuICogU2hhZG93cyBnbyBieSBsZXZlbFxuICovXG5cbiRzaGFkb3c6IDAgM3B4IDlweCByZ2JhKDAsIDAsIDAsIC41KTtcbiRzaGFkb3ctMTogMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiRzaGFkb3ctc21hbGw6IDAgMXB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xuJHNoYWRvdy1oZWFkZXI6IDBweCAxcHggMTNweCAycHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1zZWFyY2gtaGVhZGVyOiA4cHggMXB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctbGlnaHQ6IDFweCAxcHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiRzaGFkb3ctbGlnaHQtYm90dG9tLW9ubHk6IDBweCAxcHggOHB4IHJnYmEoJGJsYWNrLCAwLjEzKTtcbiRzaGFkb3ctYWJvdmU6IDAgLTFweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWFib3ZlLWxlZnQ6IC02cHggMHB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctYmVsb3c6IDBweCA5cHggOHB4IC01cHggcmdiYSgxNTgsIDE1OCwgMTU4LCAwLjI1KTtcbiRzaGFkb3ctZHJvcGRvd246IDAgMXB4IDEzcHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1kaWFsb2c6IDAgOHB4IDIwcHggNnB4IHJnYmEoJGJsYWNrLCAwLjYpO1xuJHNoYWRvdy1kaWFsb2ctc3VmZml4OiAwcHggMTZweCAyMHB4IDNweCByZ2JhKCRibGFjaywgMC42KTtcbiRzaGFkb3ctbGF5b3V0OiA2cHggMHB4IDlweCAwcHggcmdiYSgkYmxhY2ssIDAuMik7XG4kc2hhZG93LXNhdmVkLXNlYXJjaGVzOiA0cHggNHB4IDhweCAtMnB4IHJnYmEoNjcsNzAsNzQsLjEzKTtcbiRzaGFkb3ctY2hhcnQtY2FyZDogMCA2cHggMTZweCByZ2JhKDIwLDMwLDM3LDAuMDgpO1xuJHNoYWRvdy1jb25maWctY2FyZDogMCAwIDI0cHggMCByZ2JhKDIwLDMwLDM3LDAuMSk7XG5cbi8qXG4gKiBQYWRkaW5nIHNldHRpbmdzXG4gKi9cblxuJGJvZHktcGFkZGluZzogJGxhcmdlLXNxdWFyZSAqIDI7XG4kcGFkZGluZy1zbWFsbDogJGxhcmdlLXNxdWFyZTtcbiRiYXNlLXBhZGRpbmc6ICRzbWFsbC1zcXVhcmUgKiA0OyAvLyAxNnB4XG4kaGFsZi1iYXNlLXBhZGRpbmc6ICRiYXNlLXBhZGRpbmcgLyAyO1xuJG1vZGFsLXBhZGRpbmc6ICRiYXNlLXBhZGRpbmc7XG4kbGF5b3V0LXBhZGRpbmc6ICgkYmFzZS1wYWRkaW5nICogMikgKCRib2R5LXBhZGRpbmcgKiAyKSAoJGJhc2UtcGFkZGluZyAqIDIpICgkYm9keS1wYWRkaW5nICogMik7XG4kcGFkZGluZy1iYXNlLXZlcnRpY2FsOiA2cHg7XG4kcGFkZGluZy1iYXNlLWhvcml6b250YWw6ICRzbWFsbC1zcXVhcmUgKiAzO1xuJHBhZGRpbmctbGFyZ2UtdmVydGljYWw6IDEwcHg7XG4kcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsOiAgJHNtYWxsLXNxdWFyZSAqIDQ7XG4kcGFkZGluZy1tZWRpdW0tdmVydGljYWw6IDE0cHg7XG4kcGFkZGluZy1zbWFsbC12ZXJ0aWNhbDogNXB4O1xuJHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDogMTBweDtcblxuLypcbiAqIElucHV0c1xuICovXG4kaW5wdXQtcGFkZGluZzogJHNtYWxsLXNxdWFyZSAkc21hbGwtc3F1YXJlICogMjtcbiRpbnB1dC1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA4O1xuXG4vKlxuICogVG9vbFRpcHNcbiAqL1xuXG4vLyBUb29sdGlwc1xuJHRvb2x0aXAtbWF4LXdpZHRoOiAyNTBweCAhZGVmYXVsdDtcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KSAhZGVmYXVsdDtcbiR0b29sdGlwLXRleHQtY29sb3I6ICNmZmYgIWRlZmF1bHQ7XG4kdG9vbHRpcC1kZWxheTogMC40cyAhZGVmYXVsdDtcbiR0b29sdGlwLWR1cmF0aW9uOiAwLjFzICFkZWZhdWx0O1xuXG4vKlxuICogQWN0aW9uIGJhciBzaXplc1xuICovXG5cbiRkZXZpY2UtYWN0aW9uLWJhci1oZWlnaHQ6ICRsYXJnZS1zcXVhcmUgKiA1O1xuJGNvdW50LWNvbnRhaW5lci1wYWRkaW5nOiAoJGxhcmdlLXNxdWFyZSAqIDIpICgkc21hbGwtc3F1YXJlICogNCkgKCRsYXJnZS1zcXVhcmUgKiAyKSAoJHNtYWxsLXNxdWFyZSAqIDQpO1xuXG4vKipcbiogIERldmljZSBncmlkIHNpemVzXG4qL1xuXG4kcm93LWFib3ZlLWdyaWQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTQ7XG4kY2hlY2stY2VsbC1wYWRkaW5nOiAwIDAgMCAkc21hbGwtc3F1YXJlKjI7XG4kZGV2aWNlLWdyaWQtbWluLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDcxO1xuXG4vKlxuICogRm9jdXMgYm9yZGVyXG4gKi9cblxuJGhyYS1mb2N1cy1vdXRsaW5lOiAycHggc29saWQgaHJhLWNvbG9yKCRjeWFuKTtcblxuLypcbiAqIEJvcmRlclxuICovXG5cbiRocmEtYm9yZGVyOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCAyMCk7XG4kaHJhLWJvcmRlci1lcnJvcjogMXB4IHNvbGlkIGhyYS1jb2xvcigkcmVkKTtcbiRocmEtYm9yZGVyLWlucHV0LWRpc2FibGVkOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCA0MCk7XG5cblxuLypcbiAqIFBvcC11cFxuKi9cbiRocmEtcG9wdXAtYmVhay1zaXplOiAkc21hbGwtc3F1YXJlKjM7XG4kaHJhLXBvcHVwLWJlYWstYm90dG9tLWNlbnRlcjogY2FsYyg1MCUgLSAoMS4yNXJlbSAvIDIpKTtcbiRwb3AtdXAtZm9vdGVyLWhlaWdodDogJGxhcmdlLXNxdWFyZSAqIDU7XG4kcG9wLXVwLXRpdGxlLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDEzO1xuJHBvcC11cC10aXRsZS1tYWpvci1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxNDtcbi8vIHN0eWxlZ3VpZGU6aWdub3JlOmVuZFxuXG4vKlxuKiBTdGF0dXMgTm90aWZpY2F0aW9uXG4qL1xuJGhyYS1zdGF0dXMtbm90aWZpY2F0aW9uLXdpZHRoOiAkc21hbGwtc3F1YXJlICogODM7XG4kaHJhLXN0YXR1cy1ub3RpZmljYXRpb24tdG9wOiAkc21hbGwtc3F1YXJlICogMTQ7XG4kaHJhLXN0YXR1cy1ub3RpZmljYXRpb24tYm90dG9tOiAkc21hbGwtc3F1YXJlICogMTU7XG5cblxuLypcbiAgUm91bmQgYnV0dG9uIHNpemVzXG4gKi9cbiAkcm91bmQtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiA3O1xuICRyb3VuZC1tZWRpdW06ICRzbWFsbC1zcXVhcmUgKiA4O1xuICRyb3VuZC1sYXJnZTogJHNtYWxsLXNxdWFyZSAqIDk7XG5cbi8qXG4gKiBJbWFnZSBJY29uIFNpemVzXG4gKi9cblxuJGltZy1pY29uLXNpemUtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiA4O1xuJGltZy1pY29uLXNpemUtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogMTA7XG5cblxuJGJlemllcjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcblxuXG4vKiogTW9kYWwgc2l6ZXMgKiovXG4kbW9kYWwtdGl0bGUtaGVpZ2h0OiByZW0tY2FsYyg1Mik7XG4kbW9kYWwtZm9vdGVyLWhlaWdodDogcmVtLWNhbGMoNjApO1xuIiwiQGltcG9ydCBcIi4uLy4uLy4uLy4uL3NoYXJlZC9zdHlsZXMvYmFzZS9zZXR0aW5nc1wiO1xuXG4udGhlbWUtY29sb3Ige1xuICAgIGNvbG9yOiAjMDAwO1xuXG4gICAgcCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjNyZW07XG4gICAgfVxufVxuXG51bC5jb21taW5nLXNvb24ge1xuICAgIGxpe1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG59XG5cbnVsLmNhdGVnb3JpZXMge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICBsaSB7XG4gICAgICAgIHdpZHRoOiAyMTVweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDJyZW07XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsaS5lbmFibGVkIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbn1cbiJdfQ== */\"","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Categories } from 'src/app/models/categories';\nimport { CategoryType } from 'src/app/models/enums/categoryType';\nimport { CategoriesService } from 'src/app/services/categories.service';\nimport { UiText } from 'src/app/models/UiText';\nimport { UiTextType } from 'src/app/models/enums/UiTextType';\nimport { MemberService } from 'src/app/services/member.service';\n\n@Component({\n selector: 'app-categories-listing',\n templateUrl: './categories-listing.component.html',\n styleUrls: ['./categories-listing.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CategoriesListingComponent implements OnInit {\n topCategory: Categories[];\n secondCategories: Categories[];\n categories: Categories[];\n isEligibleMedicalReceipts: boolean;\n\n constructor(private _router: Router, private _categoryService: CategoriesService, private _memberService: MemberService) {\n\n\n this._memberService.checkIsEligibleForMedicalReceipts().subscribe(data => {\n this.isEligibleMedicalReceipts = data.isEligibleMedicalReceipts;\n });\n\n this._categoryService.getAllCategories().subscribe(categories => {\n if (this.isEligibleMedicalReceipts) {\n this.categories = categories;\n this.topCategory = this.categories.splice(0, 2);\n this.secondCategories = this.categories.splice(0, 3);\n } else {\n this.categories = categories;\n this.topCategory = this.categories.splice(0, 1);\n this.secondCategories = this.categories.splice(0, 3);\n }\n });\n }\n\n ngOnInit() {\n }\n\n getImage(imageName) {\n return `../../../../../assets/img/${imageName}`;\n }\n\n goToCategory(category: Categories) {\n\n if (!category.enabled) {\n return;\n }\n\n if (this.isEqual(category.type, CategoryType.Video)) {\n this._router.navigate([`/videos/${category.filter}`]);\n }\n\n if (this.isEqual(category.type, CategoryType.VideoCategory)) {\n this._router.navigate([`/videos/categories/${category.filter}`]);\n }\n\n if (category.type.toString() == \"Hra\") {\n this._router.navigate([\"medicalreceipt\"]);\n }\n }\n\n private isEqual(type: number, categoryType: CategoryType) {\n return type === categoryType || type.toString() == CategoryType[categoryType];\n }\n}\n","export default \"/*\\nHigh DPI screens (retina macbooks, highresolution laptops, etc)\\n*/\\n/* Firefox specific styles go here */\\n/*\\nCOMMON COLOR NAMES\\n\\nThese colors are mapped to the names from the official colors.\\nInstead of having names like `crush` or `blaze`, developers will use their common, non-marketized name.\\neg. $red: crush\\n $orange: blaze\\n\\nThen, use the `hra-color` function to get the color\\neg. color: hra-color($red)\\n*/\\n/* **** */\\n/* * Charts Colors */\\n/* info text background */\\n/* Use following classes for aesthetics only - New UI KIT */\\n/* Color Mapping*/\\n/*ends*/\\n/* Used for grids and margins */\\n/*\\n font sizes\\n */\\n/*\\n * Header size\\n */\\n/*\\n * Device Group settings\\n */\\n/*\\n * Border settings\\n */\\n/*\\n * Shadows go by level\\n */\\n/*\\n * Padding settings\\n */\\n/*\\n * Inputs\\n */\\n/*\\n * ToolTips\\n */\\n/*\\n * Action bar sizes\\n */\\n/**\\n* Device grid sizes\\n*/\\n/*\\n * Focus border\\n */\\n/*\\n * Border\\n */\\n/*\\n * Pop-up\\n*/\\n/*\\n* Status Notification\\n*/\\n/*\\n Round button sizes\\n */\\n/*\\n * Image Icon Sizes\\n */\\n/** Modal sizes **/\\n.round-button {\\n box-sizing: border-box;\\n display: block;\\n width: 50px;\\n height: 50px;\\n padding-top: 8px;\\n padding-left: 4px;\\n line-height: 20px;\\n border: 6px solid #fff;\\n border-radius: 50%;\\n color: #f5f5f5;\\n text-align: center;\\n text-decoration: none;\\n background-color: rgba(43, 140, 12, 0.7);\\n font-size: 20px;\\n font-weight: bold;\\n transition: all 0.3s ease; }\\n.round-button:hover {\\n background-color: #2b8c0c;\\n box-shadow: 0px 0px 10px #ffff64;\\n text-shadow: 0px 0px 10px #ffff64; }\\n.play-button {\\n height: 40px;\\n width: 65px;\\n background-color: rgba(0, 173, 239, 0.9);\\n border-radius: 5px;\\n position: absolute;\\n cursor: pointer;\\n top: 50%;\\n left: 0;\\n right: 0;\\n margin: 0 auto;\\n transform: translateY(-50%); }\\n.play-button:hover {\\n background-color: #dfd269; }\\n.play-button:after {\\n content: \\\"\\\";\\n display: block;\\n position: absolute;\\n top: 10.5px;\\n left: 24px;\\n margin: 0 auto;\\n border-style: solid;\\n border-width: 9.5px 0 9.5px 17px;\\n border-color: transparent transparent transparent white; }\\n.pb-video-container {\\n padding-top: 20px; }\\n.pb-video-container h2 {\\n margin: 2rem 0; }\\n.pb-video {\\n border: 1px solid #e6e6e6;\\n padding: 5px;\\n cursor: pointer; }\\n.pb-video img {\\n border: 1px solid #ced4da;\\n border-bottom: 0;\\n border-top-left-radius: 5px;\\n border-top-right-radius: 5px; }\\n.pb-video label {\\n border-bottom-left-radius: 5px !important;\\n border-bottom-right-radius: 5px !important; }\\n.pb-video .form-control {\\n border-radius: 0; }\\n.pb-video:hover {\\n background: #2c3e50; }\\n.pb-video-frame {\\n transition: width 2s, height 2s; }\\n.pb-video-frame:hover {\\n height: 300px; }\\n.pb-row {\\n margin-bottom: 10px; }\\napp-vimeo-player {\\n margin: auto; }\\n.skinsList {\\n display: block;\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n font-size: 0;\\n text-align: left; }\\n.skinsList > * {\\n font-size: 14px;\\n font-size: 1ex;\\n font-size: 1rem; }\\n.skinsList ol {\\n max-width: 100% !important; }\\n.skinsList .skinsSection {\\n text-align: center;\\n margin: 30px auto;\\n font-size: 16px;\\n border-bottom: 2px solid #dedcdc; }\\n.skinsList .skinsSection > h3 {\\n font-size: 20px;\\n margin: 40px auto 10px auto;\\n padding: 30px 10px 10px 10px;\\n color: #545454;\\n font-weight: 400;\\n border-radius: 0;\\n display: block;\\n background: transparent; }\\n.skinsList .skinsSection > p {\\n font-size: 0.9em;\\n text-align: left;\\n margin: 0 auto;\\n color: #656d78; }\\n.skinsList.open-look .skinsList-item {\\n height: auto; }\\n.skinsList.open-look .skinsList-item .thumb {\\n height: 125px; }\\n.skinsList.open-look .skinsList-item .thumb > div:after {\\n font-family: inherit;\\n content: \\\"Preview\\\";\\n color: #fff;\\n position: absolute;\\n display: block;\\n width: auto;\\n height: auto;\\n font-size: 10px;\\n background: #000;\\n background: rgba(24, 24, 24, 0.62);\\n border-radius: 20px;\\n left: 50%;\\n top: 50%;\\n margin: -8px 0 0 -3em;\\n text-transform: uppercase;\\n padding: 5px 10px;\\n content: \\\"Preview\\\";\\n left: 50%;\\n opacity: 0; }\\n.skinsList.open-look .skinsList-item .wrap {\\n padding: 20px;\\n margin: 0 !important;\\n position: relative !important;\\n top: 0 !important;\\n left: 0; }\\n.skinsList.open-look .skinsList-item .title {\\n height: 2em;\\n overflow: hidden; }\\n.skinsList.open-look .skinsList-item .details {\\n height: auto;\\n max-height: 250px;\\n visibility: visible;\\n opacity: 1; }\\n.skinsList.open-look .skinsList-item .features {\\n min-height: 24px; }\\n.skinsList.open-look .skinsList-item .descr {\\n min-height: 6em;\\n overflow: hidden; }\\n.ellipses {\\n display: block;\\n display: -webkit-box;\\n -webkit-line-clamp: 2;\\n -webkit-box-orient: vertical;\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n.completedOn {\\n color: #6e7277 !important; }\\n.completedStatus {\\n color: green;\\n position: absolute;\\n top: 2px;\\n left: 5px;\\n background: white;\\n border-radius: 50%; }\\n@media screen and (max-width: 1080px) {\\n .skinsList {\\n text-align: center; } }\\n.skinsList-item {\\n text-align: left;\\n font-size: 1ex;\\n position: relative; }\\n.skinsList-item .wrap {\\n background: #fff;\\n border-bottom: 1px solid #c7c8cd;\\n border-radius: 2px;\\n padding: 20px 0;\\n /* @include transition(.3s ease all); */\\n top: 0;\\n position: relative;\\n transform: scale3d(1, 1, 1); }\\n.skinsList-item:last-child .wrap {\\n border: 0; }\\n.skinsList-item .thumb {\\n background: #ccd0d9;\\n display: block;\\n width: 224px;\\n max-width: 100%;\\n height: 140px;\\n overflow: hidden;\\n font-size: 0;\\n position: relative;\\n cursor: pointer; }\\n.skinsList-item .thumb img {\\n min-width: 100%; }\\n.skinsList-item .img-fluid {\\n border: 3px solid #dfd269; }\\n.skinsList-item .thumb > div:after {\\n font-family: inherit;\\n content: \\\"click to preview\\\";\\n color: #fff;\\n position: absolute;\\n display: block;\\n width: auto;\\n height: auto;\\n font-size: 10px;\\n background: #000;\\n background: rgba(24, 24, 24, 0.62);\\n border-radius: 20px;\\n left: 43%;\\n top: 50%;\\n margin: -8px 0 0 -3em;\\n text-transform: uppercase;\\n padding: 5px 10px; }\\n/* @include transition(.3s ease all); */\\n.skinsList-item .features {\\n margin: 10px auto; }\\n.skinsList-item .features .icon-premium {\\n color: #ffc330;\\n /*display: none;*/ }\\n.skinsList-item.premium .features .icon-premium {\\n display: inline-block; }\\n.skinsList-item .title {\\n color: #0f6c86;\\n font-size: 16px;\\n line-height: 1.1em;\\n font-weight: bold;\\n text-transform: none;\\n white-space: normal; }\\n.skinsList-item .descr {\\n color: #717171;\\n font-size: 16px;\\n margin: 10px auto;\\n white-space: normal; }\\n.skinsList-item .duration {\\n color: #212121;\\n font-size: 14px;\\n font-weight: 500; }\\n.skinsList-item:hover {\\n z-index: 200; }\\n.skinsList-item:hover .thumb > div:after {\\n -webkit-animation-name: bounceIn;\\n animation-name: bounceIn;\\n -webkit-animation-duration: 450ms;\\n animation-duration: 450ms;\\n -webkit-animation-timing-function: linear;\\n animation-timing-function: linear;\\n -webkit-animation-fill-mode: forwards;\\n animation-fill-mode: forwards; }\\n.skinsList-item:hover .details {\\n height: auto;\\n max-height: 250px;\\n visibility: visible;\\n opacity: 1; }\\n.skinsList-item.visited .wrap:before {\\n content: \\\"\\\";\\n display: block;\\n width: 50px;\\n height: 50px;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: 5; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21lZGlhcXVlcmllcy5zY3NzIiwic3JjL2FwcC9jb250cm9scy9NZW1iZXJzL215LXZpZGVvLWxpc3QvbXktdmlkZW8tbGlzdC5jb21wb25lbnQuc2NzcyIsIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21peGlucy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9zdHlsZXMvYmFzZS9fY29sb3JzLnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvc2hhcmVkL3N0eWxlcy9iYXNlL19zZXR0aW5ncy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL2NvbnRyb2xzL01lbWJlcnMvbXktdmlkZW8tbGlzdC9teS12aWRlby1saXN0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThCQTs7Q0M1QkM7QUMwS0Qsb0NBQUE7QUM1S0E7Ozs7Ozs7Ozs7Q0ZjQztBRStERCxTQUFBO0FBVUEsb0JBQUE7QUFLQSx5QkFBQTtBQUlBLDJEQUFBO0FBRUEsaUJBQUE7QUFvQkEsT0FBQTtBQ25IQSwrQkFBQTtBQWlCQTs7RUhJRTtBR21CRjs7RUhoQkU7QUc4QkY7O0VIM0JFO0FHeUNGOztFSHRDRTtBRytDRjs7RUg1Q0U7QUdrRUY7O0VIL0RFO0FHaUZGOztFSDlFRTtBR29GRjs7RUhqRkU7QUc0RkY7O0VIekZFO0FHZ0dGOztDSDdGQztBR3FHRDs7RUhsR0U7QUd3R0Y7O0VIckdFO0FHOEdGOztDSDNHQztBR3FIRDs7Q0hsSEM7QUcwSEQ7O0VIdkhFO0FHOEhGOztFSDNIRTtBR3NJRixrQkFBQTtBQzFN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Q0UsWUFBWSxFQUFBO0FBR2Q7RUFDRSxnQ0FBd0I7VUFBeEIsd0JBQXdCO0VBQ3hCLGlDQUF5QjtVQUF6Qix5QkFBeUI7RUFDekIseUNBQWlDO1VBQWpDLGlDQUFpQztFQUNqQyxxQ0FBNkI7VUFBN0IsNkJBQTZCLEVBQUE7QUFHL0I7RUFDRSxZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLG1CQUFtQjtFQUNuQixVQUFVLEVBQUE7QUFHWjtFQUNFLFdBQVc7RUFDWCxjQUFjO0VBQ2QsV0FBVztFQUNYLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLE1BQU07RUFDTixVQUFVLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb250cm9scy9NZW1iZXJzL215LXZpZGVvLWxpc3QvbXktdmlkZW8tbGlzdC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vICBBdXRob3I6IFJhZmFsIEJyb21pcnNraVxuLy8gIHd3dzogaHR0cDovL3JhZmFsYnJvbWlyc2tpLmNvbS9cbi8vICBnaXRodWI6IGh0dHA6Ly9naXRodWIuY29tL3BhcmFub2lkYS9zYXNzLW1lZGlhcXVlcmllc1xuLy9cbi8vICBMaWNlbnNlZCB1bmRlciBhIE1JVCBMaWNlbnNlXG4vL1xuLy8gIFZlcnNpb246XG4vLyAgMS42LjFcbi8vIC0tLSBnZW5lcmF0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gbXEoJGFyZ3MuLi4pIHtcbiAgJG1lZGlhLXR5cGU6ICdvbmx5IHNjcmVlbic7XG4gICRtZWRpYS10eXBlLWtleTogJ21lZGlhLXR5cGUnO1xuICAkYXJnczoga2V5d29yZHMoJGFyZ3MpO1xuICAkZXhwcjogJyc7XG4gIEBpZiBtYXAtaGFzLWtleSgkYXJncywgJG1lZGlhLXR5cGUta2V5KSB7XG4gICAgJG1lZGlhLXR5cGU6IG1hcC1nZXQoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gICAgJGFyZ3M6IG1hcC1yZW1vdmUoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gIH1cbiAgQGVhY2ggJGtleSxcbiAgJHZhbHVlIGluICRhcmdzIHtcbiAgICBAaWYgJHZhbHVlIHtcbiAgICAgICRleHByOiBcIiN7JGV4cHJ9IGFuZCAoI3ska2V5fTogI3skdmFsdWV9KVwiO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgI3skbWVkaWEtdHlwZX0gI3skZXhwcn0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cblxuLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cblxuQG1peGluIGhkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAje3JvdW5kKCRyYXRpbyo5Nil9ZHBpKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gJG9yaWVudGF0aW9uOiBsYW5kc2NhcGUgfCBwb3J0cmFpdFxuQG1peGluIHRhYmxldCgkb3JpZW50YXRpb246IGZhbHNlKSB7XG4gICRtaW46IDI2OHB4O1xuICAkbWF4OiAxMDI0cHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4LCAkb3JpZW50YXRpb246ICRvcmllbnRhdGlvbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIHNtYWxsIGRlc2t0b3AgLSAxMDI1IDwtPiAxMjgwXG5AbWl4aW4gc21hbGwtZGVza3RvcCgpIHtcbiAgJG1pbjogMTAyNXB4O1xuICAkbWF4OiAxMjgwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gbWVkaXVtIGRlc2t0b3AgLSAxMjgxIDwtPiAxNDQwXG5AbWl4aW4gbWVkaXVtLWRlc2t0b3AoKSB7XG4gICRtaW46IDEyODFweDtcbiAgJG1heDogMTQ0MHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIGxhcmdlIGRlc2t0b3AgLSAxNDQxIDwtPiAxNjAwXG5AbWl4aW4gbGFyZ2UtZGVza3RvcCgpIHtcbiAgJG1pbjogMTQ0MXB4O1xuICAkbWF4OiAxNjAwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8geGxhcmdlIGRlc2t0b3AgLSAxNjAxIC0+IGluZmluaXR5XG5AbWl4aW4geGxhcmdlLWRlc2t0b3AoKSB7XG4gICRtaW46IDE2MDFweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBkZXNrdG9wIG92ZXJsYXlcbkBtaXhpbiBkZXNrdG9wLW92ZXJsYXkoKSB7XG4gICAgJG1pbjogMjY4cHg7XG4gICAgJG1heDogOTI2cHg7XG4gICAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cbi8qIEZpcmVmb3ggc3BlY2lmaWMgc3R5bGVzIGdvIGhlcmUgKi9cbi8qXG5DT01NT04gQ09MT1IgTkFNRVNcblxuVGhlc2UgY29sb3JzIGFyZSBtYXBwZWQgdG8gdGhlIG5hbWVzIGZyb20gdGhlIG9mZmljaWFsIGNvbG9ycy5cbkluc3RlYWQgb2YgaGF2aW5nIG5hbWVzIGxpa2UgYGNydXNoYCBvciBgYmxhemVgLCBkZXZlbG9wZXJzIHdpbGwgdXNlIHRoZWlyIGNvbW1vbiwgbm9uLW1hcmtldGl6ZWQgbmFtZS5cbmVnLiAkcmVkOiBjcnVzaFxuICAgICRvcmFuZ2U6IGJsYXplXG5cblRoZW4sIHVzZSB0aGUgYGhyYS1jb2xvcmAgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb2xvclxuZWcuIGNvbG9yOiBocmEtY29sb3IoJHJlZClcbiovXG4vKiAqKioqICovXG4vKiAqIENoYXJ0cyBDb2xvcnMgKi9cbi8qIGluZm8gdGV4dCBiYWNrZ3JvdW5kICovXG4vKiBVc2UgZm9sbG93aW5nIGNsYXNzZXMgZm9yIGFlc3RoZXRpY3Mgb25seSAtIE5ldyBVSSBLSVQgKi9cbi8qIENvbG9yIE1hcHBpbmcqL1xuLyplbmRzKi9cbi8qIFVzZWQgZm9yIGdyaWRzIGFuZCBtYXJnaW5zICovXG4vKlxuICBmb250IHNpemVzXG4gKi9cbi8qXG4gKiBIZWFkZXIgc2l6ZVxuICovXG4vKlxuICogRGV2aWNlIEdyb3VwIHNldHRpbmdzXG4gKi9cbi8qXG4gKiBCb3JkZXIgc2V0dGluZ3NcbiAqL1xuLypcbiAqIFNoYWRvd3MgZ28gYnkgbGV2ZWxcbiAqL1xuLypcbiAqIFBhZGRpbmcgc2V0dGluZ3NcbiAqL1xuLypcbiAqIElucHV0c1xuICovXG4vKlxuICogVG9vbFRpcHNcbiAqL1xuLypcbiAqIEFjdGlvbiBiYXIgc2l6ZXNcbiAqL1xuLyoqXG4qICBEZXZpY2UgZ3JpZCBzaXplc1xuKi9cbi8qXG4gKiBGb2N1cyBib3JkZXJcbiAqL1xuLypcbiAqIEJvcmRlclxuICovXG4vKlxuICogUG9wLXVwXG4qL1xuLypcbiogU3RhdHVzIE5vdGlmaWNhdGlvblxuKi9cbi8qXG4gIFJvdW5kIGJ1dHRvbiBzaXplc1xuICovXG4vKlxuICogSW1hZ2UgSWNvbiBTaXplc1xuICovXG4vKiogTW9kYWwgc2l6ZXMgKiovXG4ucm91bmQtYnV0dG9uIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctbGVmdDogNHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgYm9yZGVyOiA2cHggc29saWQgI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjb2xvcjogI2Y1ZjVmNTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDE0MCwgMTIsIDAuNyk7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7IH1cblxuLnJvdW5kLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYjhjMGM7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMTBweCAjZmZmZjY0O1xuICB0ZXh0LXNoYWRvdzogMHB4IDBweCAxMHB4ICNmZmZmNjQ7IH1cblxuLnBsYXktYnV0dG9uIHtcbiAgaGVpZ2h0OiA0MHB4O1xuICB3aWR0aDogNjVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxNzMsIDIzOSwgMC45KTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBtYXJnaW46IDAgYXV0bztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG5cbi5wbGF5LWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZmQyNjk7IH1cblxuLnBsYXktYnV0dG9uOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMC41cHg7XG4gIGxlZnQ6IDI0cHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDkuNXB4IDAgOS41cHggMTdweDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB3aGl0ZTsgfVxuXG4ucGItdmlkZW8tY29udGFpbmVyIHtcbiAgcGFkZGluZy10b3A6IDIwcHg7IH1cbiAgLnBiLXZpZGVvLWNvbnRhaW5lciBoMiB7XG4gICAgbWFyZ2luOiAycmVtIDA7IH1cblxuLnBiLXZpZGVvIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgcGFkZGluZzogNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLnBiLXZpZGVvIGltZyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NlZDRkYTtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4OyB9XG4gIC5wYi12aWRlbyBsYWJlbCB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNXB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDVweCAhaW1wb3J0YW50OyB9XG4gIC5wYi12aWRlbyAuZm9ybS1jb250cm9sIHtcbiAgICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbi5wYi12aWRlbzpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICMyYzNlNTA7IH1cblxuLnBiLXZpZGVvLWZyYW1lIHtcbiAgdHJhbnNpdGlvbjogd2lkdGggMnMsIGhlaWdodCAyczsgfVxuXG4ucGItdmlkZW8tZnJhbWU6aG92ZXIge1xuICBoZWlnaHQ6IDMwMHB4OyB9XG5cbi5wYi1yb3cge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbmFwcC12aW1lby1wbGF5ZXIge1xuICBtYXJnaW46IGF1dG87IH1cblxuLnNraW5zTGlzdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtc2l6ZTogMDtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4uc2tpbnNMaXN0ID4gKiB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zaXplOiAxZXg7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG4uc2tpbnNMaXN0IG9sIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuLnNraW5zTGlzdCAuc2tpbnNTZWN0aW9uIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDMwcHggYXV0bztcbiAgZm9udC1zaXplOiAxNnB4O1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2RlZGNkYzsgfVxuXG4uc2tpbnNMaXN0IC5za2luc1NlY3Rpb24gPiBoMyB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbWFyZ2luOiA0MHB4IGF1dG8gMTBweCBhdXRvO1xuICBwYWRkaW5nOiAzMHB4IDEwcHggMTBweCAxMHB4O1xuICBjb2xvcjogIzU0NTQ1NDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG5cbi5za2luc0xpc3QgLnNraW5zU2VjdGlvbiA+IHAge1xuICBmb250LXNpemU6IDAuOWVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW46IDAgYXV0bztcbiAgY29sb3I6ICM2NTZkNzg7IH1cblxuLnNraW5zTGlzdC5vcGVuLWxvb2sgLnNraW5zTGlzdC1pdGVtIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi5za2luc0xpc3Qub3Blbi1sb29rIC5za2luc0xpc3QtaXRlbSAudGh1bWIge1xuICBoZWlnaHQ6IDEyNXB4OyB9XG5cbi5za2luc0xpc3Qub3Blbi1sb29rIC5za2luc0xpc3QtaXRlbSAudGh1bWIgPiBkaXY6YWZ0ZXIge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgY29udGVudDogXCJQcmV2aWV3XCI7XG4gIGNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjQsIDI0LCAyNCwgMC42Mik7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbjogLThweCAwIDAgLTNlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGNvbnRlbnQ6IFwiUHJldmlld1wiO1xuICBsZWZ0OiA1MCU7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNraW5zTGlzdC5vcGVuLWxvb2sgLnNraW5zTGlzdC1pdGVtIC53cmFwIHtcbiAgcGFkZGluZzogMjBweDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICB0b3A6IDAgIWltcG9ydGFudDtcbiAgbGVmdDogMDsgfVxuXG4uc2tpbnNMaXN0Lm9wZW4tbG9vayAuc2tpbnNMaXN0LWl0ZW0gLnRpdGxlIHtcbiAgaGVpZ2h0OiAyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnNraW5zTGlzdC5vcGVuLWxvb2sgLnNraW5zTGlzdC1pdGVtIC5kZXRhaWxzIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAyNTBweDtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2tpbnNMaXN0Lm9wZW4tbG9vayAuc2tpbnNMaXN0LWl0ZW0gLmZlYXR1cmVzIHtcbiAgbWluLWhlaWdodDogMjRweDsgfVxuXG4uc2tpbnNMaXN0Lm9wZW4tbG9vayAuc2tpbnNMaXN0LWl0ZW0gLmRlc2NyIHtcbiAgbWluLWhlaWdodDogNmVtO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5lbGxpcHNlcyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgfVxuXG4uY29tcGxldGVkT24ge1xuICBjb2xvcjogIzZlNzI3NyAhaW1wb3J0YW50OyB9XG5cbi5jb21wbGV0ZWRTdGF0dXMge1xuICBjb2xvcjogZ3JlZW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAycHg7XG4gIGxlZnQ6IDVweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDgwcHgpIHtcbiAgLnNraW5zTGlzdCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cblxuLnNraW5zTGlzdC1pdGVtIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAxZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uc2tpbnNMaXN0LWl0ZW0gLndyYXAge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M3YzhjZDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBwYWRkaW5nOiAyMHB4IDA7XG4gIC8qIEBpbmNsdWRlIHRyYW5zaXRpb24oLjNzIGVhc2UgYWxsKTsgKi9cbiAgdG9wOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTsgfVxuXG4uc2tpbnNMaXN0LWl0ZW06bGFzdC1jaGlsZCAud3JhcCB7XG4gIGJvcmRlcjogMDsgfVxuXG4uc2tpbnNMaXN0LWl0ZW0gLnRodW1iIHtcbiAgYmFja2dyb3VuZDogI2NjZDBkOTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyMjRweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDE0MHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5za2luc0xpc3QtaXRlbSAudGh1bWIgaW1nIHtcbiAgbWluLXdpZHRoOiAxMDAlOyB9XG5cbi5za2luc0xpc3QtaXRlbSAuaW1nLWZsdWlkIHtcbiAgYm9yZGVyOiAzcHggc29saWQgI2RmZDI2OTsgfVxuXG4uc2tpbnNMaXN0LWl0ZW0gLnRodW1iID4gZGl2OmFmdGVyIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGNvbnRlbnQ6IFwiY2xpY2sgdG8gcHJldmlld1wiO1xuICBjb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgZm9udC1zaXplOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI0LCAyNCwgMjQsIDAuNjIpO1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBsZWZ0OiA0MyU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW46IC04cHggMCAwIC0zZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBhZGRpbmc6IDVweCAxMHB4OyB9XG5cbi8qIEBpbmNsdWRlIHRyYW5zaXRpb24oLjNzIGVhc2UgYWxsKTsgKi9cbi5za2luc0xpc3QtaXRlbSAuZmVhdHVyZXMge1xuICBtYXJnaW46IDEwcHggYXV0bzsgfVxuXG4uc2tpbnNMaXN0LWl0ZW0gLmZlYXR1cmVzIC5pY29uLXByZW1pdW0ge1xuICBjb2xvcjogI2ZmYzMzMDtcbiAgLypkaXNwbGF5OiBub25lOyovIH1cblxuLnNraW5zTGlzdC1pdGVtLnByZW1pdW0gLmZlYXR1cmVzIC5pY29uLXByZW1pdW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLnNraW5zTGlzdC1pdGVtIC50aXRsZSB7XG4gIGNvbG9yOiAjMGY2Yzg2O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjFlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9XG5cbi5za2luc0xpc3QtaXRlbSAuZGVzY3Ige1xuICBjb2xvcjogIzcxNzE3MTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBtYXJnaW46IDEwcHggYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgfVxuXG4uc2tpbnNMaXN0LWl0ZW0gLmR1cmF0aW9uIHtcbiAgY29sb3I6ICMyMTIxMjE7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuXG4uc2tpbnNMaXN0LWl0ZW06aG92ZXIge1xuICB6LWluZGV4OiAyMDA7IH1cblxuLnNraW5zTGlzdC1pdGVtOmhvdmVyIC50aHVtYiA+IGRpdjphZnRlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbjtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA0NTBtcztcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsgfVxuXG4uc2tpbnNMaXN0LWl0ZW06aG92ZXIgLmRldGFpbHMge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1heC1oZWlnaHQ6IDI1MHB4O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5za2luc0xpc3QtaXRlbS52aXNpdGVkIC53cmFwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDU7IH1cbiIsIkBpbXBvcnQgJy4vbWVkaWFxdWVyaWVzJztcblxuLy8vIC8gc3R5bGVndWlkZTppZ25vcmU6c3RhcnRcbi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcbi8vLyBSZW1vdmVzIHRoZSB1bml0IChlLmcuIHB4LCBlbSwgcmVtKSBmcm9tIGEgdmFsdWUsIHJldHVybmluZyB0aGUgbnVtYmVyIG9ubHkuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgc2FtZSBudW1iZXIsIHNhbnMgdW5pdC5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG5cbi8vLyBDb252ZXJ0cyBvbmUgb3IgbW9yZSBwaXhlbCB2YWx1ZXMgaW50byBtYXRjaGluZyByZW0gdmFsdWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gVGhlIGJhc2UgdmFsdWUgdG8gdXNlIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGByZW1gLiBJZiB5b3UncmUgdXNpbmcgRm91bmRhdGlvbiBvdXQgb2YgdGhlIGJveCwgdGhpcyBpcyAxNnB4LiBJZiB0aGlzIHBhcmFtZXRlciBpcyBgbnVsbGAsIHRoZSBmdW5jdGlvbiB3aWxsIHJlZmVyZW5jZSB0aGUgYCRiYXNlLWZvbnQtc2l6ZWAgdmFyaWFibGUgYXMgdGhlIGJhc2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gQSBsaXN0IG9mIGNvbnZlcnRlZCB2YWx1ZXMuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2U6IG51bGwpIHtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2U9PW51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgLy8gVGhpcyBpcyBiZWNhdXNlIDEwMCUgZm9udCBzaXplID0gMTZweCBpbiBtb3N0IGFsbCBicm93c2Vyc1xuICBAaWYgdW5pdCgkYmFzZSk9PSclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuICBAaWYgJGNvdW50PT0xIHtcbiAgICBAcmV0dXJuIC16Zi10by1yZW0oJHZhbHVlcywgJGJhc2UpO1xuICB9XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cbiAgQHJldHVybiAkcmVtLXZhbHVlcztcbn1cblxuLy8gQ29udmVydHMgYSB1bml0bGVzcywgcGl4ZWwsIG9yIHJlbSB2YWx1ZSB0byBlbSwgZm9yIHVzZSBpbiBicmVha3BvaW50cy5cbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XG4gIC8vIFBpeGVsIGFuZCB1bml0bGVzcyB2YWx1ZXMgYXJlIGNvbnZlcnRlZCB0byByZW1zXG4gIEBpZiB1bml0KCR2YWx1ZSk9PSdweCcgb3IgdW5pdGxlc3MoJHZhbHVlKSB7XG4gICAgJHZhbHVlOiByZW0tY2FsYygkdmFsdWUsICRiYXNlOiAxNnB4KTtcbiAgfVxuICAvLyBUaGVuIHRoZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gZW1zXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBCYXNlIGZvciBwaXhlbCBjb252ZXJzaW9uLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cbkBmdW5jdGlvbiAtemYtdG8tcmVtKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0nbnVtYmVyJyB7XG4gICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpKycgd2FzIHBhc3NlZCB0byByZW0tY2FsYygpLCB3aGljaCBpcyBub3QgYSBudW1iZXIuJztcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9J3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSkgKiAxcmVtO1xuICB9XG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZT09MHJlbSB7XG4gICAgJHZhbHVlOiAwO1xuICB9XG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vLy8gQW5pbWF0aW9uIGtleWZyYW1lcyBhdXRvcHJlZml4ZXJcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYW5pbWF0aW9uLW5hbWUgLSBOYW1lIG9mIHRoZSBhbmltYXRpb24uXG5AbWl4aW4ga2V5ZnJhbWVzKCRhbmltYXRpb24tbmFtZSkge1xuICBALXdlYmtpdC1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW1vei1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW1zLWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtby1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBAa2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIEFuaW1hdGlvbiBhdXRvcHJlZml4ZXJcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3RyIC0gY3NzMyBhbmltYXRpb24gc3BlYy5cbkBtaXhpbiBhbmltYXRpb24oJHN0cikge1xuICAtd2Via2l0LWFuaW1hdGlvbjogI3skc3RyfTtcbiAgLW1vei1hbmltYXRpb246ICN7JHN0cn07XG4gIC1tcy1hbmltYXRpb246ICN7JHN0cn07XG4gIC1vLWFuaW1hdGlvbjogI3skc3RyfTtcbiAgYW5pbWF0aW9uOiAjeyRzdHJ9O1xufVxuXG4vLy8gQm94IHNoYWRvdyBhdXRvcHJlZml4ZXJcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3RyIC0gY3NzMyBib3gtc2hhZG93IHNwZWMuXG5AbWl4aW4gYm94LXNoYWRvdygkc3RyKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogI3skc3RyfTtcbiAgLW1vei1ib3gtc2hhZG93OiAjeyRzdHJ9O1xuICAtby1ib3gtc2hhZG93OiAjeyRzdHJ9O1xuICBib3gtc2hhZG93OiAjeyRzdHJ9O1xufVxuXG4vLy8gZ3JhZGllbnQgYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBncmFkaWVudCgkY29sb3IxLCAkY29sb3IyKSB7XG4gIGJhY2tncm91bmQ6ICN7JGNvbG9yMX07XG4gIC8qIEZvciBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IGdyYWRpZW50cyAqL1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgjeyRjb2xvcjF9LCAjeyRjb2xvcjJ9KTtcbiAgLyogRm9yIFNhZmFyaSA1LjEgdG8gNi4wICovXG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCgjeyRjb2xvcjF9LCAjeyRjb2xvcjJ9KTtcbiAgLyogRm9yIE9wZXJhIDExLjEgdG8gMTIuMCAqL1xuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgjeyRjb2xvcjF9LCAjeyRjb2xvcjJ9KTtcbiAgLyogRm9yIEZpcmVmb3ggMy42IHRvIDE1ICovXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjeyRjb2xvcjF9LCAjeyRjb2xvcjJ9KTtcbiAgLyogU3RhbmRhcmQgc3ludGF4ICovXG59XG5cbkBtaXhpbiB2ZXJ0aWNhbC1ncmFkaWVudC1kaXZpZGVyKCl7XG4gIHdpZHRoOiAxcHg7XG4gIHBhZGRpbmctbGVmdDogMXB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCBocmEtY29sb3IoJGdyZXksIDIwKSwgJHdoaXRlKTtcbn1cblxuXG4vLy8gSUUgb25seSBxdWVyeVxuQG1peGluIGllLW9ubHkoKSB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSB7XG4gICAgLyogSUUxMCsgc3BlY2lmaWMgc3R5bGVzIGdvIGhlcmUgKi9cbiAgICBAY29udGVudFxuICB9XG59XG5cbkBtaXhpbiBjcmVhdGUtYW5pbWF0aW9uKCRhbmktbmFtZSkge1xuICBhbmltYXRpb246ICRhbmktbmFtZSBmb3J3YXJkcyAzMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuXG5AbWl4aW4gY3JlYXRlLXRyYW5zaXRpb24oJHByb3BlcnR5LW5hbWUpIHtcbiAgdHJhbnNpdGlvbjogJHByb3BlcnR5LW5hbWUgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cbi8vLyBFZGdlIG9ubHkgcXVlcnlcbkBtaXhpbiBlZGdlLW9ubHkoKSB7XG4gIEBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgIC8qIEVkZ2Ugc3BlY2lmaWMgc3R5bGVzIGdvIGhlcmUgKi9cbiAgICBAY29udGVudFxuICB9XG59XG5cbi8qIEZpcmVmb3ggc3BlY2lmaWMgc3R5bGVzIGdvIGhlcmUgKi9cbkBtaXhpbiBmaXJlZm94LW9ubHkoKSB7XG4gIEBzdXBwb3J0cyAoLW1vei1hcHBlYXJhbmNlOm5vbmUpIHtcbiAgICBAY29udGVudFxuICB9XG59XG5cblxuLy8gc3R5bGVndWlkZTppZ25vcmU6ZW5kIiwiLypcbkNPTU1PTiBDT0xPUiBOQU1FU1xuXG5UaGVzZSBjb2xvcnMgYXJlIG1hcHBlZCB0byB0aGUgbmFtZXMgZnJvbSB0aGUgb2ZmaWNpYWwgY29sb3JzLlxuSW5zdGVhZCBvZiBoYXZpbmcgbmFtZXMgbGlrZSBgY3J1c2hgIG9yIGBibGF6ZWAsIGRldmVsb3BlcnMgd2lsbCB1c2UgdGhlaXIgY29tbW9uLCBub24tbWFya2V0aXplZCBuYW1lLlxuZWcuICRyZWQ6IGNydXNoXG4gICAgJG9yYW5nZTogYmxhemVcblxuVGhlbiwgdXNlIHRoZSBgaHJhLWNvbG9yYCBmdW5jdGlvbiB0byBnZXQgdGhlIGNvbG9yXG5lZy4gY29sb3I6IGhyYS1jb2xvcigkcmVkKVxuKi9cblxuJHRoZW1lLWdyZWVuOiAjZGZkMjY5O1xuJHRoZW1lLWNvbG9yOiAkdGhlbWUtZ3JlZW47XG4kYmx1ZTogYmx1ZTtcbiRjeWFuOiBjeWFuO1xuJGdyZXk6IGdyZXk7XG4kcmVkOiBjcnVzaDtcbiRvcmFuZ2U6IGJsYXplO1xuJHllbGxvdzogc3Vuc2V0LCA2MDtcbiRncmVlbjogc2VhZm9hbTtcbiRsaWdodC1ncmVlbjogc2Vhd2VlZDtcbiRkYXJrLWdyZWVuOiBtYXJpbmU7XG4kYnJvd246IGJyb3duO1xuJHB1cnBsZTogcHVycGxlO1xuJHN1bnNldDogc3Vuc2V0O1xuJHBpbms6IHBpbms7XG5cbiRuZXdncmV5OiBuZXdncmV5O1xuJG5ld2JsdWU6IG5ld2JsdWU7XG4kbmV3Y3lhbjogbmV3Y3lhbjtcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIGhtYSdzIENvbG91ciBQYWxldHRlXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4kY29sb3JzOiAoXG4gICAgYmx1ZTogKDU6ICNmM2ZiZmUsIDEwOiAjZTJmNGZiLCAyMDogI2JhZTVmNSwgNDA6ICM3MWM4ZjEsIDYwOiAjMzJiNmU5LCA4MDogIzAwOTlkMywgMTAwOiAjMDA3NGFhLCAxMjA6ICMwNjRjN2MpLFxuICAgIGNydXNoOiAoNTogI2ZmZjdmNiwgMTA6ICNmZWYwZWQsIDIwOiAjZmRkZmRjLCA0MDogI2ZhYzFiYSwgNjA6ICNmNDgyNzIsIDgwOiAjZjE2MTRmLCAxMDA6ICNlMzI3MjIsIDExMDojYzEzZjJiLCAxMjA6ICNhNzFlMjIpLFxuICAgIGN5YW46ICg1OiAjZjJmOWY5LCAxMDogI2U2ZjRmNCwgMjA6ICNjY2VhZWEsIDQwOiAjOWFkN2Q2LCA2MDogIzY4YzVjNCwgODA6ICMzNmIxYjAsIDEwMDogIzAyOWY5ZCwgMTIwOiAjMDI2ZjZmKSxcbiAgICBibGF6ZTogKDU6ICNmZmY3ZjMsIDEwOiAjZmZmMWU5LCAyMDogI2ZjZTFkMywgNDA6ICNmY2M1YTcsIDYwOiAjZjdhNzdiLCA4MDogI2Y2ODk0ZCwgMTAwOiAjZjI2YjIxLCAxMjA6ICNiNzNlMjUpLFxuICAgIGdyZXk6ICg1OiAjZmFmYmZiLCAxMDogI2VjZWZmMCwgMjA6ICNlNGU3ZTksIDQwOiAjYThiMmI3LCA2MDogIzgyOGQ5MywgODA6ICM1QjY2NzAsIDEwMDogIzNkNDY0ZCwgMTIwOiAjMTQxZTI1KSxcbiAgICBzZWFmb2FtOiAoNTogI2VmZjlmOCwgMTA6ICNlNGY3ZjMsIDIwOiAjY2ZlZGU4LCA0MDogI2E1ZWFkYiwgNjA6ICM2MWQ2YjgsIDgwOiAjMmZkMmE4LCAxMDA6ICMxZWFkOGEsIDEyMDogIzBiNzA1ZCksXG4gICAgc2Vhd2VlZDogKDU6ICNmOGZiZjYsIDEwOiAjZjJmOGVkLCAyMDogI2UzZjBkOSwgNDA6ICNjYmU0YjUsIDYwOiAjYjBkNzhlLCA4MDogIzk1Y2I2YSwgMTAwOiAjN2FjMTQyLCAxMjA6ICM0OTkxNDIpLFxuICAgIG1hcmluZTogKDU6ICNmN2Y5ZjMsIDEwOiAjZjFmNGU4LCAyMDogI2U0ZWFkMiwgNDA6ICNjYmQ5YTcsIDYwOiAjYmZkYjg1LCA4MDogI2FlZDI1NSwgMTAwOiAjN2FhMTNlLCAxMjA6ICM0YzczMzYpLFxuICAgIHBlYmJsZTogKDU6ICNmYmZjZmMsIDEwOiAjZjVmNmY2LCAyMDogI2U5ZThlOSwgNDA6ICNkNWQ0ZDUsIDYwOiAjYWFhYWFiLCA4MDogIzdjN2M4MSwgMTAwOiAjNTQ1MzU1LCAxMjA6ICMyODI3MmIpLFxuICAgIHN1bnNldDogKDU6ICNmZmZkZWUsIDEwOiAjZmZmYmRiLCAyMDogI2ZkZjdiNCwgNDA6ICNmZmY1N2UsIDYwOiAjZmZmMTAwLCA4MDogI2ZiYWQxYywgMTAwOiAjZjQ3ZjFmLCAxMjA6ICNjOTU0MjgpLFxuICAgIGJyb3duOiAoNTogI2Y3ZjRmMiwgMTA6ICNlYWU0ZTEsIDIwOiAjZDhjZWNiLCA0MDogI2JhYWJhNSwgNjA6ICM5NjgzN2MsIDgwOiAjNzc1ZDUzLCAxMDA6ICM1OTM4MmMsIDEyMDogIzJmMTgwZCksXG4gICAgcHVycGxlOiAoNTogI2YyZWZmNywgMTA6ICNlOGRmZWYsIDIwOiAjZDdjOWUzLCA0MDogI2MxYWVkNSwgNjA6ICNhMDg1YmUsIDgwOiAjN2I2MWFhLCAxMDA6ICM2NjRmYTEsIDEyMDogIzQyMmU4NSksXG4gICAgcGluazogKDU6ICNmZWY0ZjgsIDEwOiAjZmNlN2VmLCAyMDogI2ZhZGFlMSwgNDA6ICNmNGEyYzIsIDYwOiAjZWQ3M2E0LCA4MDogI2U5NDU4NiwgMTAwOiAjZTMxNTY3LCAxMjA6ICNhYjFkNDEpLFxuXG4gICAgLy8gTmV3IFVJIEtpdCBjb2xvcnMgLSBuZXcgcHJlZml4IHdpbGwgYmUgcmVtb3ZlZCBvbmNlIHRoZSBtaWdyYXRpb24gaXMgY29tcGxldGVkXG4gICAgLy8gSXQgYWxzbyBtYWtlcyBzdXJlIHRoYXQgY29sb3IgdmFyaWFibGVzIGFyZSB1c2VkXG4gICAgbmV3Z3JleTogKDU6ICNmY2ZjZmMsIDEwOiAjZjdmN2Y3LCAyMDogI2YyZjJmMiwgNDA6ICNlOWU5ZTksIDUwOiAjYzdjN2M3LCA2MDogI2E5YTlhOSwgNzA6ICM4MDgwODAsIDgwOiAjNmI2YjZiLDEwMDogIzRiNGI0YiwxMjA6IzI5MjkyOSksXG4gICAgbmV3Ymx1ZTogKDU6ICNmMGY2ZmEsIDEwOiAjZTJlZWY1LCAyMDogI2I4ZDVlNywgNDA6ICM4ZWJiZDcsIDUwOiAjNjlhMWM3LCA1NTogIzRmOGZiZCwgNjU6ICMzODdlYjMsIDcwOiAjMmY3MmE4LCA4MDogIzI1NjI5NywgMTAwOiAjMWQ1Mjg1LCAxMjA6ICMxMDM3NjYpLFxuICAgIG5ld2N5YW46ICg1OiAjZjBmNmZhLCAxMDogI2UyZWVmNSwgMjA6ICNiOGQ1ZTcsIDQwOiAjOGViYmQ3LCA1MDogIzY5YTFjNywgNTU6ICM0ZjhmYmQsIDY1OiAjMzg3ZWIzLCAxMDA6ICMyZjcyYTgsIDEyMDogIzI1NjI5NywgMTQwOiAjMWQ1Mjg1LCAxNjA6ICMxMDM3NjYpLFxuKTtcblxuQGZ1bmN0aW9uIGhyYS1jb2xvcigkY29sb3IsICR2YWx1ZTogMTAwKSB7XG4gICAgJHNlbGVjdGVkQ29sb3I6ICRjb2xvcjtcblxuICAgIEBpZiAodHlwZS1vZigkY29sb3IpID09ICdsaXN0Jykge1xuICAgICAgICAkc2VsZWN0ZWRDb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICAgICAgICR2YWx1ZTogbnRoKCRjb2xvciwgMik7XG4gICAgfVxuXG4gICAgJGNvbG9yLW1hcDogbWFwLWdldCgkY29sb3JzLCAkc2VsZWN0ZWRDb2xvcik7XG4gICAgQGlmICgkY29sb3ItbWFwID09IG51bGwpIHtcbiAgICAgICAgQGVycm9yICRzZWxlY3RlZENvbG9yICsgJyBpcyBub3QgcGFydCBvZiB0aGUgY29sb3IgcGFsZXR0ZSc7XG4gICAgfVxuICAgIEByZXR1cm4gbWFwLWdldCgkY29sb3ItbWFwLCAkdmFsdWUpO1xufVxuXG4kYmxhY2s6IGhyYS1jb2xvcigkZ3JleSwgMTIwKTtcbiR3aGl0ZTogcmdiKDI1NSwgMjU1LCAyNTUpO1xuJGNvbG9yLWdyYXktdHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50aXplKGhyYS1jb2xvcigkZ3JleSksIDAuOCk7XG4kaG92ZXItY29sb3I6IGhyYS1jb2xvcigkZ3JleSwgMjApO1xuXG5cbi8qICoqKiogKi9cbiRzdWNjZXNzLWNvbG9yOiBocmEtY29sb3IoJGdyZWVuKTtcbiR3YXJuaW5nLWNvbG9yOiBocmEtY29sb3IoJHllbGxvdyk7XG4kYWxlcnQtY29sb3I6IGhyYS1jb2xvcigkcmVkKTtcbiRjb2xvci1pbnZhbGlkOiBocmEtY29sb3IoJHJlZCk7XG4kZGlzYWJsZWQtY29sb3I6IGhyYS1jb2xvcigkZ3JleSwgMTApO1xuJGRpc2FibGVkLWJvcmRlcjogaHJhLWNvbG9yKCRncmV5LCA0MCk7XG4kY29sb3ItaHJhLWFuY2hvcjogaHJhLWNvbG9yKCRibHVlKTtcbiRkaXNhYmxlZC1mb3JlLWNvbG9yOiBocmEtY29sb3IoJGdyZXksIDQwKTtcblxuLyogKiBDaGFydHMgQ29sb3JzICovXG4kc3RhY2tlZC10b29sdGlwLWNpcmNsZS1iZzogIzNmNDA0MjtcbiRjaGFydC10b29sdGlwLWNpcmNsZTogI2ZmODk0YztcbiRkb251dC1jb3VudDogI2ZmNmI1NztcblxuLyogaW5mbyB0ZXh0IGJhY2tncm91bmQgKi9cbiRpbmZvLWJhY2tncm91bmQ6ICNmZmZkZTY7XG5cblxuLyogVXNlIGZvbGxvd2luZyBjbGFzc2VzIGZvciBhZXN0aGV0aWNzIG9ubHkgLSBOZXcgVUkgS0lUICovXG4vLyBTdGFuZGFyZGlzZSB2YXJpYWJsZXMgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZiBkaXJlY3QgY29sb3JzXG4vKiBDb2xvciBNYXBwaW5nKi9cbiRwcmltYXJ5LWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCA3MCk7XG4kcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Ymx1ZSwgMTAwKTtcbiRwcmltYXJ5LXRleHQ6JHdoaXRlO1xuXG4kZGVsZXRlLWJhY2tncm91bmQ6IGhyYS1jb2xvcigkcmVkLCAxMTApO1xuXG4kc2Vjb25kYXJ5LXRleHQ6aHJhLWNvbG9yKCRuZXdibHVlLCA1NSk7XG4kc2Vjb25kYXJ5LWJhY2tncm91bmQ6JHdoaXRlO1xuJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Ymx1ZSwgNSk7XG4kc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdncmV5LCA1MCk7XG4kc2Vjb25kYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kOiRzZWNvbmRhcnktdGV4dDtcblxuJGZsYXQtY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgODApO1xuJGZsYXQtaG92ZXI6IGhyYS1jb2xvcigkbmV3Z3JleSwgMTAwKTtcbiRmbGF0LWRpc2FibGVkOiBocmEtY29sb3IoJG5ld2dyZXksIDcwKTtcblxuJGFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kOiBocmEtY29sb3IoJG5ld2JsdWUsIDgwKTtcbiRhY3Rpb24tZGlzYWJsZWQ6IGhyYS1jb2xvcigkbmV3Z3JleSwgNTUpO1xuJGFjdGlvbi1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Ymx1ZSwgNTApO1xuLyplbmRzKi9cblxuJGJ1dHRvbi1wcmltYXJ5LXRleHQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQtY29sb3I6JHByaW1hcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tcHJpbWFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kYnV0dG9uLWRlbGV0ZS1iYWNrZ3JvdW5kLWNvbG9yOiAkZGVsZXRlLWJhY2tncm91bmQ7XG4kYnV0dG9uLXByaW1hcnktZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG5cbi8vIFNlY29uZGFyeSBidXR0b25zIGFuZCBzZWNvbmRhcnkgYWN0aW9uIGJ1dHRvbnMgc2hhcmUgY29sb3JzIFxuJGJ1dHRvbi1zZWNvbmRhcnktYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG4kYnV0dG9uLXNlY29uZGFyeS10ZXh0LWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG4kYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLXNlY29uZGFyeS1ob3Zlci10ZXh0LWNvbG9yOiAkc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLXNlY29uZGFyeS1kaXNhYmxlZC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1zZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcblxuJGJ1dHRvbi1mbGF0LWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuJGJ1dHRvbi1mbGF0LWNvbG9yOiAkZmxhdC1jb2xvcjtcbiRidXR0b24tZmxhdC1ob3Zlci1jb2xvcjokZmxhdC1ob3ZlcjtcbiRidXR0b24tZmxhdC1kaXNhYmxlZC1jb2xvcjogJGZsYXQtZGlzYWJsZWQ7XG5cbiRidXR0b24tYWN0aW9uLWJhY2tncm91bmQtY29sb3I6ICRhY3Rpb24tYmFja2dyb3VuZDtcbiRidXR0b24tYWN0aW9uLXRleHQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tYWN0aW9uLWhvdmVyLWJhY2tncm91bmQtY29sb3I6ICRhY3Rpb24taG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tYWN0aW9uLWhvdmVyLXRleHQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tYWN0aW9uLWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRidXR0b24tYWN0aW9uLWRpc2FibGVkLXRleHQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tYWN0aW9uLWRlbGV0ZS1iYWNrZ3JvdW5kLWNvbG9yOiRkZWxldGUtYmFja2dyb3VuZDtcblxuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktZGlzYWJsZWQtY29sb3I6ICRhY3Rpb24tZGlzYWJsZWQ7XG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcblxuJHVuc2VsZWN0ZWQtY2hvaWNlLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kc2VsZWN0ZWQtY2hvaWNlLWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG5cbiRyYWRpby1sYWJlbC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJHRvZ2dsZS1vbi1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG4kdG9nZ2xlLW9mLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiR0b2dnbGUtaGVhZC1jb2xvcjogJHdoaXRlO1xuXG4kaW5wdXQtdGV4dC1sYWJlbC1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCAxMjApO1xuJGlucHV0LXRleHQtYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDQwKTtcbiRpbnB1dC10ZXh0LXBsYWNlaG9sZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDYwKTtcbiRpbnB1dC10ZXh0LWFjdGl2ZS1ib3JkZXItY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgODApO1xuJGlucHV0LXRleHQtYWN0aXZlLXRleHQtY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgMTIwKTtcbiRpbnB1dC10ZXh0LWVycm9yLWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRyZWQsIDExMCk7XG4kaW5wdXQtdGV4dC1kaXNhYmxlZC1ib3JkZXItY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgNTApO1xuJGlucHV0LXRleHQtZXJyb3ItbWVzc2FnZS1jb2xvcjogJGlucHV0LXRleHQtZXJyb3ItYm9yZGVyLWNvbG9yO1xuJGlucHV0LXRleHQtZGlzYWJsZWQtY29sb3I6ICRpbnB1dC10ZXh0LXBsYWNlaG9sZGVyLWNvbG9yO1xuJGlucHV0LXRleHQtbGFiZWwtZGlzYWJsZWQtY29sb3I6ICRpbnB1dC10ZXh0LWJvcmRlci1jb2xvcjtcbiRpbnB1dC10ZXh0LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRpbnB1dC10ZXh0LXBsYWNlaG9sZGVyLWNvbG9yOyIsIkBpbXBvcnQgJ21peGlucyc7XG5AaW1wb3J0ICdjb2xvcnMnO1xuXG4vKiBVc2VkIGZvciBncmlkcyBhbmQgbWFyZ2lucyAqL1xuXG4kc21hbGwtc2l6ZTogNCAhZGVmYXVsdDtcbiRsYXJnZS1zaXplOiAxMiAhZGVmYXVsdDtcbiRzbWFsbC1zcXVhcmU6IHJlbS1jYWxjKCRzbWFsbC1zaXplKSAhZGVmYXVsdDtcbiRsYXJnZS1zcXVhcmU6IHJlbS1jYWxjKCRsYXJnZS1zaXplKSAhZGVmYXVsdDtcbiR0cmFuc3BhcmVudC1ncmF5OiB0cmFuc3BhcmVudGl6ZShocmEtY29sb3IoJGdyZXksIDQwKSwgMC44KTtcbiR0cmFuc3BhcmVudC13aGl0ZTogdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpO1xuJGFuaW1hdGlvbi10aW1pbmc6IDAuMjVzO1xuJHJhZC1ncmFkOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCBjZW50ZXIsIHRyYW5zcGFyZW50aXplKGhyYS1jb2xvcigkZ3JleSksIDAuNSkgODAlLCB0cmFuc3BhcmVudGl6ZSgkYmxhY2ssIDAuNSkgMTAwJSk7XG4kbGluZWFyLWdyYWQ6IHJnYmEoJGJsYWNrLCAwLjcpO1xuXG4kc2Nyb2xsLWJhci13aWR0aDogJHNtYWxsLXNxdWFyZSAqIDI7XG4kc2Nyb2xsLWJhci13aWR0aC1maXJlZm94OiByZW0tY2FsYygxNyk7XG4kc2Nyb2xsLWJhci13aWR0aC1lZGdlOiByZW0tY2FsYygxNyk7XG4kc2Nyb2xsLWJhci13aWR0aC1pZTogcmVtLWNhbGMoMTcpO1xuXG4vKlxuICBmb250IHNpemVzXG4gKi9cbiRpY29uLWZvbnQtc2l6ZS1zbWFsbDogJHNtYWxsLXNxdWFyZSAqIDMgIWRlZmF1bHQ7IC8vIDEycHhcbiRpY29uLWZvbnQtc2l6ZS1tZWRpdW06ICRzbWFsbC1zcXVhcmUgKiA0ICFkZWZhdWx0OyAvLyAxNnB4XG4kaWNvbi1mb250LXNpemUtcmVndWxhcjogJHNtYWxsLXNxdWFyZSAqIDUgIWRlZmF1bHQ7IC8vIDIwcHhcbiRpY29uLWZvbnQtc2l6ZS1sYXJnZTogJHNtYWxsLXNxdWFyZSAqIDY7IC8vIDI0cHhcbiRpY29uLWZvbnQtc2l6ZS14LWxhcmdlOiAkc21hbGwtc3F1YXJlICogNzsgLy8gMjhweFxuJGljb24tZm9udC1zaXplLXBsYWNlaG9sZGVyOiAkbGFyZ2Utc3F1YXJlICogNztcbiRmb250LXNpemU6ICRpY29uLWZvbnQtc2l6ZS1tZWRpdW0gIWRlZmF1bHQ7IC8vIDEzcHhcbiRmb250LXNpemUtbWVkaXVtOiAkaWNvbi1mb250LXNpemUtbWVkaXVtOyAvLzE2cHhcbiRmb250LXNpemUtbGFyZ2U6ICRpY29uLWZvbnQtc2l6ZS1yZWd1bGFyO1xuJGZvbnQtc2l6ZS14LWxhcmdlOiAkaWNvbi1mb250LXNpemUteC1sYXJnZTtcbiRmb250LXNpemUtaGVhZGVyOiAxNHB4O1xuXG5cbiRmb250LXdlaWdodC1saWdodDogMzAwOyAvLyBTb3VyY2UgU2FucyBQcm8gTGlnaHRcbiRmb250LXdlaWdodC1yZWd1bGFyOiA0MDA7IC8vIFNvdXJjZSBTYW5zIFBybyBMaWdodFxuJGZvbnQtd2VpZ2h0LXNlbWktYm9sZDogNjAwOyAvLyBTb3VyY2UgU2FucyBQcm8gU2VtaSBCb2xkXG4kZm9udC13ZWlnaHQtYm9sZDogNzAwOyAvLyBTb3VyY2UgU2FucyBQcm8gQm9sZFxuXG5cblxuLypcbiAqIEhlYWRlciBzaXplXG4gKi9cblxuJGhlYWRlci1oZWlnaHQ6IHJlbS1jYWxjKDUyKSAhZGVmYXVsdDtcbiRoZWFkZXItdGV4dC1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA4ICFkZWZhdWx0OyAvLzMycHhcbiRzdWItbmF2LWhlaWdodDogMHJlbSAhZGVmYXVsdDsgLy8gMHB4XG4kc2VhcmNoLWJhci1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxNSAhZGVmYXVsdDtcbi8vJHBhZ2luYXRpb24taGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMjUgIWRlZmF1bHQ7XG4kY2hhcnRzLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDc0ICFkZWZhdWx0O1xuJG1haW4taGVhZGVyLWhlaWdodDogJGhlYWRlci1oZWlnaHQrJHN1Yi1uYXYtaGVpZ2h0ICFkZWZhdWx0O1xuJHZpcnR1YWwtZ3JvdXAtaW5kaWNhdG9yLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDc7XG4kaGVhZGVyLXNpZGUtbWFyZ2luOiByZW0tY2FsYygyNCk7XG5cbi8qXG4gKiBEZXZpY2UgR3JvdXAgc2V0dGluZ3NcbiAqL1xuXG4kZGV2aWNlLWdyb3VwLXBhZGRpbmctbGVmdDogJHNtYWxsLXNxdWFyZSAqIDY7XG4kZGV2aWNlLWdyb3VwLWl0ZW1zLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDk7XG4kZGV2aWNlLWdyb3VwLXdpZHRoOiAkbGFyZ2Utc3F1YXJlICogMjg7XG4kZGV2aWNlLWdyb3VwLW1pbi13aWR0aDogJHNtYWxsLXNxdWFyZSAqIDU1O1xuJGRldmljZS1ncm91cC1tYXgtd2lkdGg6ICRzbWFsbC1zcXVhcmUgKiAxNDA7XG4kZGV2aWNlLWdyb3VwLW1hcmdpbi10b3A6ICRzZWFyY2gtYmFyLWhlaWdodDtcbiRkZXZpY2UtZ3JvdXAtYnV0dG9uLXdpZHRoOiAkbGFyZ2Utc3F1YXJlICogMjE7XG4kZGV2aWNlLWdyb3VwLWJ1dHRvbi1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxMTtcbiRkZXZpY2UtZ3JvdXAtYnV0dG9uLWJvcmRlcjogMXB4IHNvbGlkIGhyYS1jb2xvcigkZ3JleSwgMjApO1xuXG4vKlxuICogQm9yZGVyIHNldHRpbmdzXG4gKi9cblxuJGJvcmRlci1iYXNlOiAxcHggc29saWQgcmdiKDIwNCwgMjA0LCAyMDQpO1xuJGJvcmRlci1yYWRpdXMtc21hbGw6IDNweDtcbiRib3JkZXItcmFkaXVzLWJhc2U6IDRweDtcbiRib3JkZXItcmFkaXVzLWxhcmdlOiA2cHg7XG5cbi8qXG4gKiBTaGFkb3dzIGdvIGJ5IGxldmVsXG4gKi9cblxuJHNoYWRvdzogMCAzcHggOXB4IHJnYmEoMCwgMCwgMCwgLjUpO1xuJHNoYWRvdy0xOiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuJHNoYWRvdy1zbWFsbDogMCAxcHggNnB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7XG4kc2hhZG93LWhlYWRlcjogMHB4IDFweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LXNlYXJjaC1oZWFkZXI6IDhweCAxcHggMTNweCAycHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1saWdodDogMXB4IDFweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuJHNoYWRvdy1saWdodC1ib3R0b20tb25seTogMHB4IDFweCA4cHggcmdiYSgkYmxhY2ssIDAuMTMpO1xuJHNoYWRvdy1hYm92ZTogMCAtMXB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctYWJvdmUtbGVmdDogLTZweCAwcHggMTNweCAycHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1iZWxvdzogMHB4IDlweCA4cHggLTVweCByZ2JhKDE1OCwgMTU4LCAxNTgsIDAuMjUpO1xuJHNoYWRvdy1kcm9wZG93bjogMCAxcHggMTNweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWRpYWxvZzogMCA4cHggMjBweCA2cHggcmdiYSgkYmxhY2ssIDAuNik7XG4kc2hhZG93LWRpYWxvZy1zdWZmaXg6IDBweCAxNnB4IDIwcHggM3B4IHJnYmEoJGJsYWNrLCAwLjYpO1xuJHNoYWRvdy1sYXlvdXQ6IDZweCAwcHggOXB4IDBweCByZ2JhKCRibGFjaywgMC4yKTtcbiRzaGFkb3ctc2F2ZWQtc2VhcmNoZXM6IDRweCA0cHggOHB4IC0ycHggcmdiYSg2Nyw3MCw3NCwuMTMpO1xuJHNoYWRvdy1jaGFydC1jYXJkOiAwIDZweCAxNnB4IHJnYmEoMjAsMzAsMzcsMC4wOCk7XG4kc2hhZG93LWNvbmZpZy1jYXJkOiAwIDAgMjRweCAwIHJnYmEoMjAsMzAsMzcsMC4xKTtcblxuLypcbiAqIFBhZGRpbmcgc2V0dGluZ3NcbiAqL1xuXG4kYm9keS1wYWRkaW5nOiAkbGFyZ2Utc3F1YXJlICogMjtcbiRwYWRkaW5nLXNtYWxsOiAkbGFyZ2Utc3F1YXJlO1xuJGJhc2UtcGFkZGluZzogJHNtYWxsLXNxdWFyZSAqIDQ7IC8vIDE2cHhcbiRoYWxmLWJhc2UtcGFkZGluZzogJGJhc2UtcGFkZGluZyAvIDI7XG4kbW9kYWwtcGFkZGluZzogJGJhc2UtcGFkZGluZztcbiRsYXlvdXQtcGFkZGluZzogKCRiYXNlLXBhZGRpbmcgKiAyKSAoJGJvZHktcGFkZGluZyAqIDIpICgkYmFzZS1wYWRkaW5nICogMikgKCRib2R5LXBhZGRpbmcgKiAyKTtcbiRwYWRkaW5nLWJhc2UtdmVydGljYWw6IDZweDtcbiRwYWRkaW5nLWJhc2UtaG9yaXpvbnRhbDogJHNtYWxsLXNxdWFyZSAqIDM7XG4kcGFkZGluZy1sYXJnZS12ZXJ0aWNhbDogMTBweDtcbiRwYWRkaW5nLWxhcmdlLWhvcml6b250YWw6ICAkc21hbGwtc3F1YXJlICogNDtcbiRwYWRkaW5nLW1lZGl1bS12ZXJ0aWNhbDogMTRweDtcbiRwYWRkaW5nLXNtYWxsLXZlcnRpY2FsOiA1cHg7XG4kcGFkZGluZy1zbWFsbC1ob3Jpem9udGFsOiAxMHB4O1xuXG4vKlxuICogSW5wdXRzXG4gKi9cbiRpbnB1dC1wYWRkaW5nOiAkc21hbGwtc3F1YXJlICRzbWFsbC1zcXVhcmUgKiAyO1xuJGlucHV0LWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDg7XG5cbi8qXG4gKiBUb29sVGlwc1xuICovXG5cbi8vIFRvb2x0aXBzXG4kdG9vbHRpcC1tYXgtd2lkdGg6IDI1MHB4ICFkZWZhdWx0O1xuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpICFkZWZhdWx0O1xuJHRvb2x0aXAtdGV4dC1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiR0b29sdGlwLWRlbGF5OiAwLjRzICFkZWZhdWx0O1xuJHRvb2x0aXAtZHVyYXRpb246IDAuMXMgIWRlZmF1bHQ7XG5cbi8qXG4gKiBBY3Rpb24gYmFyIHNpemVzXG4gKi9cblxuJGRldmljZS1hY3Rpb24tYmFyLWhlaWdodDogJGxhcmdlLXNxdWFyZSAqIDU7XG4kY291bnQtY29udGFpbmVyLXBhZGRpbmc6ICgkbGFyZ2Utc3F1YXJlICogMikgKCRzbWFsbC1zcXVhcmUgKiA0KSAoJGxhcmdlLXNxdWFyZSAqIDIpICgkc21hbGwtc3F1YXJlICogNCk7XG5cbi8qKlxuKiAgRGV2aWNlIGdyaWQgc2l6ZXNcbiovXG5cbiRyb3ctYWJvdmUtZ3JpZC1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxNDtcbiRjaGVjay1jZWxsLXBhZGRpbmc6IDAgMCAwICRzbWFsbC1zcXVhcmUqMjtcbiRkZXZpY2UtZ3JpZC1taW4taGVpZ2h0OiAkc21hbGwtc3F1YXJlICogNzE7XG5cbi8qXG4gKiBGb2N1cyBib3JkZXJcbiAqL1xuXG4kaHJhLWZvY3VzLW91dGxpbmU6IDJweCBzb2xpZCBocmEtY29sb3IoJGN5YW4pO1xuXG4vKlxuICogQm9yZGVyXG4gKi9cblxuJGhyYS1ib3JkZXI6IDFweCBzb2xpZCBocmEtY29sb3IoJGdyZXksIDIwKTtcbiRocmEtYm9yZGVyLWVycm9yOiAxcHggc29saWQgaHJhLWNvbG9yKCRyZWQpO1xuJGhyYS1ib3JkZXItaW5wdXQtZGlzYWJsZWQ6IDFweCBzb2xpZCBocmEtY29sb3IoJGdyZXksIDQwKTtcblxuXG4vKlxuICogUG9wLXVwXG4qL1xuJGhyYS1wb3B1cC1iZWFrLXNpemU6ICRzbWFsbC1zcXVhcmUqMztcbiRocmEtcG9wdXAtYmVhay1ib3R0b20tY2VudGVyOiBjYWxjKDUwJSAtICgxLjI1cmVtIC8gMikpO1xuJHBvcC11cC1mb290ZXItaGVpZ2h0OiAkbGFyZ2Utc3F1YXJlICogNTtcbiRwb3AtdXAtdGl0bGUtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTM7XG4kcG9wLXVwLXRpdGxlLW1ham9yLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDE0O1xuLy8gc3R5bGVndWlkZTppZ25vcmU6ZW5kXG5cbi8qXG4qIFN0YXR1cyBOb3RpZmljYXRpb25cbiovXG4kaHJhLXN0YXR1cy1ub3RpZmljYXRpb24td2lkdGg6ICRzbWFsbC1zcXVhcmUgKiA4MztcbiRocmEtc3RhdHVzLW5vdGlmaWNhdGlvbi10b3A6ICRzbWFsbC1zcXVhcmUgKiAxNDtcbiRocmEtc3RhdHVzLW5vdGlmaWNhdGlvbi1ib3R0b206ICRzbWFsbC1zcXVhcmUgKiAxNTtcblxuXG4vKlxuICBSb3VuZCBidXR0b24gc2l6ZXNcbiAqL1xuICRyb3VuZC1zbWFsbDogJHNtYWxsLXNxdWFyZSAqIDc7XG4gJHJvdW5kLW1lZGl1bTogJHNtYWxsLXNxdWFyZSAqIDg7XG4gJHJvdW5kLWxhcmdlOiAkc21hbGwtc3F1YXJlICogOTtcblxuLypcbiAqIEltYWdlIEljb24gU2l6ZXNcbiAqL1xuXG4kaW1nLWljb24tc2l6ZS1zbWFsbDogJHNtYWxsLXNxdWFyZSAqIDg7XG4kaW1nLWljb24tc2l6ZS1tZWRpdW06ICRzbWFsbC1zcXVhcmUgKiAxMDtcblxuXG4kYmV6aWVyOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuXG5cbi8qKiBNb2RhbCBzaXplcyAqKi9cbiRtb2RhbC10aXRsZS1oZWlnaHQ6IHJlbS1jYWxjKDUyKTtcbiRtb2RhbC1mb290ZXItaGVpZ2h0OiByZW0tY2FsYyg2MCk7XG4iLCJAaW1wb3J0IFwiLi4vLi4vLi4vc2hhcmVkL3N0eWxlcy9iYXNlL3NldHRpbmdzXCI7XG4ucm91bmQtYnV0dG9uIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctbGVmdDogNHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgYm9yZGVyOiA2cHggc29saWQgI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjb2xvcjogI2Y1ZjVmNTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDE0MCwgMTIsIDAuNyk7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi5yb3VuZC1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQzLCAxNDAsIDEyLCAxKTsgLy9yZ2JhKDAsMCwwLDAuOCk7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMTBweCByZ2JhKDI1NSwgMjU1LCAxMDAsIDEpO1xuICB0ZXh0LXNoYWRvdzogMHB4IDBweCAxMHB4IHJnYmEoMjU1LCAyNTUsIDEwMCwgMSk7XG59XG5cbi5wbGF5LWJ1dHRvbiB7XG4gIGhlaWdodDogNDBweDtcbiAgd2lkdGg6IDY1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTczLCAyMzksIDAuOSk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAvLyB0b3A6IDYycHg7XG4gIC8vIGxlZnQ6IDEwMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgLy8gZGlzcGxheTogbm9uZTtcbn1cblxuLnBsYXktYnV0dG9uOmhvdmVyIHtcbiAgLy8gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDE0MCwgMTIsIDAuNyk7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiNkZmQyNjk7XG59XG5cbi5wbGF5LWJ1dHRvbjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAuNXB4O1xuICBsZWZ0OiAyNHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA5LjVweCAwIDkuNXB4IDE3cHg7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTtcbn1cblxuLnBiLXZpZGVvLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICBoMiB7XG4gICAgbWFyZ2luOiAycmVtIDA7XG4gIH1cbn1cblxuLnBiLXZpZGVvIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgcGFkZGluZzogNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGltZyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NlZDRkYTtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xuICB9XG4gIGxhYmVsIHtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA1cHggIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNXB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZvcm0tY29udHJvbCB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuXG4ucGItdmlkZW86aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjMmMzZTUwO1xufVxuXG4ucGItdmlkZW8tZnJhbWUge1xuICB0cmFuc2l0aW9uOiB3aWR0aCAycywgaGVpZ2h0IDJzO1xufVxuXG4ucGItdmlkZW8tZnJhbWU6aG92ZXIge1xuICBoZWlnaHQ6IDMwMHB4O1xufVxuXG4ucGItcm93IHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuYXBwLXZpbWVvLXBsYXllciB7XG4gIG1hcmdpbjogYXV0bztcbn1cblxuLnNraW5zTGlzdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICAvLyBtYXJnaW46IDIwcHggYXV0bztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5za2luc0xpc3QgPiAqIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXNpemU6IDFleDtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG4uc2tpbnNMaXN0IG9sIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi5za2luc0xpc3QgLnNraW5zU2VjdGlvbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAzMHB4IGF1dG87XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNkZWRjZGM7XG59XG5cbi5za2luc0xpc3QgLnNraW5zU2VjdGlvbiA+IGgzIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBtYXJnaW46IDQwcHggYXV0byAxMHB4IGF1dG87XG4gIHBhZGRpbmc6IDMwcHggMTBweCAxMHB4IDEwcHg7XG4gIGNvbG9yOiAjNTQ1NDU0O1xuICBmb250LXdlaWdodDogNDAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5za2luc0xpc3QgLnNraW5zU2VjdGlvbiA+IHAge1xuICBmb250LXNpemU6IDAuOWVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW46IDAgYXV0bztcbiAgY29sb3I6ICM2NTZkNzg7XG59XG5cbi5za2luc0xpc3Qub3Blbi1sb29rIC5za2luc0xpc3QtaXRlbSB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLnNraW5zTGlzdC5vcGVuLWxvb2sgLnNraW5zTGlzdC1pdGVtIC50aHVtYiB7XG4gIGhlaWdodDogMTI1cHg7XG59XG5cbi5za2luc0xpc3Qub3Blbi1sb29rIC5za2luc0xpc3QtaXRlbSAudGh1bWIgPiBkaXY6YWZ0ZXIge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgY29udGVudDogXCJQcmV2aWV3XCI7XG4gIGNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjQsIDI0LCAyNCwgMC42Mik7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbjogLThweCAwIDAgLTNlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGNvbnRlbnQ6IFwiUHJldmlld1wiO1xuICBsZWZ0OiA1MCU7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5za2luc0xpc3Qub3Blbi1sb29rIC5za2luc0xpc3QtaXRlbSAud3JhcCB7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgdG9wOiAwICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDA7XG59XG5cbi5za2luc0xpc3Qub3Blbi1sb29rIC5za2luc0xpc3QtaXRlbSAudGl0bGUge1xuICBoZWlnaHQ6IDJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnNraW5zTGlzdC5vcGVuLWxvb2sgLnNraW5zTGlzdC1pdGVtIC5kZXRhaWxzIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAyNTBweDtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLnNraW5zTGlzdC5vcGVuLWxvb2sgLnNraW5zTGlzdC1pdGVtIC5mZWF0dXJlcyB7XG4gIG1pbi1oZWlnaHQ6IDI0cHg7XG59XG5cbi5za2luc0xpc3Qub3Blbi1sb29rIC5za2luc0xpc3QtaXRlbSAuZGVzY3Ige1xuICBtaW4taGVpZ2h0OiA2ZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5lbGxpcHNlcyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLmNvbXBsZXRlZE9uIHtcbiAgY29sb3I6ICM2ZTcyNzcgIWltcG9ydGFudDtcbn1cblxuLmNvbXBsZXRlZFN0YXR1cyB7XG4gIGNvbG9yOiBncmVlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDJweDtcbiAgbGVmdDogNXB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDgwcHgpIHtcbiAgLnNraW5zTGlzdCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi5za2luc0xpc3QtaXRlbSB7XG4gIC8vIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLy8gdmVydGljYWwtYWxpZ246IHRvcDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAxZXg7XG4gIC8vIHdpZHRoOiAyNDJweDtcbiAgLy8gaGVpZ2h0OiBhdXRvO1xuICAvLyBtYXgtd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLy8gei1pbmRleDogYXV0bztcbiAgLy8gbWFyZ2luOiAxMHB4O1xufVxuXG4uc2tpbnNMaXN0LWl0ZW0gLndyYXAge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAvLyBib3JkZXI6IDFweCBzb2xpZCAjYzdjOGNkO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M3YzhjZDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBwYWRkaW5nOiAyMHB4IDA7XG4gIC8vIHBhZGRpbmc6IDIwcHg7XG4gIC8qIEBpbmNsdWRlIHRyYW5zaXRpb24oLjNzIGVhc2UgYWxsKTsgKi9cbiAgdG9wOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTsgIFxufVxuXG4uc2tpbnNMaXN0LWl0ZW06bGFzdC1jaGlsZCAud3JhcCB7XG4gICBib3JkZXI6IDA7XG59XG5cbi5za2luc0xpc3QtaXRlbSAudGh1bWIge1xuICBiYWNrZ3JvdW5kOiAjY2NkMGQ5O1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDIyNHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTQwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5za2luc0xpc3QtaXRlbSAudGh1bWIgaW1nIHtcbiAgbWluLXdpZHRoOiAxMDAlO1xufVxuXG4uc2tpbnNMaXN0LWl0ZW0gLmltZy1mbHVpZFxueyAgXG4gIGJvcmRlcjogM3B4IHNvbGlkICNkZmQyNjk7XG59XG5cbi5za2luc0xpc3QtaXRlbSAudGh1bWIgPiBkaXY6YWZ0ZXIge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgY29udGVudDogXCJjbGljayB0byBwcmV2aWV3XCI7XG4gIGNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjQsIDI0LCAyNCwgMC42Mik7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGxlZnQ6IDQzJTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbjogLThweCAwIDAgLTNlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG59XG5cbi8vIC5za2luc0xpc3QtaXRlbSAuZGV0YWlscyB7XG4vLyBkaXNwbGF5OiBibG9jaztcbi8vIGhlaWdodDogMDtcbi8vIG1heC1oZWlnaHQ6IDA7XG4vLyBvdmVyZmxvdzogaGlkZGVuO1xuLy8gdmlzaWJpbGl0eTogaGlkZGVuO1xuLy8gb3BhY2l0eTogMDtcblxuLyogQGluY2x1ZGUgdHJhbnNpdGlvbiguM3MgZWFzZSBhbGwpOyAqL1xuXG4vLyB9XG4uc2tpbnNMaXN0LWl0ZW0gLmZlYXR1cmVzIHtcbiAgbWFyZ2luOiAxMHB4IGF1dG87XG59XG5cbi5za2luc0xpc3QtaXRlbSAuZmVhdHVyZXMgLmljb24tcHJlbWl1bSB7XG4gIGNvbG9yOiAjZmZjMzMwO1xuICAvKmRpc3BsYXk6IG5vbmU7Ki9cbn1cblxuLnNraW5zTGlzdC1pdGVtLnByZW1pdW0gLmZlYXR1cmVzIC5pY29uLXByZW1pdW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5za2luc0xpc3QtaXRlbSAudGl0bGUge1xuICBjb2xvcjogIzBmNmM4NjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMS4xZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAvLyBtYXJnaW46IDEwcHggYXV0bztcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi5za2luc0xpc3QtaXRlbSAuZGVzY3Ige1xuICAvLyBjb2xvcjogI2FhYjJiYztcbiAgY29sb3I6ICM3MTcxNzE7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbWFyZ2luOiAxMHB4IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi5za2luc0xpc3QtaXRlbSAuZHVyYXRpb24ge1xuICBjb2xvcjogIzIxMjEyMTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4uc2tpbnNMaXN0LWl0ZW06aG92ZXIge1xuICB6LWluZGV4OiAyMDA7XG59XG5cbi5za2luc0xpc3QtaXRlbTpob3ZlciAudGh1bWIgPiBkaXY6YWZ0ZXIge1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW47XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNDUwbXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG59XG5cbi5za2luc0xpc3QtaXRlbTpob3ZlciAuZGV0YWlscyB7XG4gIGhlaWdodDogYXV0bztcbiAgbWF4LWhlaWdodDogMjUwcHg7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5za2luc0xpc3QtaXRlbS52aXNpdGVkIC53cmFwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDU7XG59XG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { VideoWithUserDetails } from 'src/app/models/VideoWithUserDetails';\nimport { VideoService } from 'src/app/services/video.service';\nimport { first } from 'rxjs/operators';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'app-my-video-list',\n templateUrl: './my-video-list.component.html',\n styleUrls: ['./my-video-list.component.scss']\n})\nexport class MyVideoListComponent implements OnInit {\n videos: VideoWithUserDetails[] = [];\n currentSelectedVideo: VideoWithUserDetails;\n playVideo = false;\n videoCategory: string;\n header = 'Videos';\n constructor(private _route: ActivatedRoute, private _router: Router, private _videoService: VideoService) {\n this._route.params.subscribe(params => { this.videoCategory = params['category']; });\n }\n\n ngOnInit() {\n if (!!this.videoCategory) {\n this.header += ` - ${decodeURI(this.videoCategory)}`;\n }\n\n this._videoService.getAllVideosWithUserStatus(this.videoCategory).pipe(first()).subscribe(x => this.videos = x);\n }\n\n playthisVideo(video: VideoWithUserDetails) {\n this._router.navigate([`/videos/${video.referenceId}`]);\n }\n\n getDate(date: string) {\n return date == null ? null : new Date(date + 'Z');\n }\n\n async showList() {\n this.playVideo = false;\n }\n\n videoCompleted() {\n this.currentSelectedVideo.status = 3; // completed\n this.videos[this.currentSelectedVideo.referenceId] = this.currentSelectedVideo;\n }\n\n toHoursMinutesSeconds(totalSeconds: number) {\n const hours = Math.floor(totalSeconds / 3600);\n const minutes = Math.floor((totalSeconds % 3600) / 60);\n const seconds = totalSeconds % 60;\n\n return `${hours.toString()}:${minutes\n .toString()\n .padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL01lbWJlcnMvdmlkZW8tcGxheWVyL3ZpZGVvLXBsYXllci92aWRlby1wbGF5ZXIuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Videos } from 'src/app/models/videos';\nimport { VideoService } from 'src/app/services/video.service';\n\n@Component({\n selector: 'app-video-player',\n templateUrl: './video-player.component.html',\n styleUrls: ['./video-player.component.scss']\n})\nexport class VideoPlayerComponent implements OnInit {\n selectedVideoId: string;\n currentSelectedVideo: Videos;\n constructor(private _route: ActivatedRoute, private videoService: VideoService) {\n this._route.params.subscribe(params => { this.selectedVideoId = params['videoId']; });\n\n }\n\n ngOnInit() {\n this.videoService.getVideoById(this.selectedVideoId).subscribe(video => this.currentSelectedVideo = video);\n }\n\n}\n","import { Component, Input, EventEmitter, Output, OnChanges, SimpleChanges } from '@angular/core';\nimport Player from '@vimeo/player';\nimport { VideoWithUserDetails } from 'src/app/models/VideoWithUserDetails';\nimport { UserVideoService } from 'src/app/services/user-video.service';\nimport { first } from 'rxjs/operators';\nimport { ModalService } from 'src/app/shared/controls/modal/modal.service';\nimport { ModalOptions } from 'src/app/models/modalOptions';\nimport { Router } from '@angular/router';\nimport { UserStore } from '../../StateManagement/User/user.store';\n\n@Component({\n selector: 'app-vimeo-player',\n templateUrl: './vimeo-player.component.html'\n})\nexport class VimeoPlayerComponent implements OnChanges {\n\n @Input()\n public videoDetails: VideoWithUserDetails;\n\n @Output()\n public videoCompletedEvent: EventEmitter = new EventEmitter();\n\n @Output()\n public showVideoGallary: EventEmitter = new EventEmitter();\n\n timeLapsed: string;\n title: string;\n description: string;\n state = 'play'; // play when auto play is true, else stop.\n isMuted = false;\n isVideoSeeked = false;\n private _player;\n\n constructor(private _userStore: UserStore, private _userVideoService: UserVideoService, private _modalService: ModalService, private _router: Router) { }\n\n ngOnChanges(changes: SimpleChanges) {\n for (const propName in changes) {\n if (changes.hasOwnProperty(propName)) {\n switch (propName) {\n case 'videoDetails': {\n this.initPlayer();\n }\n }\n }\n }\n }\n\n private initPlayer() {\n\n if (!this.videoDetails) {\n return;\n }\n\n if (this._player) {\n this._player.destroy();\n }\n\n this._player = new Player('vimeoPlayer', {\n url: this.videoDetails.url,\n controls: false,\n title: false,\n byline: false,\n potrait: false,\n transparent: false,\n loop: false,\n autoplay: true,\n width: 640\n });\n\n this.title = this.videoDetails.title;\n this.description = this.videoDetails.description;\n const _this = this;\n this._player.getVideoTitle().then(function (title) {\n _this.title = title;\n });\n\n if (this.videoDetails.status !== 3) {\n this._player.on('ended', this._handleVideoEndedEvent(this));\n this._player.on('seeked', this._handleSeekedEvent(this));\n this._player.on('timeupdate', function (obj) {\n const sec = Math.round(obj.seconds);\n _this.timeLapsed = `${_this.toHoursMinutesSeconds(sec)} / ${_this.toHoursMinutesSeconds(Math.round(obj.duration))}`;\n });\n }\n }\n\n public buttonMutePress() {\n this.isMuted = !this.isMuted;\n this._player.setMuted(this.isMuted).then(function () {\n }).catch(function (error) {\n console.log(error.name);\n console.log(error);\n });\n }\n\n public buttonPlayPress(): void {\n if (this.state === 'stop') {\n this.state = 'play';\n this._playVideo();\n\n } else if (this.state === 'play' || this.state === 'resume') {\n this.state = 'pause';\n this._pauseVideo();\n } else if (this.state === 'pause') {\n this.state = 'resume';\n this._playVideo();\n }\n console.log('button play pressed, play was ' + this.state);\n }\n\n public buttonStopPress() {\n this.state = 'stop';\n const outerThis = this;\n this._player.unload().then(function () {\n outerThis.isVideoSeeked = false;\n }).catch(function (error) {\n console.log(error.name);\n console.log(error);\n });\n }\n\n public setVolume(volume: number) {\n this._player.setVolume(volume).then(function () {\n }).catch(function (error) {\n console.log(error.name);\n console.log(error);\n });\n }\n\n public buttonFullScreenPress() {\n this._player.requestFullscreen().then(function () {\n }).catch(function (error) {\n console.log(error.name);\n console.log(error);\n });\n }\n\n private _playVideo() {\n this._player.play().then(function () {\n }).catch(function (error) {\n console.log(error.name);\n console.log(error);\n });\n }\n\n private _pauseVideo() {\n this._player.pause().then(function () {\n }).catch(function (error) {\n console.log(error.name);\n console.log(error);\n });\n }\n\n private _handleExitFullScreen() {\n this._player.exitFullscreen().then(function () {\n }).catch(function (error) {\n console.log(error.name);\n console.log(error);\n });\n }\n\n private _handleVideoEndedEvent(outerThis: VimeoPlayerComponent) {\n return function () {\n outerThis._handleExitFullScreen();\n // if (outerThis.videoDetails.status === 3 || outerThis.isVideoSeeked) {\n // return;\n // }\n outerThis._userVideoService.addVideoToUserLibrary(outerThis.videoDetails.referenceId, 'Completed')\n .pipe(first())\n .subscribe(\n response => {\n outerThis.videoDetails.status = 3;\n outerThis.videoCompletedEvent.emit(true);\n if (!!response && !!response.claimStatusMessage) {\n const opt = new ModalOptions();\n opt.title = 'Completed';\n opt.iconName = 'fa-check-circle green';\n opt.content = response.claimStatusMessage;\n opt.okBtnText = 'Go To Home';\n\n const modalRef = outerThis._modalService.open(opt);\n modalRef.then((result) => {\n if (!!result) {\n outerThis._userStore.reset();\n outerThis._router.navigate(['/']);\n }\n }, (reason) => {\n\n });\n }\n });\n };\n }\n\n private _handleSeekedEvent(outerThis: VimeoPlayerComponent) {\n return function () {\n if (outerThis.videoDetails.status === 3) {\n return;\n }\n outerThis.isVideoSeeked = true;\n };\n }\n\n toHoursMinutesSeconds(totalSeconds: number) {\n const hours = Math.floor(totalSeconds / 3600);\n const minutes = Math.floor((totalSeconds % 3600) / 60);\n const seconds = totalSeconds % 60;\n return `${minutes.toString()\n .padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;\n }\n}\n","export default \"/*\\nHigh DPI screens (retina macbooks, highresolution laptops, etc)\\n*/\\n/* Firefox specific styles go here */\\n/*\\nCOMMON COLOR NAMES\\n\\nThese colors are mapped to the names from the official colors.\\nInstead of having names like `crush` or `blaze`, developers will use their common, non-marketized name.\\neg. $red: crush\\n $orange: blaze\\n\\nThen, use the `hra-color` function to get the color\\neg. color: hra-color($red)\\n*/\\n/* **** */\\n/* * Charts Colors */\\n/* info text background */\\n/* Use following classes for aesthetics only - New UI KIT */\\n/* Color Mapping*/\\n/*ends*/\\n/* Used for grids and margins */\\n/*\\n font sizes\\n */\\n/*\\n * Header size\\n */\\n/*\\n * Device Group settings\\n */\\n/*\\n * Border settings\\n */\\n/*\\n * Shadows go by level\\n */\\n/*\\n * Padding settings\\n */\\n/*\\n * Inputs\\n */\\n/*\\n * ToolTips\\n */\\n/*\\n * Action bar sizes\\n */\\n/**\\n* Device grid sizes\\n*/\\n/*\\n * Focus border\\n */\\n/*\\n * Border\\n */\\n/*\\n * Pop-up\\n*/\\n/*\\n* Status Notification\\n*/\\n/*\\n Round button sizes\\n */\\n/*\\n * Image Icon Sizes\\n */\\n/** Modal sizes **/\\n.benifits-img {\\n background-image: url(https://secureservercdn.net/72.167.242.48/p4o.37b.myftpupload.com/wp-content/uploads/2020/09/cropped-TWN_S4_img_03.jpg);\\n background-size: contain;\\n background-repeat: no-repeat;\\n width: 100%;\\n height: 0;\\n padding-top: 45%; }\\n.benifits {\\n padding-left: 3rem; }\\n.benifits ul {\\n padding-left: 1rem; }\\n.benifits ul li {\\n margin-bottom: 1rem;\\n text-align: justify; }\\n.welcomeText p {\\n margin-bottom: 1rem;\\n text-align: justify; }\\n.questionnaireBtn {\\n color: #000;\\n min-height: 2.625rem;\\n background: #dfd269;\\n font-size: 1.125rem;\\n margin: auto; }\\n.alert-success-custom {\\n color: #234f5d;\\n background-color: #8ae67f;\\n border-color: #588a60; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21lZGlhcXVlcmllcy5zY3NzIiwic3JjL2FwcC9jb250cm9scy9NZW1iZXJzL3dlbGNvbWUvd2VsY29tZS5jb21wb25lbnQuc2NzcyIsIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21peGlucy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9zdHlsZXMvYmFzZS9fY29sb3JzLnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvc2hhcmVkL3N0eWxlcy9iYXNlL19zZXR0aW5ncy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL2NvbnRyb2xzL01lbWJlcnMvd2VsY29tZS93ZWxjb21lLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThCQTs7Q0M1QkM7QUMwS0Qsb0NBQUE7QUM1S0E7Ozs7Ozs7Ozs7Q0ZjQztBRStERCxTQUFBO0FBVUEsb0JBQUE7QUFLQSx5QkFBQTtBQUlBLDJEQUFBO0FBRUEsaUJBQUE7QUFvQkEsT0FBQTtBQ25IQSwrQkFBQTtBQWlCQTs7RUhJRTtBR21CRjs7RUhoQkU7QUc4QkY7O0VIM0JFO0FHeUNGOztFSHRDRTtBRytDRjs7RUg1Q0U7QUdrRUY7O0VIL0RFO0FHaUZGOztFSDlFRTtBR29GRjs7RUhqRkU7QUc0RkY7O0VIekZFO0FHZ0dGOztDSDdGQztBR3FHRDs7RUhsR0U7QUd3R0Y7O0VIckdFO0FHOEdGOztDSDNHQztBR3FIRDs7Q0hsSEM7QUcwSEQ7O0VIdkhFO0FHOEhGOztFSDNIRTtBR3NJRixrQkFBQTtBQ3pNQTtFQUNJLDZJQUE2STtFQUM3SSx3QkFBd0I7RUFDeEIsNEJBQTRCO0VBQzVCLFdBQVc7RUFDWCxTQUFTO0VBQ1QsZ0JBQWdCLEVBQUE7QUFHcEI7RUFDSSxrQkFBa0IsRUFBQTtBQUR0QjtJQUdRLGtCQUFrQixFQUFBO0FBSDFCO01BS1ksbUJBQW1CO01BQ25CLG1CQUFtQixFQUFBO0FBSy9CO0VBQ0ksbUJBQW1CO0VBQ25CLG1CQUFtQixFQUFBO0FBR3ZCO0VBQ0ksV0FBVztFQUNYLG9CSDJDcUQ7RUcxQ3JELG1CRmxCaUI7RUVtQmpCLG1CSHlDcUQ7RUd4Q3JELFlBQVcsRUFBQTtBQUdmO0VBQ0UsY0FBYztFQUNkLHlCQUF5QjtFQUN6QixxQkFBcUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL01lbWJlcnMvd2VsY29tZS93ZWxjb21lLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gIEF1dGhvcjogUmFmYWwgQnJvbWlyc2tpXG4vLyAgd3d3OiBodHRwOi8vcmFmYWxicm9taXJza2kuY29tL1xuLy8gIGdpdGh1YjogaHR0cDovL2dpdGh1Yi5jb20vcGFyYW5vaWRhL3Nhc3MtbWVkaWFxdWVyaWVzXG4vL1xuLy8gIExpY2Vuc2VkIHVuZGVyIGEgTUlUIExpY2Vuc2Vcbi8vXG4vLyAgVmVyc2lvbjpcbi8vICAxLjYuMVxuLy8gLS0tIGdlbmVyYXRvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBtcSgkYXJncy4uLikge1xuICAkbWVkaWEtdHlwZTogJ29ubHkgc2NyZWVuJztcbiAgJG1lZGlhLXR5cGUta2V5OiAnbWVkaWEtdHlwZSc7XG4gICRhcmdzOiBrZXl3b3JkcygkYXJncyk7XG4gICRleHByOiAnJztcbiAgQGlmIG1hcC1oYXMta2V5KCRhcmdzLCAkbWVkaWEtdHlwZS1rZXkpIHtcbiAgICAkbWVkaWEtdHlwZTogbWFwLWdldCgkYXJncywgJG1lZGlhLXR5cGUta2V5KTtcbiAgICAkYXJnczogbWFwLXJlbW92ZSgkYXJncywgJG1lZGlhLXR5cGUta2V5KTtcbiAgfVxuICBAZWFjaCAka2V5LFxuICAkdmFsdWUgaW4gJGFyZ3Mge1xuICAgIEBpZiAkdmFsdWUge1xuICAgICAgJGV4cHI6IFwiI3skZXhwcn0gYW5kICgjeyRrZXl9OiAjeyR2YWx1ZX0pXCI7XG4gICAgfVxuICB9XG4gIEBtZWRpYSAjeyRtZWRpYS10eXBlfSAjeyRleHByfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuXG4vKlxuSGlnaCBEUEkgc2NyZWVucyAocmV0aW5hIG1hY2Jvb2tzLCBoaWdocmVzb2x1dGlvbiBsYXB0b3BzLCBldGMpXG4qL1xuXG5AbWl4aW4gaGRwaSgkcmF0aW86IDEuMykge1xuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICN7cm91bmQoJHJhdGlvKjk2KX1kcGkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyAkb3JpZW50YXRpb246IGxhbmRzY2FwZSB8IHBvcnRyYWl0XG5AbWl4aW4gdGFibGV0KCRvcmllbnRhdGlvbjogZmFsc2UpIHtcbiAgJG1pbjogMjY4cHg7XG4gICRtYXg6IDEwMjRweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgsICRvcmllbnRhdGlvbjogJG9yaWVudGF0aW9uKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gc21hbGwgZGVza3RvcCAtIDEwMjUgPC0+IDEyODBcbkBtaXhpbiBzbWFsbC1kZXNrdG9wKCkge1xuICAkbWluOiAxMDI1cHg7XG4gICRtYXg6IDEyODBweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBtZWRpdW0gZGVza3RvcCAtIDEyODEgPC0+IDE0NDBcbkBtaXhpbiBtZWRpdW0tZGVza3RvcCgpIHtcbiAgJG1pbjogMTI4MXB4O1xuICAkbWF4OiAxNDQwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gbGFyZ2UgZGVza3RvcCAtIDE0NDEgPC0+IDE2MDBcbkBtaXhpbiBsYXJnZS1kZXNrdG9wKCkge1xuICAkbWluOiAxNDQxcHg7XG4gICRtYXg6IDE2MDBweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyB4bGFyZ2UgZGVza3RvcCAtIDE2MDEgLT4gaW5maW5pdHlcbkBtaXhpbiB4bGFyZ2UtZGVza3RvcCgpIHtcbiAgJG1pbjogMTYwMXB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIGRlc2t0b3Agb3ZlcmxheVxuQG1peGluIGRlc2t0b3Atb3ZlcmxheSgpIHtcbiAgICAkbWluOiAyNjhweDtcbiAgICAkbWF4OiA5MjZweDtcbiAgICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG4iLCIvKlxuSGlnaCBEUEkgc2NyZWVucyAocmV0aW5hIG1hY2Jvb2tzLCBoaWdocmVzb2x1dGlvbiBsYXB0b3BzLCBldGMpXG4qL1xuLyogRmlyZWZveCBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuLypcbkNPTU1PTiBDT0xPUiBOQU1FU1xuXG5UaGVzZSBjb2xvcnMgYXJlIG1hcHBlZCB0byB0aGUgbmFtZXMgZnJvbSB0aGUgb2ZmaWNpYWwgY29sb3JzLlxuSW5zdGVhZCBvZiBoYXZpbmcgbmFtZXMgbGlrZSBgY3J1c2hgIG9yIGBibGF6ZWAsIGRldmVsb3BlcnMgd2lsbCB1c2UgdGhlaXIgY29tbW9uLCBub24tbWFya2V0aXplZCBuYW1lLlxuZWcuICRyZWQ6IGNydXNoXG4gICAgJG9yYW5nZTogYmxhemVcblxuVGhlbiwgdXNlIHRoZSBgaHJhLWNvbG9yYCBmdW5jdGlvbiB0byBnZXQgdGhlIGNvbG9yXG5lZy4gY29sb3I6IGhyYS1jb2xvcigkcmVkKVxuKi9cbi8qICoqKiogKi9cbi8qICogQ2hhcnRzIENvbG9ycyAqL1xuLyogaW5mbyB0ZXh0IGJhY2tncm91bmQgKi9cbi8qIFVzZSBmb2xsb3dpbmcgY2xhc3NlcyBmb3IgYWVzdGhldGljcyBvbmx5IC0gTmV3IFVJIEtJVCAqL1xuLyogQ29sb3IgTWFwcGluZyovXG4vKmVuZHMqL1xuLyogVXNlZCBmb3IgZ3JpZHMgYW5kIG1hcmdpbnMgKi9cbi8qXG4gIGZvbnQgc2l6ZXNcbiAqL1xuLypcbiAqIEhlYWRlciBzaXplXG4gKi9cbi8qXG4gKiBEZXZpY2UgR3JvdXAgc2V0dGluZ3NcbiAqL1xuLypcbiAqIEJvcmRlciBzZXR0aW5nc1xuICovXG4vKlxuICogU2hhZG93cyBnbyBieSBsZXZlbFxuICovXG4vKlxuICogUGFkZGluZyBzZXR0aW5nc1xuICovXG4vKlxuICogSW5wdXRzXG4gKi9cbi8qXG4gKiBUb29sVGlwc1xuICovXG4vKlxuICogQWN0aW9uIGJhciBzaXplc1xuICovXG4vKipcbiogIERldmljZSBncmlkIHNpemVzXG4qL1xuLypcbiAqIEZvY3VzIGJvcmRlclxuICovXG4vKlxuICogQm9yZGVyXG4gKi9cbi8qXG4gKiBQb3AtdXBcbiovXG4vKlxuKiBTdGF0dXMgTm90aWZpY2F0aW9uXG4qL1xuLypcbiAgUm91bmQgYnV0dG9uIHNpemVzXG4gKi9cbi8qXG4gKiBJbWFnZSBJY29uIFNpemVzXG4gKi9cbi8qKiBNb2RhbCBzaXplcyAqKi9cbi5iZW5pZml0cy1pbWcge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cHM6Ly9zZWN1cmVzZXJ2ZXJjZG4ubmV0LzcyLjE2Ny4yNDIuNDgvcDRvLjM3Yi5teWZ0cHVwbG9hZC5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjAvMDkvY3JvcHBlZC1UV05fUzRfaW1nXzAzLmpwZyk7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZy10b3A6IDQ1JTsgfVxuXG4uYmVuaWZpdHMge1xuICBwYWRkaW5nLWxlZnQ6IDNyZW07IH1cbiAgLmJlbmlmaXRzIHVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07IH1cbiAgICAuYmVuaWZpdHMgdWwgbGkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH1cblxuLndlbGNvbWVUZXh0IHAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG5cbi5xdWVzdGlvbm5haXJlQnRuIHtcbiAgY29sb3I6ICMwMDA7XG4gIG1pbi1oZWlnaHQ6IDIuNjI1cmVtO1xuICBiYWNrZ3JvdW5kOiAjZGZkMjY5O1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBtYXJnaW46IGF1dG87IH1cblxuLmFsZXJ0LXN1Y2Nlc3MtY3VzdG9tIHtcbiAgY29sb3I6ICMyMzRmNWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YWU2N2Y7XG4gIGJvcmRlci1jb2xvcjogIzU4OGE2MDsgfVxuIiwiQGltcG9ydCAnLi9tZWRpYXF1ZXJpZXMnO1xuXG4vLy8gLyBzdHlsZWd1aWRlOmlnbm9yZTpzdGFydFxuLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZT09bnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKT09JyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG4gIEBpZiAkY291bnQ9PTEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY291bnQge1xuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcbiAgfVxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKT09J3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG4gIC8vIFRoZW4gdGhlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBlbXNcbiAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxZW07XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsIHZhbHVlIHRvIG1hdGNoaW5nIHJlbSB2YWx1ZS4gKkFueSogdmFsdWUgcGFzc2VkLCByZWdhcmRsZXNzIG9mIHVuaXQsIGlzIGFzc3VtZWQgdG8gYmUgYSBwaXhlbCB2YWx1ZS4gQnkgZGVmYXVsdCwgdGhlIGJhc2UgcGl4ZWwgdmFsdWUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHJlbSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciBpbiByZW1zLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGhlIGJhc2UgcGl4ZWwgdmFsdWUuIHJlbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLlxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSAhPSdudW1iZXInIHtcbiAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkrJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0ncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XG4gIH1cbiAgLy8gVHVybiAwcmVtIGludG8gMFxuICBAaWYgJHZhbHVlPT0wcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vLyBBbmltYXRpb24ga2V5ZnJhbWVzIGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRhbmltYXRpb24tbmFtZSAtIE5hbWUgb2YgdGhlIGFuaW1hdGlvbi5cbkBtaXhpbiBrZXlmcmFtZXMoJGFuaW1hdGlvbi1uYW1lKSB7XG4gIEAtd2Via2l0LWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtbW96LWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtbXMta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1vLWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBrZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gQW5pbWF0aW9uIGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHIgLSBjc3MzIGFuaW1hdGlvbiBzcGVjLlxuQG1peGluIGFuaW1hdGlvbigkc3RyKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtbW96LWFuaW1hdGlvbjogI3skc3RyfTtcbiAgLW1zLWFuaW1hdGlvbjogI3skc3RyfTtcbiAgLW8tYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICBhbmltYXRpb246ICN7JHN0cn07XG59XG5cbi8vLyBCb3ggc2hhZG93IGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHIgLSBjc3MzIGJveC1zaGFkb3cgc3BlYy5cbkBtaXhpbiBib3gtc2hhZG93KCRzdHIpIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAjeyRzdHJ9O1xuICAtbW96LWJveC1zaGFkb3c6ICN7JHN0cn07XG4gIC1vLWJveC1zaGFkb3c6ICN7JHN0cn07XG4gIGJveC1zaGFkb3c6ICN7JHN0cn07XG59XG5cbi8vLyBncmFkaWVudCBhdXRvcHJlZml4ZXJcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIGdyYWRpZW50KCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgYmFja2dyb3VuZDogI3skY29sb3IxfTtcbiAgLyogRm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgZ3JhZGllbnRzICovXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBGb3IgU2FmYXJpIDUuMSB0byA2LjAgKi9cbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBGb3IgT3BlcmEgMTEuMSB0byAxMi4wICovXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBGb3IgRmlyZWZveCAzLjYgdG8gMTUgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBTdGFuZGFyZCBzeW50YXggKi9cbn1cblxuQG1peGluIHZlcnRpY2FsLWdyYWRpZW50LWRpdmlkZXIoKXtcbiAgd2lkdGg6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAxcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIGhyYS1jb2xvcigkZ3JleSwgMjApLCAkd2hpdGUpO1xufVxuXG5cbi8vLyBJRSBvbmx5IHF1ZXJ5XG5AbWl4aW4gaWUtb25seSgpIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcbiAgICAvKiBJRTEwKyBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuQG1peGluIGNyZWF0ZS1hbmltYXRpb24oJGFuaS1uYW1lKSB7XG4gIGFuaW1hdGlvbjogJGFuaS1uYW1lIGZvcndhcmRzIDMwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG5cbkBtaXhpbiBjcmVhdGUtdHJhbnNpdGlvbigkcHJvcGVydHktbmFtZSkge1xuICB0cmFuc2l0aW9uOiAkcHJvcGVydHktbmFtZSAzMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuLy8vIEVkZ2Ugb25seSBxdWVyeVxuQG1peGluIGVkZ2Utb25seSgpIHtcbiAgQHN1cHBvcnRzICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgLyogRWRnZSBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuLyogRmlyZWZveCBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuQG1peGluIGZpcmVmb3gtb25seSgpIHtcbiAgQHN1cHBvcnRzICgtbW96LWFwcGVhcmFuY2U6bm9uZSkge1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuXG4vLyBzdHlsZWd1aWRlOmlnbm9yZTplbmQiLCIvKlxuQ09NTU9OIENPTE9SIE5BTUVTXG5cblRoZXNlIGNvbG9ycyBhcmUgbWFwcGVkIHRvIHRoZSBuYW1lcyBmcm9tIHRoZSBvZmZpY2lhbCBjb2xvcnMuXG5JbnN0ZWFkIG9mIGhhdmluZyBuYW1lcyBsaWtlIGBjcnVzaGAgb3IgYGJsYXplYCwgZGV2ZWxvcGVycyB3aWxsIHVzZSB0aGVpciBjb21tb24sIG5vbi1tYXJrZXRpemVkIG5hbWUuXG5lZy4gJHJlZDogY3J1c2hcbiAgICAkb3JhbmdlOiBibGF6ZVxuXG5UaGVuLCB1c2UgdGhlIGBocmEtY29sb3JgIGZ1bmN0aW9uIHRvIGdldCB0aGUgY29sb3JcbmVnLiBjb2xvcjogaHJhLWNvbG9yKCRyZWQpXG4qL1xuXG4kdGhlbWUtZ3JlZW46ICNkZmQyNjk7XG4kdGhlbWUtY29sb3I6ICR0aGVtZS1ncmVlbjtcbiRibHVlOiBibHVlO1xuJGN5YW46IGN5YW47XG4kZ3JleTogZ3JleTtcbiRyZWQ6IGNydXNoO1xuJG9yYW5nZTogYmxhemU7XG4keWVsbG93OiBzdW5zZXQsIDYwO1xuJGdyZWVuOiBzZWFmb2FtO1xuJGxpZ2h0LWdyZWVuOiBzZWF3ZWVkO1xuJGRhcmstZ3JlZW46IG1hcmluZTtcbiRicm93bjogYnJvd247XG4kcHVycGxlOiBwdXJwbGU7XG4kc3Vuc2V0OiBzdW5zZXQ7XG4kcGluazogcGluaztcblxuJG5ld2dyZXk6IG5ld2dyZXk7XG4kbmV3Ymx1ZTogbmV3Ymx1ZTtcbiRuZXdjeWFuOiBuZXdjeWFuO1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gaG1hJ3MgQ29sb3VyIFBhbGV0dGVcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiRjb2xvcnM6IChcbiAgICBibHVlOiAoNTogI2YzZmJmZSwgMTA6ICNlMmY0ZmIsIDIwOiAjYmFlNWY1LCA0MDogIzcxYzhmMSwgNjA6ICMzMmI2ZTksIDgwOiAjMDA5OWQzLCAxMDA6ICMwMDc0YWEsIDEyMDogIzA2NGM3YyksXG4gICAgY3J1c2g6ICg1OiAjZmZmN2Y2LCAxMDogI2ZlZjBlZCwgMjA6ICNmZGRmZGMsIDQwOiAjZmFjMWJhLCA2MDogI2Y0ODI3MiwgODA6ICNmMTYxNGYsIDEwMDogI2UzMjcyMiwgMTEwOiNjMTNmMmIsIDEyMDogI2E3MWUyMiksXG4gICAgY3lhbjogKDU6ICNmMmY5ZjksIDEwOiAjZTZmNGY0LCAyMDogI2NjZWFlYSwgNDA6ICM5YWQ3ZDYsIDYwOiAjNjhjNWM0LCA4MDogIzM2YjFiMCwgMTAwOiAjMDI5ZjlkLCAxMjA6ICMwMjZmNmYpLFxuICAgIGJsYXplOiAoNTogI2ZmZjdmMywgMTA6ICNmZmYxZTksIDIwOiAjZmNlMWQzLCA0MDogI2ZjYzVhNywgNjA6ICNmN2E3N2IsIDgwOiAjZjY4OTRkLCAxMDA6ICNmMjZiMjEsIDEyMDogI2I3M2UyNSksXG4gICAgZ3JleTogKDU6ICNmYWZiZmIsIDEwOiAjZWNlZmYwLCAyMDogI2U0ZTdlOSwgNDA6ICNhOGIyYjcsIDYwOiAjODI4ZDkzLCA4MDogIzVCNjY3MCwgMTAwOiAjM2Q0NjRkLCAxMjA6ICMxNDFlMjUpLFxuICAgIHNlYWZvYW06ICg1OiAjZWZmOWY4LCAxMDogI2U0ZjdmMywgMjA6ICNjZmVkZTgsIDQwOiAjYTVlYWRiLCA2MDogIzYxZDZiOCwgODA6ICMyZmQyYTgsIDEwMDogIzFlYWQ4YSwgMTIwOiAjMGI3MDVkKSxcbiAgICBzZWF3ZWVkOiAoNTogI2Y4ZmJmNiwgMTA6ICNmMmY4ZWQsIDIwOiAjZTNmMGQ5LCA0MDogI2NiZTRiNSwgNjA6ICNiMGQ3OGUsIDgwOiAjOTVjYjZhLCAxMDA6ICM3YWMxNDIsIDEyMDogIzQ5OTE0MiksXG4gICAgbWFyaW5lOiAoNTogI2Y3ZjlmMywgMTA6ICNmMWY0ZTgsIDIwOiAjZTRlYWQyLCA0MDogI2NiZDlhNywgNjA6ICNiZmRiODUsIDgwOiAjYWVkMjU1LCAxMDA6ICM3YWExM2UsIDEyMDogIzRjNzMzNiksXG4gICAgcGViYmxlOiAoNTogI2ZiZmNmYywgMTA6ICNmNWY2ZjYsIDIwOiAjZTllOGU5LCA0MDogI2Q1ZDRkNSwgNjA6ICNhYWFhYWIsIDgwOiAjN2M3YzgxLCAxMDA6ICM1NDUzNTUsIDEyMDogIzI4MjcyYiksXG4gICAgc3Vuc2V0OiAoNTogI2ZmZmRlZSwgMTA6ICNmZmZiZGIsIDIwOiAjZmRmN2I0LCA0MDogI2ZmZjU3ZSwgNjA6ICNmZmYxMDAsIDgwOiAjZmJhZDFjLCAxMDA6ICNmNDdmMWYsIDEyMDogI2M5NTQyOCksXG4gICAgYnJvd246ICg1OiAjZjdmNGYyLCAxMDogI2VhZTRlMSwgMjA6ICNkOGNlY2IsIDQwOiAjYmFhYmE1LCA2MDogIzk2ODM3YywgODA6ICM3NzVkNTMsIDEwMDogIzU5MzgyYywgMTIwOiAjMmYxODBkKSxcbiAgICBwdXJwbGU6ICg1OiAjZjJlZmY3LCAxMDogI2U4ZGZlZiwgMjA6ICNkN2M5ZTMsIDQwOiAjYzFhZWQ1LCA2MDogI2EwODViZSwgODA6ICM3YjYxYWEsIDEwMDogIzY2NGZhMSwgMTIwOiAjNDIyZTg1KSxcbiAgICBwaW5rOiAoNTogI2ZlZjRmOCwgMTA6ICNmY2U3ZWYsIDIwOiAjZmFkYWUxLCA0MDogI2Y0YTJjMiwgNjA6ICNlZDczYTQsIDgwOiAjZTk0NTg2LCAxMDA6ICNlMzE1NjcsIDEyMDogI2FiMWQ0MSksXG5cbiAgICAvLyBOZXcgVUkgS2l0IGNvbG9ycyAtIG5ldyBwcmVmaXggd2lsbCBiZSByZW1vdmVkIG9uY2UgdGhlIG1pZ3JhdGlvbiBpcyBjb21wbGV0ZWRcbiAgICAvLyBJdCBhbHNvIG1ha2VzIHN1cmUgdGhhdCBjb2xvciB2YXJpYWJsZXMgYXJlIHVzZWRcbiAgICBuZXdncmV5OiAoNTogI2ZjZmNmYywgMTA6ICNmN2Y3ZjcsIDIwOiAjZjJmMmYyLCA0MDogI2U5ZTllOSwgNTA6ICNjN2M3YzcsIDYwOiAjYTlhOWE5LCA3MDogIzgwODA4MCwgODA6ICM2YjZiNmIsMTAwOiAjNGI0YjRiLDEyMDojMjkyOTI5KSxcbiAgICBuZXdibHVlOiAoNTogI2YwZjZmYSwgMTA6ICNlMmVlZjUsIDIwOiAjYjhkNWU3LCA0MDogIzhlYmJkNywgNTA6ICM2OWExYzcsIDU1OiAjNGY4ZmJkLCA2NTogIzM4N2ViMywgNzA6ICMyZjcyYTgsIDgwOiAjMjU2Mjk3LCAxMDA6ICMxZDUyODUsIDEyMDogIzEwMzc2NiksXG4gICAgbmV3Y3lhbjogKDU6ICNmMGY2ZmEsIDEwOiAjZTJlZWY1LCAyMDogI2I4ZDVlNywgNDA6ICM4ZWJiZDcsIDUwOiAjNjlhMWM3LCA1NTogIzRmOGZiZCwgNjU6ICMzODdlYjMsIDEwMDogIzJmNzJhOCwgMTIwOiAjMjU2Mjk3LCAxNDA6ICMxZDUyODUsIDE2MDogIzEwMzc2NiksXG4pO1xuXG5AZnVuY3Rpb24gaHJhLWNvbG9yKCRjb2xvciwgJHZhbHVlOiAxMDApIHtcbiAgICAkc2VsZWN0ZWRDb2xvcjogJGNvbG9yO1xuXG4gICAgQGlmICh0eXBlLW9mKCRjb2xvcikgPT0gJ2xpc3QnKSB7XG4gICAgICAgICRzZWxlY3RlZENvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgICAgICAgJHZhbHVlOiBudGgoJGNvbG9yLCAyKTtcbiAgICB9XG5cbiAgICAkY29sb3ItbWFwOiBtYXAtZ2V0KCRjb2xvcnMsICRzZWxlY3RlZENvbG9yKTtcbiAgICBAaWYgKCRjb2xvci1tYXAgPT0gbnVsbCkge1xuICAgICAgICBAZXJyb3IgJHNlbGVjdGVkQ29sb3IgKyAnIGlzIG5vdCBwYXJ0IG9mIHRoZSBjb2xvciBwYWxldHRlJztcbiAgICB9XG4gICAgQHJldHVybiBtYXAtZ2V0KCRjb2xvci1tYXAsICR2YWx1ZSk7XG59XG5cbiRibGFjazogaHJhLWNvbG9yKCRncmV5LCAxMjApO1xuJHdoaXRlOiByZ2IoMjU1LCAyNTUsIDI1NSk7XG4kY29sb3ItZ3JheS10cmFuc3BhcmVudDogdHJhbnNwYXJlbnRpemUoaHJhLWNvbG9yKCRncmV5KSwgMC44KTtcbiRob3Zlci1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCAyMCk7XG5cblxuLyogKioqKiAqL1xuJHN1Y2Nlc3MtY29sb3I6IGhyYS1jb2xvcigkZ3JlZW4pO1xuJHdhcm5pbmctY29sb3I6IGhyYS1jb2xvcigkeWVsbG93KTtcbiRhbGVydC1jb2xvcjogaHJhLWNvbG9yKCRyZWQpO1xuJGNvbG9yLWludmFsaWQ6IGhyYS1jb2xvcigkcmVkKTtcbiRkaXNhYmxlZC1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCAxMCk7XG4kZGlzYWJsZWQtYm9yZGVyOiBocmEtY29sb3IoJGdyZXksIDQwKTtcbiRjb2xvci1ocmEtYW5jaG9yOiBocmEtY29sb3IoJGJsdWUpO1xuJGRpc2FibGVkLWZvcmUtY29sb3I6IGhyYS1jb2xvcigkZ3JleSwgNDApO1xuXG4vKiAqIENoYXJ0cyBDb2xvcnMgKi9cbiRzdGFja2VkLXRvb2x0aXAtY2lyY2xlLWJnOiAjM2Y0MDQyO1xuJGNoYXJ0LXRvb2x0aXAtY2lyY2xlOiAjZmY4OTRjO1xuJGRvbnV0LWNvdW50OiAjZmY2YjU3O1xuXG4vKiBpbmZvIHRleHQgYmFja2dyb3VuZCAqL1xuJGluZm8tYmFja2dyb3VuZDogI2ZmZmRlNjtcblxuXG4vKiBVc2UgZm9sbG93aW5nIGNsYXNzZXMgZm9yIGFlc3RoZXRpY3Mgb25seSAtIE5ldyBVSSBLSVQgKi9cbi8vIFN0YW5kYXJkaXNlIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mIGRpcmVjdCBjb2xvcnNcbi8qIENvbG9yIE1hcHBpbmcqL1xuJHByaW1hcnktYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDcwKTtcbiRwcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCAxMDApO1xuJHByaW1hcnktdGV4dDokd2hpdGU7XG5cbiRkZWxldGUtYmFja2dyb3VuZDogaHJhLWNvbG9yKCRyZWQsIDExMCk7XG5cbiRzZWNvbmRhcnktdGV4dDpocmEtY29sb3IoJG5ld2JsdWUsIDU1KTtcbiRzZWNvbmRhcnktYmFja2dyb3VuZDokd2hpdGU7XG4kc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCA1KTtcbiRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2dyZXksIDUwKTtcbiRzZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQ6JHNlY29uZGFyeS10ZXh0O1xuXG4kZmxhdC1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA4MCk7XG4kZmxhdC1ob3ZlcjogaHJhLWNvbG9yKCRuZXdncmV5LCAxMDApO1xuJGZsYXQtZGlzYWJsZWQ6IGhyYS1jb2xvcigkbmV3Z3JleSwgNzApO1xuXG4kYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ6IGhyYS1jb2xvcigkbmV3Ymx1ZSwgODApO1xuJGFjdGlvbi1kaXNhYmxlZDogaHJhLWNvbG9yKCRuZXdncmV5LCA1NSk7XG4kYWN0aW9uLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCA1MCk7XG4vKmVuZHMqL1xuXG4kYnV0dG9uLXByaW1hcnktdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWJhY2tncm91bmQ7XG4kYnV0dG9uLXByaW1hcnktaG92ZXItYmFja2dyb3VuZC1jb2xvcjokcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1wcmltYXJ5LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRidXR0b24tZGVsZXRlLWJhY2tncm91bmQtY29sb3I6ICRkZWxldGUtYmFja2dyb3VuZDtcbiRidXR0b24tcHJpbWFyeS1kaXNhYmxlZC1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcblxuLy8gU2Vjb25kYXJ5IGJ1dHRvbnMgYW5kIHNlY29uZGFyeSBhY3Rpb24gYnV0dG9ucyBzaGFyZSBjb2xvcnMgXG4kYnV0dG9uLXNlY29uZGFyeS1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiRidXR0b24tc2Vjb25kYXJ5LXRleHQtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiRidXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWhvdmVyLXRleHQtY29sb3I6ICRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLXNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuXG4kYnV0dG9uLWZsYXQtYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4kYnV0dG9uLWZsYXQtY29sb3I6ICRmbGF0LWNvbG9yO1xuJGJ1dHRvbi1mbGF0LWhvdmVyLWNvbG9yOiRmbGF0LWhvdmVyO1xuJGJ1dHRvbi1mbGF0LWRpc2FibGVkLWNvbG9yOiAkZmxhdC1kaXNhYmxlZDtcblxuJGJ1dHRvbi1hY3Rpb24tYmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24tdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1hY3Rpb24taG92ZXItYmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24taG92ZXItdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1hY3Rpb24tZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24tZGlzYWJsZWQtdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1hY3Rpb24tZGVsZXRlLWJhY2tncm91bmQtY29sb3I6JGRlbGV0ZS1iYWNrZ3JvdW5kO1xuXG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1kaXNhYmxlZC1jb2xvcjogJGFjdGlvbi1kaXNhYmxlZDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuXG4kdW5zZWxlY3RlZC1jaG9pY2UtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRzZWxlY3RlZC1jaG9pY2UtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcblxuJHJhZGlvLWxhYmVsLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kdG9nZ2xlLW9uLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiR0b2dnbGUtb2YtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJHRvZ2dsZS1oZWFkLWNvbG9yOiAkd2hpdGU7XG5cbiRpbnB1dC10ZXh0LWxhYmVsLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDEyMCk7XG4kaW5wdXQtdGV4dC1ib3JkZXItY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgNDApO1xuJGlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgNjApO1xuJGlucHV0LXRleHQtYWN0aXZlLWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA4MCk7XG4kaW5wdXQtdGV4dC1hY3RpdmUtdGV4dC1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCAxMjApO1xuJGlucHV0LXRleHQtZXJyb3ItYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJHJlZCwgMTEwKTtcbiRpbnB1dC10ZXh0LWRpc2FibGVkLWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA1MCk7XG4kaW5wdXQtdGV4dC1lcnJvci1tZXNzYWdlLWNvbG9yOiAkaW5wdXQtdGV4dC1lcnJvci1ib3JkZXItY29sb3I7XG4kaW5wdXQtdGV4dC1kaXNhYmxlZC1jb2xvcjogJGlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I7XG4kaW5wdXQtdGV4dC1sYWJlbC1kaXNhYmxlZC1jb2xvcjogJGlucHV0LXRleHQtYm9yZGVyLWNvbG9yO1xuJGlucHV0LXRleHQtZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I7IiwiQGltcG9ydCAnbWl4aW5zJztcbkBpbXBvcnQgJ2NvbG9ycyc7XG5cbi8qIFVzZWQgZm9yIGdyaWRzIGFuZCBtYXJnaW5zICovXG5cbiRzbWFsbC1zaXplOiA0ICFkZWZhdWx0O1xuJGxhcmdlLXNpemU6IDEyICFkZWZhdWx0O1xuJHNtYWxsLXNxdWFyZTogcmVtLWNhbGMoJHNtYWxsLXNpemUpICFkZWZhdWx0O1xuJGxhcmdlLXNxdWFyZTogcmVtLWNhbGMoJGxhcmdlLXNpemUpICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWdyYXk6IHRyYW5zcGFyZW50aXplKGhyYS1jb2xvcigkZ3JleSwgNDApLCAwLjgpO1xuJHRyYW5zcGFyZW50LXdoaXRlOiB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNik7XG4kYW5pbWF0aW9uLXRpbWluZzogMC4yNXM7XG4kcmFkLWdyYWQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGNlbnRlciwgdHJhbnNwYXJlbnRpemUoaHJhLWNvbG9yKCRncmV5KSwgMC41KSA4MCUsIHRyYW5zcGFyZW50aXplKCRibGFjaywgMC41KSAxMDAlKTtcbiRsaW5lYXItZ3JhZDogcmdiYSgkYmxhY2ssIDAuNyk7XG5cbiRzY3JvbGwtYmFyLXdpZHRoOiAkc21hbGwtc3F1YXJlICogMjtcbiRzY3JvbGwtYmFyLXdpZHRoLWZpcmVmb3g6IHJlbS1jYWxjKDE3KTtcbiRzY3JvbGwtYmFyLXdpZHRoLWVkZ2U6IHJlbS1jYWxjKDE3KTtcbiRzY3JvbGwtYmFyLXdpZHRoLWllOiByZW0tY2FsYygxNyk7XG5cbi8qXG4gIGZvbnQgc2l6ZXNcbiAqL1xuJGljb24tZm9udC1zaXplLXNtYWxsOiAkc21hbGwtc3F1YXJlICogMyAhZGVmYXVsdDsgLy8gMTJweFxuJGljb24tZm9udC1zaXplLW1lZGl1bTogJHNtYWxsLXNxdWFyZSAqIDQgIWRlZmF1bHQ7IC8vIDE2cHhcbiRpY29uLWZvbnQtc2l6ZS1yZWd1bGFyOiAkc21hbGwtc3F1YXJlICogNSAhZGVmYXVsdDsgLy8gMjBweFxuJGljb24tZm9udC1zaXplLWxhcmdlOiAkc21hbGwtc3F1YXJlICogNjsgLy8gMjRweFxuJGljb24tZm9udC1zaXplLXgtbGFyZ2U6ICRzbWFsbC1zcXVhcmUgKiA3OyAvLyAyOHB4XG4kaWNvbi1mb250LXNpemUtcGxhY2Vob2xkZXI6ICRsYXJnZS1zcXVhcmUgKiA3O1xuJGZvbnQtc2l6ZTogJGljb24tZm9udC1zaXplLW1lZGl1bSAhZGVmYXVsdDsgLy8gMTNweFxuJGZvbnQtc2l6ZS1tZWRpdW06ICRpY29uLWZvbnQtc2l6ZS1tZWRpdW07IC8vMTZweFxuJGZvbnQtc2l6ZS1sYXJnZTogJGljb24tZm9udC1zaXplLXJlZ3VsYXI7XG4kZm9udC1zaXplLXgtbGFyZ2U6ICRpY29uLWZvbnQtc2l6ZS14LWxhcmdlO1xuJGZvbnQtc2l6ZS1oZWFkZXI6IDE0cHg7XG5cblxuJGZvbnQtd2VpZ2h0LWxpZ2h0OiAzMDA7IC8vIFNvdXJjZSBTYW5zIFBybyBMaWdodFxuJGZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDsgLy8gU291cmNlIFNhbnMgUHJvIExpZ2h0XG4kZm9udC13ZWlnaHQtc2VtaS1ib2xkOiA2MDA7IC8vIFNvdXJjZSBTYW5zIFBybyBTZW1pIEJvbGRcbiRmb250LXdlaWdodC1ib2xkOiA3MDA7IC8vIFNvdXJjZSBTYW5zIFBybyBCb2xkXG5cblxuXG4vKlxuICogSGVhZGVyIHNpemVcbiAqL1xuXG4kaGVhZGVyLWhlaWdodDogcmVtLWNhbGMoNTIpICFkZWZhdWx0O1xuJGhlYWRlci10ZXh0LWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDggIWRlZmF1bHQ7IC8vMzJweFxuJHN1Yi1uYXYtaGVpZ2h0OiAwcmVtICFkZWZhdWx0OyAvLyAwcHhcbiRzZWFyY2gtYmFyLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDE1ICFkZWZhdWx0O1xuLy8kcGFnaW5hdGlvbi1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAyNSAhZGVmYXVsdDtcbiRjaGFydHMtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogNzQgIWRlZmF1bHQ7XG4kbWFpbi1oZWFkZXItaGVpZ2h0OiAkaGVhZGVyLWhlaWdodCskc3ViLW5hdi1oZWlnaHQgIWRlZmF1bHQ7XG4kdmlydHVhbC1ncm91cC1pbmRpY2F0b3ItaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogNztcbiRoZWFkZXItc2lkZS1tYXJnaW46IHJlbS1jYWxjKDI0KTtcblxuLypcbiAqIERldmljZSBHcm91cCBzZXR0aW5nc1xuICovXG5cbiRkZXZpY2UtZ3JvdXAtcGFkZGluZy1sZWZ0OiAkc21hbGwtc3F1YXJlICogNjtcbiRkZXZpY2UtZ3JvdXAtaXRlbXMtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogOTtcbiRkZXZpY2UtZ3JvdXAtd2lkdGg6ICRsYXJnZS1zcXVhcmUgKiAyODtcbiRkZXZpY2UtZ3JvdXAtbWluLXdpZHRoOiAkc21hbGwtc3F1YXJlICogNTU7XG4kZGV2aWNlLWdyb3VwLW1heC13aWR0aDogJHNtYWxsLXNxdWFyZSAqIDE0MDtcbiRkZXZpY2UtZ3JvdXAtbWFyZ2luLXRvcDogJHNlYXJjaC1iYXItaGVpZ2h0O1xuJGRldmljZS1ncm91cC1idXR0b24td2lkdGg6ICRsYXJnZS1zcXVhcmUgKiAyMTtcbiRkZXZpY2UtZ3JvdXAtYnV0dG9uLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDExO1xuJGRldmljZS1ncm91cC1idXR0b24tYm9yZGVyOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCAyMCk7XG5cbi8qXG4gKiBCb3JkZXIgc2V0dGluZ3NcbiAqL1xuXG4kYm9yZGVyLWJhc2U6IDFweCBzb2xpZCByZ2IoMjA0LCAyMDQsIDIwNCk7XG4kYm9yZGVyLXJhZGl1cy1zbWFsbDogM3B4O1xuJGJvcmRlci1yYWRpdXMtYmFzZTogNHB4O1xuJGJvcmRlci1yYWRpdXMtbGFyZ2U6IDZweDtcblxuLypcbiAqIFNoYWRvd3MgZ28gYnkgbGV2ZWxcbiAqL1xuXG4kc2hhZG93OiAwIDNweCA5cHggcmdiYSgwLCAwLCAwLCAuNSk7XG4kc2hhZG93LTE6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4kc2hhZG93LXNtYWxsOiAwIDFweCA2cHggcmdiYSgwLCAwLCAwLCAwLjI0KTtcbiRzaGFkb3ctaGVhZGVyOiAwcHggMXB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctc2VhcmNoLWhlYWRlcjogOHB4IDFweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWxpZ2h0OiAxcHggMXB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4kc2hhZG93LWxpZ2h0LWJvdHRvbS1vbmx5OiAwcHggMXB4IDhweCByZ2JhKCRibGFjaywgMC4xMyk7XG4kc2hhZG93LWFib3ZlOiAwIC0xcHggMTNweCAycHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1hYm92ZS1sZWZ0OiAtNnB4IDBweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWJlbG93OiAwcHggOXB4IDhweCAtNXB4IHJnYmEoMTU4LCAxNTgsIDE1OCwgMC4yNSk7XG4kc2hhZG93LWRyb3Bkb3duOiAwIDFweCAxM3B4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctZGlhbG9nOiAwIDhweCAyMHB4IDZweCByZ2JhKCRibGFjaywgMC42KTtcbiRzaGFkb3ctZGlhbG9nLXN1ZmZpeDogMHB4IDE2cHggMjBweCAzcHggcmdiYSgkYmxhY2ssIDAuNik7XG4kc2hhZG93LWxheW91dDogNnB4IDBweCA5cHggMHB4IHJnYmEoJGJsYWNrLCAwLjIpO1xuJHNoYWRvdy1zYXZlZC1zZWFyY2hlczogNHB4IDRweCA4cHggLTJweCByZ2JhKDY3LDcwLDc0LC4xMyk7XG4kc2hhZG93LWNoYXJ0LWNhcmQ6IDAgNnB4IDE2cHggcmdiYSgyMCwzMCwzNywwLjA4KTtcbiRzaGFkb3ctY29uZmlnLWNhcmQ6IDAgMCAyNHB4IDAgcmdiYSgyMCwzMCwzNywwLjEpO1xuXG4vKlxuICogUGFkZGluZyBzZXR0aW5nc1xuICovXG5cbiRib2R5LXBhZGRpbmc6ICRsYXJnZS1zcXVhcmUgKiAyO1xuJHBhZGRpbmctc21hbGw6ICRsYXJnZS1zcXVhcmU7XG4kYmFzZS1wYWRkaW5nOiAkc21hbGwtc3F1YXJlICogNDsgLy8gMTZweFxuJGhhbGYtYmFzZS1wYWRkaW5nOiAkYmFzZS1wYWRkaW5nIC8gMjtcbiRtb2RhbC1wYWRkaW5nOiAkYmFzZS1wYWRkaW5nO1xuJGxheW91dC1wYWRkaW5nOiAoJGJhc2UtcGFkZGluZyAqIDIpICgkYm9keS1wYWRkaW5nICogMikgKCRiYXNlLXBhZGRpbmcgKiAyKSAoJGJvZHktcGFkZGluZyAqIDIpO1xuJHBhZGRpbmctYmFzZS12ZXJ0aWNhbDogNnB4O1xuJHBhZGRpbmctYmFzZS1ob3Jpem9udGFsOiAkc21hbGwtc3F1YXJlICogMztcbiRwYWRkaW5nLWxhcmdlLXZlcnRpY2FsOiAxMHB4O1xuJHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDogICRzbWFsbC1zcXVhcmUgKiA0O1xuJHBhZGRpbmctbWVkaXVtLXZlcnRpY2FsOiAxNHB4O1xuJHBhZGRpbmctc21hbGwtdmVydGljYWw6IDVweDtcbiRwYWRkaW5nLXNtYWxsLWhvcml6b250YWw6IDEwcHg7XG5cbi8qXG4gKiBJbnB1dHNcbiAqL1xuJGlucHV0LXBhZGRpbmc6ICRzbWFsbC1zcXVhcmUgJHNtYWxsLXNxdWFyZSAqIDI7XG4kaW5wdXQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogODtcblxuLypcbiAqIFRvb2xUaXBzXG4gKi9cblxuLy8gVG9vbHRpcHNcbiR0b29sdGlwLW1heC13aWR0aDogMjUwcHggIWRlZmF1bHQ7XG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCkgIWRlZmF1bHQ7XG4kdG9vbHRpcC10ZXh0LWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuJHRvb2x0aXAtZGVsYXk6IDAuNHMgIWRlZmF1bHQ7XG4kdG9vbHRpcC1kdXJhdGlvbjogMC4xcyAhZGVmYXVsdDtcblxuLypcbiAqIEFjdGlvbiBiYXIgc2l6ZXNcbiAqL1xuXG4kZGV2aWNlLWFjdGlvbi1iYXItaGVpZ2h0OiAkbGFyZ2Utc3F1YXJlICogNTtcbiRjb3VudC1jb250YWluZXItcGFkZGluZzogKCRsYXJnZS1zcXVhcmUgKiAyKSAoJHNtYWxsLXNxdWFyZSAqIDQpICgkbGFyZ2Utc3F1YXJlICogMikgKCRzbWFsbC1zcXVhcmUgKiA0KTtcblxuLyoqXG4qICBEZXZpY2UgZ3JpZCBzaXplc1xuKi9cblxuJHJvdy1hYm92ZS1ncmlkLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDE0O1xuJGNoZWNrLWNlbGwtcGFkZGluZzogMCAwIDAgJHNtYWxsLXNxdWFyZSoyO1xuJGRldmljZS1ncmlkLW1pbi1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3MTtcblxuLypcbiAqIEZvY3VzIGJvcmRlclxuICovXG5cbiRocmEtZm9jdXMtb3V0bGluZTogMnB4IHNvbGlkIGhyYS1jb2xvcigkY3lhbik7XG5cbi8qXG4gKiBCb3JkZXJcbiAqL1xuXG4kaHJhLWJvcmRlcjogMXB4IHNvbGlkIGhyYS1jb2xvcigkZ3JleSwgMjApO1xuJGhyYS1ib3JkZXItZXJyb3I6IDFweCBzb2xpZCBocmEtY29sb3IoJHJlZCk7XG4kaHJhLWJvcmRlci1pbnB1dC1kaXNhYmxlZDogMXB4IHNvbGlkIGhyYS1jb2xvcigkZ3JleSwgNDApO1xuXG5cbi8qXG4gKiBQb3AtdXBcbiovXG4kaHJhLXBvcHVwLWJlYWstc2l6ZTogJHNtYWxsLXNxdWFyZSozO1xuJGhyYS1wb3B1cC1iZWFrLWJvdHRvbS1jZW50ZXI6IGNhbGMoNTAlIC0gKDEuMjVyZW0gLyAyKSk7XG4kcG9wLXVwLWZvb3Rlci1oZWlnaHQ6ICRsYXJnZS1zcXVhcmUgKiA1O1xuJHBvcC11cC10aXRsZS1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxMztcbiRwb3AtdXAtdGl0bGUtbWFqb3ItaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTQ7XG4vLyBzdHlsZWd1aWRlOmlnbm9yZTplbmRcblxuLypcbiogU3RhdHVzIE5vdGlmaWNhdGlvblxuKi9cbiRocmEtc3RhdHVzLW5vdGlmaWNhdGlvbi13aWR0aDogJHNtYWxsLXNxdWFyZSAqIDgzO1xuJGhyYS1zdGF0dXMtbm90aWZpY2F0aW9uLXRvcDogJHNtYWxsLXNxdWFyZSAqIDE0O1xuJGhyYS1zdGF0dXMtbm90aWZpY2F0aW9uLWJvdHRvbTogJHNtYWxsLXNxdWFyZSAqIDE1O1xuXG5cbi8qXG4gIFJvdW5kIGJ1dHRvbiBzaXplc1xuICovXG4gJHJvdW5kLXNtYWxsOiAkc21hbGwtc3F1YXJlICogNztcbiAkcm91bmQtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogODtcbiAkcm91bmQtbGFyZ2U6ICRzbWFsbC1zcXVhcmUgKiA5O1xuXG4vKlxuICogSW1hZ2UgSWNvbiBTaXplc1xuICovXG5cbiRpbWctaWNvbi1zaXplLXNtYWxsOiAkc21hbGwtc3F1YXJlICogODtcbiRpbWctaWNvbi1zaXplLW1lZGl1bTogJHNtYWxsLXNxdWFyZSAqIDEwO1xuXG5cbiRiZXppZXI6IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG5cblxuLyoqIE1vZGFsIHNpemVzICoqL1xuJG1vZGFsLXRpdGxlLWhlaWdodDogcmVtLWNhbGMoNTIpO1xuJG1vZGFsLWZvb3Rlci1oZWlnaHQ6IHJlbS1jYWxjKDYwKTtcbiIsIkBpbXBvcnQgJy4uLy4uLy4uL3NoYXJlZC9zdHlsZXMvYmFzZS9zZXR0aW5ncyc7XG5cbi5iZW5pZml0cy1pbWcge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL3NlY3VyZXNlcnZlcmNkbi5uZXQvNzIuMTY3LjI0Mi40OC9wNG8uMzdiLm15ZnRwdXBsb2FkLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyMC8wOS9jcm9wcGVkLVRXTl9TNF9pbWdfMDMuanBnKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgcGFkZGluZy10b3A6IDQ1JTtcbn1cblxuLmJlbmlmaXRzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW07XG4gICAgdWwge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ud2VsY29tZVRleHQgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xufVxuXG4ucXVlc3Rpb25uYWlyZUJ0biB7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgbWluLWhlaWdodDogcmVtLWNhbGMoNDIpO1xuICAgIGJhY2tncm91bmQ6ICR0aGVtZS1ncmVlbjtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbiAgICBtYXJnaW46YXV0bztcbn1cblxuLmFsZXJ0LXN1Y2Nlc3MtY3VzdG9tIHtcbiAgY29sb3I6ICMyMzRmNWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YWU2N2Y7XG4gIGJvcmRlci1jb2xvcjogIzU4OGE2MDtcbn1cbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { User } from 'src/app/models/User';\nimport { VideoService } from 'src/app/services/video.service';\nimport { MemberService } from 'src/app/services/member.service';\nimport { UserQuery } from '../../StateManagement/User/user.query';\n\n@Component({\n templateUrl: 'welcome.component.html',\n styleUrls: ['./welcome.component.scss']\n})\nexport class WelcomeComponent implements OnInit {\n hraFilled = false;\n claimCompleted = false;\n claimStatusMessage: string;\n private _userDetails: User;\n defaultVideoId: string;\n isEligibleMedicalReceipts: boolean;\n\n canvasWidth: number = 500;\n needleValue: number = 0;\n centralLabel: string = '';\n name: string = 'TARGET MONTHLY CLAIM GOAL';\n bottomLabel: string = '0';\n options: any = {\n hasNeedle: true,\n needleColor: '#FFD700',\n needleUpdateSpeed: 500,\n rangeLabel: ['0', '100'],\n arcColors: [\"green\", \"lightgray\"],\n needleStartValue: 0,\n rangeLabelFontSize: 18,\n arcDelimiters: [0.001],\n }\n\n yearlyNeedleValue: number = 0;\n yearlyCentralLabel: string = '';\n yearlyName: string = 'TARGET ANNUAL CLAIM GOAL';\n yearlyBottomLabel: string = '0';\n yearlyOptions: any = {\n hasNeedle: true,\n needleColor: '#FFD700',\n needleUpdateSpeed: 500,\n rangeLabel: ['0', '100'],\n arcColors: [\"green\", \"lightgray\"],\n needleStartValue: 0,\n rangeLabelFontSize: 18,\n arcDelimiters: [0.001],\n }\n\n isLyrics: boolean = false;\n constructor(\n private _router: Router,\n private _videoService: VideoService,\n private _memberService: MemberService,\n private _userQuery: UserQuery) { }\n\n ngOnInit(): void {\n this._userQuery.getUserDetail().pipe(distinctUntilChanged()).subscribe(user => {\n if (!!user) {\n this._userDetails = user;\n this.hraFilled = user.isHraCompleted;\n this.claimCompleted = user.isClaimCompleted;\n this.claimStatusMessage = user.claimStatusMessage;\n this.isLyrics = user.isLyrics;\n }\n });\n\n this._videoService.getDefaultVideo().subscribe(video => this.defaultVideoId = video.referenceId);\n\n this._memberService.checkIsEligibleForMedicalReceipts().subscribe(data => {\n this.isEligibleMedicalReceipts = data.isEligibleMedicalReceipts;\n\n if (this.isEligibleMedicalReceipts) {\n this._memberService.getGraphDataForMember().subscribe(data => {\n this.name = 'TARGET MONTHLY CLAIM GOAL FOR ' + data.month + ' ' + data.year;\n this.yearlyName = 'TARGET ANNUAL CLAIM GOAL FOR ' + data.year;\n if (data.monthlyAmount > 0) {\n this.options.rangeLabel = [\"$\" + data.monthlyClaimAmount.toString(), \"$\" + data.monthlyAmount.toString()];\n this.bottomLabel = \"\";\n\n if (data.monthlyClaimAmount > 0) {\n\n var finalPercentageValue = ((data.monthlyClaimAmount * 100) / data.monthlyAmount);\n if (finalPercentageValue >= 100)\n finalPercentageValue = 99;\n\n this.needleValue = finalPercentageValue;\n this.options.arcDelimiters = [finalPercentageValue];\n }\n }\n\n if (data.yearlyAmount > 0) {\n this.yearlyOptions.rangeLabel = [\"$\" + data.yearlyClaimAmount.toString(), \"$\" + data.yearlyAmount.toString()];\n this.yearlyBottomLabel = \"\";\n if (data.yearlyClaimAmount > 0) {\n var finalPercentageValue = ((data.yearlyClaimAmount * 100) / data.yearlyAmount);\n\n if (finalPercentageValue >= 100)\n finalPercentageValue = 99;\n\n this.yearlyNeedleValue = finalPercentageValue;\n this.yearlyOptions.arcDelimiters = [finalPercentageValue];\n }\n }\n });\n }\n });\n }\n\n gotoQuestionnaire() {\n const route = `/hra-form/${this._userDetails.groupExternalId}/${this._userDetails.externalId}`;\n this._router.navigate([route]);\n }\n\n goToDefaultVideo() {\n this._router.navigate([`/videos/${this.defaultVideoId}`]);\n }\n\n goToCategories() {\n this._router.navigate(['/categories']);\n }\n\n goToRecipt() {\n this._router.navigate(['/medicalreceipt']);\n }\n\n goToViewRecipt() {\n this._router.navigate(['/medicalreceipt/view']);\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { FormBuilder, Validators, FormGroup } from '@angular/forms';\nimport { first } from 'rxjs/operators';\nimport { WellnessProgressService } from 'src/app/services/wellnessProgressService.service';\nimport { WellnessProgressReviewStatus } from 'src/app/models/enums/wellnessProgressReviewStatus';\nimport { IndemnityBenefitService } from 'src/app/services/indemnityBenefit.service';\nimport { IndemnityBenefit } from 'src/app/models/indemnityBenefit';\nimport { NgbAlertConfig } from '@ng-bootstrap/ng-bootstrap';\nimport { ColDef } from 'ag-grid-community';\nimport { FormatDate } from '../../../../helpers/format';\n\n@Component({\n selector: 'add-medicalreceipt',\n templateUrl: './add-medicalreceipt.component.html',\n providers: [NgbAlertConfig]\n})\nexport class AddMedicalReceiptComponent implements OnInit {\n @Input()\n medicalReceiptId: number;\n medicalReceiptForm: FormGroup;\n indemnityBenefits: IndemnityBenefit[];\n wellnessProgressReviewStatusKeys: any;\n filename: string;\n loading = false;\n submitted = false;\n errorMessage: string[] = [];\n successMessage = '';\n amount: number = 0;\n columnDefs: ColDef[] = [];\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n\n private gridApi;\n private WellnessProgressReviewStatus = WellnessProgressReviewStatus;\n\n constructor(private _route: ActivatedRoute,\n private _router: Router,\n private _formBuilder: FormBuilder,\n private _wellnessProgressService: WellnessProgressService,\n private _indemnityBenefitService: IndemnityBenefitService,\n private _date: FormatDate,\n private alertConfig: NgbAlertConfig\n )\n {\n this._route.params.subscribe(params => { this.medicalReceiptId = params['medicalReceiptId']; });\n alertConfig.type = 'success';\n\n this.columnDefs = [\n { hide: true, field: 'id' },\n { headerName: 'Name', field: 'name', checkboxSelection: true, suppressMovable: true, sortable: true, filter: true, autoHeight: true,flex:10 },\n //{\n // headerName: 'Name', field: 'name', sortable: true, filter: true\n //},\n { headerName: 'Amount', field: 'amount', suppressMovable: true, sortable: true, filter: true, autoHeight: true, valueFormatter: params => \"$\" + params.data.amount },\n ];\n }\n\n ngOnInit() {\n this.wellnessProgressReviewStatusKeys = Object.keys(WellnessProgressReviewStatus).filter(Number);\n //this.getActiveIndemnityBenefits();\n this.medicalReceiptForm = this._formBuilder.group({\n type:[1],\n serviceDate: ['', [Validators.required]],\n providerName: ['', [Validators.required]],\n reviewStatus:[],\n comments: [''],\n indemnityBenefitId: [null, Validators.required],\n receipt: [null],\n patientName: ['', [Validators.required]],\n patientBirthDate: ['', [Validators.required]]\n });\n\n if (!!this.medicalReceiptId) {\n this._wellnessProgressService.getWellnessProgress(this.medicalReceiptId).subscribe(medicalReceipt => {\n this.medicalReceiptForm.patchValue(medicalReceipt);\n this.medicalReceiptForm.controls['serviceDate'].patchValue(this._date.formatDate(medicalReceipt.serviceDate));\n this.medicalReceiptForm.controls['reviewStatus'].patchValue(WellnessProgressReviewStatus[medicalReceipt.reviewStatus]);\n });\n }\n \n }\n\n getActiveIndemnityBenefits() {\n this._indemnityBenefitService.getActiveIndemnityBenefits().subscribe(indemnityBenefits => {\n this.indemnityBenefits = indemnityBenefits;\n });\n }\n\n // convenience getter for easy access to form fields\n get f() { return this.medicalReceiptForm.controls; }\n\n\n onOptionsSelected(e) {\n var selectedIndex = parseInt(e.target.value);\n this.amount = this.indemnityBenefits[selectedIndex].amount;\n }\n\n //setFilename(files) {\n // if (files[0]) {\n // this.filename = files[0].name;\n // }\n //}\n\n uploadFile(event) {\n const file = (event.target as HTMLInputElement).files[0];\n this.medicalReceiptForm.patchValue({\n receipt: file\n });\n this.medicalReceiptForm.get('receipt').updateValueAndValidity();\n }\n\n\n onSubmit() {\n this.submitted = true;\n\n // reset alerts on submit\n this.successMessage = '';\n this.errorMessage = [];\n\n // stop here if form is invalid\n if (this.medicalReceiptForm.invalid) {\n return;\n }\n\n //if (files[0]) {\n // this.medicalReceiptForm.append(files[0].name, files[0]);\n //}\n\n this.loading = true;\n const medicalReceiptId = this.medicalReceiptId;\n // delete this.groupForm.value['broker'];\n this._wellnessProgressService.addMedicalReceipt(this.medicalReceiptForm.value)\n .pipe(first())\n .subscribe(\n () => {\n var _this = this;\n // return to list\n this.successMessage = 'Medical Receipt added successfully.';\n this.loading = false;\n this.errorMessage = [];\n setTimeout(function () { _this._router.navigate(['/medicalreceipt/view']); }, 2000);\n \n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this.errorMessage.push(err.value));\n } else if (typeof error.error === 'string') {\n this.errorMessage.push(error.error);\n } else {\n this.errorMessage.push(error);\n }\n this.loading = false;\n }); \n }\n\n goToViewRecipt() {\n this._router.navigate(['/medicalreceipt/view']);\n }\n\n onGridReady(params) {\n this.gridApi = params.api;\n this.getActiveIndemnityBenefits();\n //this.gridApi.setDomLayout(\"autoHeight\");\n //this.gridApi.resetRowHeights();\n }\n\n onRowSelectedEvent(params) {\n if (params.node.isSelected()) {\n this.medicalReceiptForm.controls['indemnityBenefitId'].patchValue(params.data.id);\n }\n \n }\n}\n","import { Component } from '@angular/core';\nimport { WellnessProgressService } from 'src/app/services/wellnessProgressService.service';\nimport { WellnessProgress } from 'src/app/models/wellnessProgress';\nimport { ColDef } from 'ag-grid-community';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BtnCellRendererComponent } from 'src/app/shared/controls/renderers/button-renderer/btn.renderer';\nimport { saveAs as importedSaveAs } from \"file-saver\";\nimport { WellnessProgressOverallStatus } from 'src/app/models/enums/wellnessProgressOverallStatus';\nimport { FormatDate } from '../../../../helpers/format';\n\n@Component({\n selector: 'app-view-medicalreceipts',\n templateUrl: './view-medicalreceipt.component.html'\n})\nexport class ViewMedicalReceiptComponent {\n wellnessProgresses: WellnessProgress[];\n columnDefs: ColDef[] = [];\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n\n filterParams = {\n comparator: function (filterLocalDateAtMidnight, cellValue) {\n if (cellValue == null) { return -1; }\n const dateAsString = cellValue.substr(0, 10);\n const dateParts = dateAsString.split('-');\n const cellDate = new Date(\n Number(dateParts[0]),\n Number(dateParts[1]) - 1,\n Number(dateParts[2])\n );\n if (filterLocalDateAtMidnight.getTime() === cellDate.getTime()) {\n return 0;\n }\n if (cellDate < filterLocalDateAtMidnight) {\n return -1;\n }\n if (cellDate > filterLocalDateAtMidnight) {\n return 1;\n }\n },\n browserDatePicker: true,\n };\n\n private gridApi;\n\n constructor(private _wellnessProgressService: WellnessProgressService, private _date: FormatDate, private _route: ActivatedRoute, private _router: Router) {\n const _this = this;\n this.getAllWellnessProgressForMedicalReceiptTypeForMember();\n\n this.columnDefs = [\n { hide: true, field: 'id' },\n { headerName: 'Provider Name', field: 'providerName', suppressMovable:true, sortable: true, filter: true },\n {\n headerName: 'Service Date', field: 'serviceDate', suppressMovable: true, sortable: true, filter: 'agDateColumnFilter',\n filterParams: this.filterParams, valueFormatter: function (params) {\n return !!params.value ? _date.formatDate(params.value.substr(0, 10)) : \"\";\n },\n },\n { headerName: 'Benefit Type', field: 'indemnityBenefitName', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Status', field: 'overallStatus', suppressMovable: true, sortable: true, filter: true },\n { headerName: 'Amount', field: 'amount', suppressMovable: true, sortable: true, filter: true, valueFormatter: params => \"$\" + params.data.amount },\n { headerName: 'Patient Name', field: 'patientName', suppressMovable: true, sortable: true, filter: true },\n {\n headerName: 'Patient BirthDate', field: 'patientBirthDate', suppressMovable: true, sortable: true, filter: 'agDateColumnFilter',\n filterParams: this.filterParams, valueFormatter: function (params) {\n return !!params.value ? _date.formatDate(params.value.substr(0, 10)) : '';\n },\n },\n {\n headerName: '',\n field: 'id',\n suppressMovable: true,\n cellRendererFramework: BtnCellRendererComponent,\n cellRendererParams: {\n showClickableBtn: true,\n showDownloadBtn: true,\n clicked: function (boolean, id: any) {\n _this._wellnessProgressService.downloadMedicalReceipt(id).subscribe(blob => {\n var receipt = _this.wellnessProgresses.filter(wellness => wellness.id === id);\n let file = _this.makeid(5);\n if (receipt != null && receipt.length > 0) {\n file = receipt[0].friendlyFileName;\n }\n\n importedSaveAs(blob, file);\n });\n }\n },\n }\n ];\n }\n onGridReady(params) {\n this.gridApi = params.api;\n this.gridApi.setDomLayout(\"autoHeight\");\n }\n\n makeid(length) {\n var result = '';\n var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var charactersLength = characters.length;\n for (var i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() *\n charactersLength));\n }\n return result;\n }\n\n getAllWellnessProgressForMedicalReceiptTypeForMember() {\n this._wellnessProgressService.getAllWellnessProgressForMedicalReceiptTypeForMember().subscribe(wellnessProgresses => {\n this.wellnessProgresses = wellnessProgresses;\n });\n }\n\n downloadRecipt() {\n this._wellnessProgressService.downloadMedicalReceipt(1005).subscribe(response => {\n console.log(response);\n let filename = \"Test.png\";\n importedSaveAs(response, filename);\n });\n }\n \n goToAddRecipt() {\n this._router.navigate(['/medicalreceipt']);\n }\n}\n","import { Component } from '@angular/core';\nimport { WellnessProgressService } from 'src/app/services/wellnessProgressService.service';\nimport { WellnessProgress } from 'src/app/models/wellnessProgress';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { ColDef } from 'ag-grid-community';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'app-view-view-wellnessprogress',\n templateUrl: './view-wellnessprogress.component.html'\n})\nexport class ViewWellnessprogressComponent {\n wellnessProgresses: WellnessProgress[];\n yearOptions = [];\n monthOptions = [\n { key: 'All', value: 0 },\n { key: 'Jan', value: 1 },\n { key: 'Feb', value: 2 },\n { key: 'Mar', value: 3 },\n { key: 'Apr', value: 4 },\n { key: 'May', value: 5 },\n { key: 'Jun', value: 6 },\n { key: 'Jul', value: 7 },\n { key: 'Aug', value: 8 },\n { key: 'Sep', value: 9 },\n { key: 'Oct', value: 10 },\n { key: 'Nov', value: 11 },\n { key: 'Dec', value: 12 }]\n columnDefs: ColDef[] = [];\n filterWellnessprogressForm: FormGroup;\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n submitted = false;\n loading = false;\n\n filterParams = {\n comparator: function (filterLocalDateAtMidnight, cellValue) {\n if (cellValue == null) { return -1; }\n const dateAsString = cellValue.substr(0, 10);\n const dateParts = dateAsString.split('-');\n const cellDate = new Date(\n Number(dateParts[0]),\n Number(dateParts[1]) - 1,\n Number(dateParts[2])\n );\n if (filterLocalDateAtMidnight.getTime() === cellDate.getTime()) {\n return 0;\n }\n if (cellDate < filterLocalDateAtMidnight) {\n return -1;\n }\n if (cellDate > filterLocalDateAtMidnight) {\n return 1;\n }\n },\n browserDatePicker: true,\n };\n\n private gridApi;\n private gridColumnApi;\n\n constructor(private _formBuilder: FormBuilder,private _wellnessProgressService: WellnessProgressService, private _route: ActivatedRoute, private _router: Router) {\n const _this = this;\n const date = new Date();\n for (let i = 2020; i <= date.getFullYear(); i++) {\n this.yearOptions.push(i.toString());\n }\n\n this.filterWellnessprogressForm = this._formBuilder.group({\n wellnessProgressMonth: [date.getMonth() + 1],\n wellnessProgressYear: [date.getFullYear()]\n });\n\n this.getWellnessProgressForMember();\n\n this.columnDefs = [\n { hide: true, field: 'id' },\n {\n headerName: 'Service Date', field: 'serviceDate', suppressMovable: true, sortable: true,\n valueFormatter: function (params) {\n return !!params.value ? params.value.substr(0, 10) : '';\n },\n },\n { headerName: 'Benefit Type', field: 'indemnityBenefitName', suppressMovable: true, },\n { headerName: 'Amount', field: 'amount', suppressMovable: true, valueFormatter: params => \"$\" + params.data.amount }\n ];\n }\n\n setTotal() {\n setTimeout(() => {\n let pinnedBottomData = this.generatePinnedBottomData();\n this.gridApi.setPinnedBottomRowData([pinnedBottomData]);\n }, 2000);\n }\n\n onGridReady(params) {\n this.gridApi = params.api;\n this.gridColumnApi = params.columnApi;\n this.gridApi.setDomLayout(\"autoHeight\");\n this.setTotal();\n }\n\n onFilterChanged(params) {\n this.setTotal();\n }\n\n generatePinnedBottomData() {\n // generate a row-data with null values\n let result = {};\n\n this.gridColumnApi.getAllGridColumns().forEach(item => {\n console.log(item.colId);\n if (item.colId == \"indemnityBenefitName\") {\n result[item.colId] = \"Total\";\n }\n else {\n result[item.colId] = null;\n }\n \n });\n return this.calculatePinnedBottomData(result);\n }\n\n calculatePinnedBottomData(target: any) {\n let columnsWithAggregation = ['amount']\n columnsWithAggregation.forEach(element => { \n this.gridApi.forEachNodeAfterFilter((rowNode) => {\n if (rowNode.data[element])\n target[element] += Number(rowNode.data[element].toFixed(2));\n });\n if (target[element])\n target[element] = `${target[element].toFixed(2)}`;\n })\n return target;\n }\n\n onSubmit() {\n this.submitted = true;\n\n // stop here if form is invalid\n if (this.filterWellnessprogressForm.invalid) {\n return;\n }\n\n this.loading = true;\n this.getWellnessProgressForMember();\n this.setTotal();\n }\n\n getWellnessProgressForMember() {\n const wellnessProgressMonth = this.filterWellnessprogressForm.controls['wellnessProgressMonth'].value;\n const wellnessProgressYear = this.filterWellnessprogressForm.controls['wellnessProgressYear'].value;\n this._wellnessProgressService.getWellnessProgressForMember(wellnessProgressMonth, wellnessProgressYear).subscribe(wellnessProgresses => {\n this.wellnessProgresses = wellnessProgresses;\n this.loading = false;\n });\n }\n}\n","export default \".formtitle {\\n padding-bottom: 0px;\\n}\\n\\n@media screen and (min-width: 320px) and (max-width: 600px) {\\n\\n .main-logo {\\n top: 24px;\\n }\\n\\n a b {\\n font-size: 22px !important;\\n }\\n\\n a span {\\n font-size: 22px !important;\\n }\\n\\n .logo {\\n width: 20rem !important;\\n }\\n\\n}\\n\\n.headerClass {\\n background-color: #2b579a;\\n background-image: url(/assets/img/NPLHIC_main_BG.jpg);\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: cover;\\n height: 120px;\\n margin-top: 0;\\n}\\n\\n.logoClass {\\n background-repeat: no-repeat;\\n background-position: left;\\n position: relative;\\n z-index: 1;\\n background-size: contain;\\n height: 7.5rem;\\n width: 100%;\\n margin: 0 auto;\\n background-image: url(/assets/img/NPLHIC_header_banner.png);\\n}\\n\\n.main-logo-s1 {\\n font-size: 35px;\\n color: #FFF;\\n text-decoration: none;\\n margin-left: 66px;\\n text-decoration: none;\\n}\\n\\n.main-logo-s2 {\\n color: #FFF;\\n font-size: 35px;\\n color: #FFF;\\n}\\n\\n.main-logo-s3 {\\n font-weight: 700;\\n font-size: 35px;\\n color: #FFF;\\n line-height: inherit;\\n}\\n\\n.formHeading {\\n color: #588b60;\\n font-size: 25px;\\n padding-top: 10px;\\n position: relative;\\n top: 14px;\\n left: 25px;\\n}\\n\\n.mt-15 {\\n margin-top: 15px;\\n}\\n\\n.mt-30 {\\n margin-top: 30px;\\n}\\n\\n.successMessage {\\n color: #28a745;\\n font-weight: bold !important;\\n}\\n\\n.errormsg {\\n color: red;\\n font-weight: bold !important\\n}\\n\\n.btn-success{\\n background-color: #165783;\\n border-color: #165783;\\n}\\n\\n.btn-success:hover{\\n background-color: #165783;\\n border-color: #165783;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udHJvbHMvUGxhbnMvc2VsZWN0LXBsYW5zL3NlbGVjdC1wbGFucy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBOztJQUVJO1FBQ0ksU0FBUztJQUNiOztJQUVBO1FBQ0ksMEJBQTBCO0lBQzlCOztJQUVBO1FBQ0ksMEJBQTBCO0lBQzlCOztJQUVBO1FBQ0ksdUJBQXVCO0lBQzNCOztBQUVKOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLHFEQUFxRDtJQUNyRCwyQkFBMkI7SUFDM0IsNEJBQTRCO0lBQzVCLHNCQUFzQjtJQUN0QixhQUFhO0lBQ2IsYUFBYTtBQUNqQjs7QUFFQTtJQUNJLDRCQUE0QjtJQUM1Qix5QkFBeUI7SUFDekIsa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVix3QkFBd0I7SUFDeEIsY0FBYztJQUNkLFdBQVc7SUFDWCxjQUFjO0lBQ2QsMkRBQTJEO0FBQy9EOztBQUVBO0lBQ0ksZUFBZTtJQUNmLFdBQVc7SUFDWCxxQkFBcUI7SUFDckIsaUJBQWlCO0lBQ2pCLHFCQUFxQjtBQUN6Qjs7QUFFQTtJQUNJLFdBQVc7SUFDWCxlQUFlO0lBQ2YsV0FBVztBQUNmOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixXQUFXO0lBQ1gsb0JBQW9CO0FBQ3hCOztBQUVBO0lBQ0ksY0FBYztJQUNkLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLFNBQVM7SUFDVCxVQUFVO0FBQ2Q7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxjQUFjO0lBQ2QsNEJBQTRCO0FBQ2hDOztBQUVBO0lBQ0ksVUFBVTtJQUNWO0FBQ0o7O0FBQ0E7SUFDSSx5QkFBeUI7SUFDekIscUJBQXFCO0FBQ3pCOztBQUNBO0lBQ0kseUJBQXlCO0lBQ3pCLHFCQUFxQjtBQUN6QiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL1BsYW5zL3NlbGVjdC1wbGFucy9zZWxlY3QtcGxhbnMuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtdGl0bGUge1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblxuICAgIC5tYWluLWxvZ28ge1xuICAgICAgICB0b3A6IDI0cHg7XG4gICAgfVxuXG4gICAgYSBiIHtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgYSBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmxvZ28ge1xuICAgICAgICB3aWR0aDogMjByZW0gIWltcG9ydGFudDtcbiAgICB9XG5cbn1cblxuLmhlYWRlckNsYXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmI1NzlhO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvYXNzZXRzL2ltZy9OUExISUNfbWFpbl9CRy5qcGcpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgaGVpZ2h0OiAxMjBweDtcbiAgICBtYXJnaW4tdG9wOiAwO1xufVxuXG4ubG9nb0NsYXNzIHtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIGhlaWdodDogNy41cmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvYXNzZXRzL2ltZy9OUExISUNfaGVhZGVyX2Jhbm5lci5wbmcpO1xufVxuXG4ubWFpbi1sb2dvLXMxIHtcbiAgICBmb250LXNpemU6IDM1cHg7XG4gICAgY29sb3I6ICNGRkY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiA2NnB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm1haW4tbG9nby1zMiB7XG4gICAgY29sb3I6ICNGRkY7XG4gICAgZm9udC1zaXplOiAzNXB4O1xuICAgIGNvbG9yOiAjRkZGO1xufVxuXG4ubWFpbi1sb2dvLXMzIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMzVweDtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuLmZvcm1IZWFkaW5nIHtcbiAgICBjb2xvcjogIzU4OGI2MDtcbiAgICBmb250LXNpemU6IDI1cHg7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMTRweDtcbiAgICBsZWZ0OiAyNXB4O1xufVxuXG4ubXQtMTUge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG59XG5cbi5tdC0zMCB7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbn1cblxuLnN1Y2Nlc3NNZXNzYWdlIHtcbiAgICBjb2xvcjogIzI4YTc0NTtcbiAgICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50O1xufVxuXG4uZXJyb3Jtc2cge1xuICAgIGNvbG9yOiByZWQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQgIWltcG9ydGFudFxufVxuLmJ0bi1zdWNjZXNze1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNjU3ODM7XG4gICAgYm9yZGVyLWNvbG9yOiAjMTY1NzgzO1xufVxuLmJ0bi1zdWNjZXNzOmhvdmVye1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNjU3ODM7XG4gICAgYm9yZGVyLWNvbG9yOiAjMTY1NzgzO1xufSJdfQ== */\"","import { Location } from \"@angular/common\";\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ColDef } from 'ag-grid-community';\nimport { Plan } from 'src/app/models/plan';\nimport { PlanService } from 'src/app/services/plan.service';\nimport { BtnCellRendererComponent } from 'src/app/shared/controls/renderers/button-renderer/btn.renderer';\nimport { GroupService } from '../../../services/group.service';\nimport { AlertifyService } from 'src/app/services/alertify.service';\nimport { AuthenticationService } from 'src/app/services/authentication.service';\n\n@Component({\n selector: 'app-select-plans',\n templateUrl: './select-plans.component.html',\n styleUrls: ['./select-plans.component.css']\n})\nexport class SelectPlansComponent {\n currentUser:any;\n columnDefs: ColDef[];\n private gridApi;\n plans: Plan[];\n defaultColDef = {\n flex: 1,\n minWidth: 150,\n resizable: true,\n };\n groupId: string;\n groupName: string='';\n \n constructor(private _planService: PlanService,\n private _groupService:GroupService,\n private _route: ActivatedRoute,\n private _router: Router,\n private location: Location,\n private authenticationService: AuthenticationService,\n private alertify : AlertifyService\n ) { }\n\n ngOnInit() {\n this.currentUser = this.getCurrentUserFromLocalStorage();\n this._route.queryParamMap.subscribe((param) => {\n this.groupId = param.get('groupid');\n if (this.groupId) {\n this.getGroupNameByExID(this.groupId); \n }\n }); \n this.columnDefs = [\n { headerName: \"Product ID\", field: \"name\", suppressMovable: true, sortable: true, filter: true },\n {\n headerName: \"Premium Amount\",\n field: \"monthlyPremiumAmount\",\n suppressMovable: true,\n sortable: true,\n filter: true,\n valueFormatter: (params) => \"$\" + params.data.monthlyPremiumAmount,\n },\n {\n headerName: \"Benefit Amount\",\n field: \"monthlyClaimAmount\",\n suppressMovable: true,\n sortable: true,\n filter: true,\n valueFormatter: (params) => \"$\" + params.data.monthlyClaimAmount,\n },\n ];\n this.columnDefs.push({\n headerName: \"Enroll\",\n field: \"name\",\n suppressMovable: true,\n cellRendererFramework: BtnCellRendererComponent,\n cellRendererParams: {\n showDeleteBtn: false,\n showEditBtn: false,\n showEnrollmentBtn:true,\n clicked: function (isDelete: boolean, id: any) {\n // this.router.navigate(['enrollment/AddLead'],{\n // queryParams: {\n // PlanName: id\n // }\n // })\n },\n },\n });\n }\n\n getGroupNameByExID(groupExternalId:string) {\n this._groupService.getGroupNameByExternalID(groupExternalId).subscribe((res: any) => {\n this.groupName = res.value;\n if (this.groupName != '')\n this.getAllPlans();\n }, error => { \n console.log(error.error);\n //this.alertify.error(error.error);\n this.authenticationService.currentUser.subscribe(x => {\n this.currentUser = x;\n if (!!this.currentUser) {\n if(this.authenticationService.isAdmin){\n this._router.navigate(['admin/groups']);\n }\n else {\n this._router.navigate(['enrollment/error'], {\n queryParams: { error: error.error },\n });\n }\n } \n else {\n this._router.navigate(['enrollment/error'], {\n queryParams: { error: error.error },\n });\n }\n }); \n } \n );\n }\n\n getCurrentUserFromLocalStorage() {\n // Get the currentUser from localStorage (this logic may vary based on your implementation)\n const currentUser = localStorage.getItem('currentUser');\n return currentUser ? JSON.parse(currentUser) : null;\n }\n\n onGridReady(params) {\n this.gridApi = params.api;\n this.gridApi.setDomLayout(\"autoHeight\");\n }\n\n getAllPlans() {\n this._planService.getAllPlans().subscribe((plans) => {\n this.plans = plans;\n // console.log('this.plans: ', this.plans);\n });\n }\n back() {\n this.location.back();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { QueryEntity } from '@datorama/akita';\nimport { Observable } from 'rxjs';\nimport { auditTime } from 'rxjs/operators';\nimport { User } from 'src/app/models/User';\nimport { UserState, UserStore } from './user.store';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserQuery extends QueryEntity {\n\n isUserDetailsLoaded$ = this.select(state => {\n return state.isUserDetailLoaded;\n });\n\n userDetails$ = this.selectFirst(state => {\n return state;\n });\n\n constructor(protected store: UserStore) {\n super(store);\n }\n\n public getUserDetail(): Observable {\n return this.selectFirst().pipe(auditTime(0));\n }\n}\n","\nimport { EntityState, EntityStore, StoreConfig } from '@datorama/akita';\nimport { Injectable } from '@angular/core';\nimport { User } from 'src/app/models/User';\n\nexport interface UserState extends EntityState {\n isUserDetailLoaded: boolean;\n}\n\nexport function createInitialState(): UserState {\n return {\n isUserDetailLoaded: false\n };\n}\n\n@Injectable({\n providedIn: 'root'\n})\n@StoreConfig({ name: 'user', resettable: true })\nexport class UserStore extends EntityStore {\n constructor() {\n super(createInitialState());\n }\n\n loadUserDetail(user: User, isUserDetailLoaded: boolean) {\n this.set([user]);\n this.update(state => ({\n ...state,\n isUserDetailLoaded\n }));\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL1RoYW5rWW91L3RoYW5reW91LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component } from '@angular/core';\n\n@Component({\n templateUrl: 'thankyou.component.html',\n styleUrls: ['./thankyou.component.scss']\n})\nexport class ThankYouComponent {\n constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { first } from 'rxjs/operators';\nimport { UserService } from '../../services/user.service';\nimport { AlertService } from '../../services/alertService.service';\nimport { MustMatch } from '../../helpers/must-match.validators';\n\n@Component({ templateUrl: 'change-password.component.html' })\nexport class ChangePasswordComponent implements OnInit {\n changePasswordForm: FormGroup;\n loading = false;\n submitted = false;\n\n constructor(\n private formBuilder: FormBuilder,\n private router: Router,\n private userService: UserService,\n private alertService: AlertService\n ) { }\n\n ngOnInit() {\n this.changePasswordForm = this.formBuilder.group({\n currentPassword: ['', [Validators.required, Validators.minLength(6)]],\n newPassword: ['', [Validators.required, Validators.minLength(6)]],\n confirmPassword: ['', Validators.required]\n }, {\n validator: MustMatch('newPassword', 'confirmPassword')\n });\n }\n\n // convenience getter for easy access to form fields\n get f() { return this.changePasswordForm.controls; }\n\n onSubmit() {\n this.submitted = true;\n\n // reset alerts on submit\n this.alertService.clear();\n\n // stop here if form is invalid\n if (this.changePasswordForm.invalid) {\n return;\n }\n\n this.loading = true;\n this.userService.changePassword(this.changePasswordForm.value)\n .pipe(first())\n .subscribe(\n () => {\n this.alertService.success('Password changed successfully', true);\n this.router.navigate(['/']);\n },\n error => {\n if (error.error instanceof Array) {\n error.error.map(err => this.alertService.error(err.value));\n } else if (typeof error.error === 'string') {\n this.alertService.error(error.error);\n } else {\n this.alertService.error(error);\n }\n this.loading = false;\n });\n }\n}\n","export default \".row-margin{\\n margin-right:0px !important;\\n}\\n\\n\\nmodal-body > form .form-group, div:not([class*=data-form]) > form .form-group {\\n margin-top: 0;\\n border-radius: 6px;\\n}\\n\\n\\n.form-group {\\n margin-bottom: 0;\\n}\\n\\n\\nmodal-body > form .form-group label, div:not([class*=data-form]) > form .form-group label {\\n font-weight: 600;\\n margin-bottom: 0;\\n display: block;\\n}\\n\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udHJvbHMvZW5yb2xsbWVudC9hZGQtZGVwZW5kZW50L2FkZC1kZXBlbmRlbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLDJCQUEyQjtBQUMvQjs7O0FBR0E7SUFDSSxhQUFhO0lBQ2Isa0JBQWtCO0FBQ3RCOzs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGNBQWM7QUFDbEIiLCJmaWxlIjoic3JjL2FwcC9jb250cm9scy9lbnJvbGxtZW50L2FkZC1kZXBlbmRlbnQvYWRkLWRlcGVuZGVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdy1tYXJnaW57XG4gICAgbWFyZ2luLXJpZ2h0OjBweCAhaW1wb3J0YW50O1xufVxuXG5cbm1vZGFsLWJvZHkgPiBmb3JtIC5mb3JtLWdyb3VwLCBkaXY6bm90KFtjbGFzcyo9ZGF0YS1mb3JtXSkgPiBmb3JtIC5mb3JtLWdyb3VwIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cblxuLmZvcm0tZ3JvdXAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbm1vZGFsLWJvZHkgPiBmb3JtIC5mb3JtLWdyb3VwIGxhYmVsLCBkaXY6bm90KFtjbGFzcyo9ZGF0YS1mb3JtXSkgPiBmb3JtIC5mb3JtLWdyb3VwIGxhYmVsIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbiJdfQ== */\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { AlertifyService } from 'src/app/services/alertify.service';\n\n@Component({\n selector: 'app-add-dependent',\n templateUrl: './add-dependent.component.html',\n styleUrls: ['./add-dependent.component.css']\n})\nexport class AddDependentComponent implements OnInit {\n submitted = false;\n addDependentForm: FormGroup;\n dependentList: any[] = [];\n minDependentAge: string;\n maxDependentAge: string;\n minChildAge: string;\n isMinDependentAgeValid: boolean = true;\n isMaxDependentAgeValid: boolean = true;\n \n constructor(private _fb: FormBuilder,private _alertify: AlertifyService,\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any) {\n this.dependentList=data.dependentList;\n }\n\n ngOnInit() {\n this.addDependentForm = this._fb.group({\n relationship:[\"\",Validators.required],\n firstName: [\"\", Validators.required],\n middleName: [\"\"],\n lastName: [\"\", Validators.required],\n dob: [\"\", Validators.required],\n gender: [\"\", Validators.required],\n });\n var minPA = new Date();\n var yr = minPA.getFullYear();\n var mn = (minPA.getMonth() + 1) > 9 ? (minPA.getMonth() + 1) : '0' + (minPA.getMonth() + 1);\n var dt = minPA.getDate();\n this.minChildAge = yr + '-' + mn + '-' + dt;\n minPA.setFullYear(minPA.getFullYear() - 100);\n yr = minPA.getFullYear();\n mn = (minPA.getMonth() + 1) > 9 ? (minPA.getMonth() + 1) : '0' + (minPA.getMonth() + 1);\n dt = minPA.getDate();\n this.minDependentAge = yr + '-' + mn + '-' + dt;\n var maxPA = new Date();\n maxPA.setFullYear(maxPA.getFullYear() - 21);\n yr = maxPA.getFullYear();\n mn = (maxPA.getMonth() + 1) > 9 ? (maxPA.getMonth() + 1) : '0' + (maxPA.getMonth() + 1);\n dt = maxPA.getDate();\n this.maxDependentAge = yr + '-' + mn + '-' + dt;\n\n }\n\n handleOnClose(event: any) {\n this.dialogRef.close(false);\n }\n\n handleOnSave(event: any) {\n this.submitted=true;\n if (!this.isMaxDependentAgeValid || !this.isMinDependentAgeValid) {\n return;\n }\n if (this.addDependentForm.valid) {\n if(this.addDependentForm.controls.relationship.value=='Spouse' && this.dependentList.filter(x=>x.relationship=='Spouse').length>0){\n this._alertify.error(\"You have already added Spouse\");\n }\n else{\n this.dialogRef.close(this.addDependentForm.value);\n }\n }\n }\n\n get f() {\n return this.addDependentForm.controls;\n }\n\n dobValidate() {\n const minDate = new Date();\n const minAge = this.addDependentForm.controls.relationship.value == 'Child'? 21 : 100\n minDate.setFullYear(minDate.getFullYear() - minAge);\n const maxDate = new Date();\n const maxAge = this.addDependentForm.controls.relationship.value == 'Child'? 0 : 21\n maxDate.setFullYear(maxDate.getFullYear() - maxAge);\n const dob = new Date(this.addDependentForm.controls.dob.value);\n if (dob < minDate) {\n this.isMaxDependentAgeValid = false; \n }\n else {\n this.isMaxDependentAgeValid = true;\n }\n\n if (dob > maxDate) {\n this.isMinDependentAgeValid = false; \n }\n else {\n this.isMinDependentAgeValid = true;\n }\n }\n\n updateAgeValidation(){\n if(this.addDependentForm.controls.relationship.value =='Spouse'){\n var minPA = new Date(); \n minPA.setFullYear(minPA.getFullYear() - 100);\n var yr = minPA.getFullYear();\n var mn = (minPA.getMonth() + 1) > 9 ? (minPA.getMonth() + 1) : '0' + (minPA.getMonth() + 1);\n var dt = minPA.getDate();\n this.minDependentAge = yr + '-' + mn + '-' + dt;\n var maxPA = new Date();\n maxPA.setFullYear(maxPA.getFullYear() - 21);\n yr = maxPA.getFullYear();\n mn = (maxPA.getMonth() + 1) > 9 ? (maxPA.getMonth() + 1) : '0' + (maxPA.getMonth() + 1);\n dt = maxPA.getDate();\n this.maxDependentAge = yr + '-' + mn + '-' + dt;\n }\n else if(this.addDependentForm.controls.relationship.value =='Child'){\n var maxPA = new Date();\n maxPA.setFullYear(maxPA.getFullYear() - 21);\n yr = maxPA.getFullYear();\n mn = (maxPA.getMonth() + 1) > 9 ? (maxPA.getMonth() + 1) : '0' + (maxPA.getMonth() + 1);\n dt = maxPA.getDate();\n this.minDependentAge = yr + '-' + mn + '-' + dt;\n this.maxDependentAge = this.minChildAge;\n }\n }\n\n}\n\n","export default \".headerClass {\\n background-color: #2b579a;\\n background-image: url('NPLHIC_main_BG.jpg');\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: cover;\\n height: 120px;\\n margin-top: 0;\\n}\\n\\n.logoClass {\\n background-repeat: no-repeat;\\n background-position: left;\\n position: relative;\\n z-index: 1;\\n background-size: contain;\\n height: 7.5rem;\\n margin: 0 auto;\\n background-image: url('NPLHIC_header_banner.png');\\n}\\n\\n.container {\\n max-width: 1440px;\\n width: 1310px;\\n}\\n\\n.formtitle {\\n padding-bottom: 0px;\\n}\\n\\n@media screen and (min-width: 320px) and (max-width: 600px) {\\n\\n .main-logo {\\n top: 24px;\\n }\\n\\n a b {\\n font-size: 22px !important;\\n }\\n\\n a span {\\n font-size: 22px !important;\\n }\\n\\n .logo {\\n width: 20rem !important;\\n }\\n}\\n\\n::-webkit-input-placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\\n color:#bbb6b6;\\n \\n}\\n\\n::-moz-placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\\n color:#bbb6b6;\\n \\n}\\n\\n:-ms-input-placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\\n color:#bbb6b6;\\n \\n}\\n\\n::-ms-input-placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\\n color:#bbb6b6;\\n \\n}\\n\\n::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\\n color:#bbb6b6;\\n \\n}\\n\\n.bgadd{background-image: linear-gradient(to right, #626a5c, #539b4c)!important;\\ncolor: #fff!important;\\npadding: 10px;\\nmargin-bottom: 0px;;}\\n\\n.styleline{padding-left: 18px!important;\\n font-weight: bold!important;\\n color: #1c34bb!important;\\n text-decoration: underline!important;}\\n\\n.errorsms{color: red!important;\\n display: block!important;\\n width: 100%!important;\\n padding-left: 18px!important;\\n font-weight: bold!important;\\n text-transform: uppercase!important;\\n font-size: 12px!important;}\\n\\n.btn-primary.disabled, .btn-primary:disabled{color: #000;}\\n\\n.errprtext {font-size: 12px;\\ncolor: red; \\nfont-weight: 500; font-family: revert;}\\n\\n.stepformmanage {\\n padding: 18px!important;\\n background-color: #ffffff!important;\\n box-shadow: 0 0.5px 3px rgb(2, 2, 2,0.15);\\n position: relative!important;\\n border-radius: 0px!important;\\n}\\n\\n.form-control:focus {\\n color: #495057;\\n background-color: #fff;\\n border-color: #80bdff;\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\\n}\\n\\n.btn-success {\\n color: #fff;\\n background-color: #f89a5e!important;\\n border-color: #f89a5e!important;\\n}\\n\\n.formset {\\n width: 100%;\\n height: 38px;\\n background: #fef4ee !important;\\n border: 1px solid #5e5e5e40!important;\\n border-radius: 4px!important;\\n}\\n\\nlabel {\\n font-weight: 500;\\n}\\n\\n.terms-content {\\n max-height: 100%;\\n}\\n\\n.term-item {\\n margin-bottom: 10px;\\n}\\n\\n.term-item label {\\n display: inline-block;\\n vertical-align: middle;\\n margin-left: 10px;\\n}\\n\\n.terms-container {\\nheight: 150px; /* Adjust the height as needed */\\noverflow-y: auto;\\nborder: 1px solid #ccc;\\npadding: 10px;\\n}\\n\\n.terms-content {\\nmax-height: 100%;\\n}\\n\\n.terms-text {\\nwhite-space: pre-wrap;\\n}\\n\\n/* .stepformmanage{margin-bottom: 25px;} */\\n\\n.formset {\\n width: 100%;\\n height: 46px;\\n background: #ffffff;\\n border: 1px solid #bbb6b640;\\n}\\n\\n@media screen and (min-width: 320px) and (max-width: 600px) {\\n.mr0{margin: 0px!important;}\\n\\n.rc-anchor-normal{ width: 98%!important;}\\n\\n}\\n\\n.mt-15{\\n margin-top: 15px;\\n}\\n\\n.mt-30{\\n margin-top: 30px;\\n}\\n\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udHJvbHMvZW5yb2xsbWVudC9lbnJvbGxtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx5QkFBeUI7RUFDekIsMkNBQTZEO0VBQzdELDJCQUEyQjtFQUMzQiw0QkFBNEI7RUFDNUIsc0JBQXNCO0VBQ3RCLGFBQWE7RUFDYixhQUFhO0FBQ2Y7O0FBRUE7RUFDRSw0QkFBNEI7RUFDNUIseUJBQXlCO0VBQ3pCLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1Ysd0JBQXdCO0VBQ3hCLGNBQWM7RUFDZCxjQUFjO0VBQ2QsaURBQW1FO0FBQ3JFOztBQUNBO0VBQ0UsaUJBQWlCO0VBQ2pCLGFBQWE7QUFDZjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTs7RUFFRTtJQUNFLFNBQVM7RUFDWDs7RUFFQTtJQUNFLDBCQUEwQjtFQUM1Qjs7RUFFQTtJQUNFLDBCQUEwQjtFQUM1Qjs7RUFFQTtJQUNFLHVCQUF1QjtFQUN6QjtBQUNGOztBQUVBLDhCQUFnQix5Q0FBeUM7RUFDdkQsYUFBYTs7QUFFZjs7QUFIQSxxQkFBZ0IseUNBQXlDO0VBQ3ZELGFBQWE7O0FBRWY7O0FBSEEseUJBQWdCLHlDQUF5QztFQUN2RCxhQUFhOztBQUVmOztBQUhBLDBCQUFnQix5Q0FBeUM7RUFDdkQsYUFBYTs7QUFFZjs7QUFIQSxnQkFBZ0IseUNBQXlDO0VBQ3ZELGFBQWE7O0FBRWY7O0FBQ0EsT0FBTyx1RUFBdUU7QUFDOUUscUJBQXFCO0FBQ3JCLGFBQWE7QUFDYixrQkFBa0IsRUFBRTs7QUFJbkIsV0FBVyw0QkFBNEI7RUFDdEMsMkJBQTJCO0VBQzNCLHdCQUF3QjtFQUN4QixvQ0FBb0MsQ0FBQzs7QUFHckMsVUFBVSxvQkFBb0I7SUFDNUIsd0JBQXdCO0lBQ3hCLHFCQUFxQjtJQUNyQiw0QkFBNEI7SUFDNUIsMkJBQTJCO0lBQzNCLG1DQUFtQztJQUNuQyx5QkFBeUIsQ0FBQzs7QUFFOUIsNkNBQTZDLFdBQVcsQ0FBQzs7QUFLekQsWUFBWSxlQUFlO0FBQzNCLFVBQVU7QUFDVixnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQzs7QUFJdEM7RUFDRSx1QkFBdUI7RUFDdkIsbUNBQW1DO0VBQ25DLHlDQUF5QztFQUN6Qyw0QkFBNEI7RUFDNUIsNEJBQTRCO0FBQzlCOztBQUVBO0VBQ0UsY0FBYztFQUNkLHNCQUFzQjtFQUN0QixxQkFBcUI7RUFDckIsVUFBVTtFQUNWLGdEQUFnRDtBQUNsRDs7QUFFQTtFQUNFLFdBQVc7RUFDWCxtQ0FBbUM7RUFDbkMsK0JBQStCO0FBQ2pDOztBQUVBO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWiw4QkFBOEI7RUFDOUIscUNBQXFDO0VBQ3JDLDRCQUE0QjtBQUM5Qjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFHQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLHFCQUFxQjtFQUNyQixzQkFBc0I7RUFDdEIsaUJBQWlCO0FBQ25COztBQUVJO0FBQ0osYUFBYSxFQUFFLGdDQUFnQztBQUMvQyxnQkFBZ0I7QUFDaEIsc0JBQXNCO0FBQ3RCLGFBQWE7QUFDYjs7QUFFQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTtBQUNBLHFCQUFxQjtBQUNyQjs7QUFHQSwwQ0FBMEM7O0FBRzFDO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsMkJBQTJCO0FBQzdCOztBQUdBO0FBQ0EsS0FBSyxxQkFBcUIsQ0FBQzs7QUFFM0IsbUJBQW1CLG9CQUFvQixDQUFDOztBQUV4Qzs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL2Vucm9sbG1lbnQvZW5yb2xsbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmhlYWRlckNsYXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJiNTc5YTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uLy4uL2Fzc2V0cy9pbWcvTlBMSElDX21haW5fQkcuanBnKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBoZWlnaHQ6IDEyMHB4O1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4ubG9nb0NsYXNzIHtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIGhlaWdodDogNy41cmVtO1xuICBtYXJnaW46IDAgYXV0bztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uLy4uL2Fzc2V0cy9pbWcvTlBMSElDX2hlYWRlcl9iYW5uZXIucG5nKTtcbn1cbi5jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDE0NDBweDtcbiAgd2lkdGg6IDEzMTBweDtcbn1cblxuLmZvcm10aXRsZSB7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblxuICAubWFpbi1sb2dvIHtcbiAgICB0b3A6IDI0cHg7XG4gIH1cblxuICBhIGIge1xuICAgIGZvbnQtc2l6ZTogMjJweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgYSBzcGFuIHtcbiAgICBmb250LXNpemU6IDIycHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5sb2dvIHtcbiAgICB3aWR0aDogMjByZW0gIWltcG9ydGFudDtcbiAgfVxufVxuXG46OnBsYWNlaG9sZGVyIHsgLyogQ2hyb21lLCBGaXJlZm94LCBPcGVyYSwgU2FmYXJpIDEwLjErICovXG4gIGNvbG9yOiNiYmI2YjY7XG4gXG59XG4uYmdhZGR7YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjNjI2YTVjLCAjNTM5YjRjKSFpbXBvcnRhbnQ7XG5jb2xvcjogI2ZmZiFpbXBvcnRhbnQ7XG5wYWRkaW5nOiAxMHB4O1xubWFyZ2luLWJvdHRvbTogMHB4Ozt9XG5cblxuXG4gLnN0eWxlbGluZXtwYWRkaW5nLWxlZnQ6IDE4cHghaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogYm9sZCFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMWMzNGJiIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUhaW1wb3J0YW50O31cblxuXG4gIC5lcnJvcnNtc3tjb2xvcjogcmVkIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBibG9jayFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCUhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMThweCFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQhaW1wb3J0YW50O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTJweCFpbXBvcnRhbnQ7fVxuXG4uYnRuLXByaW1hcnkuZGlzYWJsZWQsIC5idG4tcHJpbWFyeTpkaXNhYmxlZHtjb2xvcjogIzAwMDt9XG5cblxuXG5cbi5lcnJwcnRleHQge2ZvbnQtc2l6ZTogMTJweDtcbmNvbG9yOiByZWQ7ICAgXG5mb250LXdlaWdodDogNTAwOyBmb250LWZhbWlseTogcmV2ZXJ0O31cblxuXG5cbi5zdGVwZm9ybW1hbmFnZSB7XG4gIHBhZGRpbmc6IDE4cHghaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAwLjVweCAzcHggcmdiKDIsIDIsIDIsMC4xNSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweCFpbXBvcnRhbnQ7XG59XG5cbi5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICBjb2xvcjogIzQ5NTA1NztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjODBiZGZmO1xuICBvdXRsaW5lOiAwO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgwLCAxMjMsIDI1NSwgMC4yNSk7XG59XG5cbi5idG4tc3VjY2VzcyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjg5YTVlIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjZjg5YTVlIWltcG9ydGFudDtcbn1cblxuLmZvcm1zZXQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzOHB4O1xuICBiYWNrZ3JvdW5kOiAjZmVmNGVlICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM1ZTVlNWU0MCFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweCFpbXBvcnRhbnQ7XG59XG5cbmxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuXG4udGVybXMtY29udGVudCB7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG59XG5cbi50ZXJtLWl0ZW0ge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4udGVybS1pdGVtIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuICAgIC50ZXJtcy1jb250YWluZXIge1xuaGVpZ2h0OiAxNTBweDsgLyogQWRqdXN0IHRoZSBoZWlnaHQgYXMgbmVlZGVkICovXG5vdmVyZmxvdy15OiBhdXRvO1xuYm9yZGVyOiAxcHggc29saWQgI2NjYztcbnBhZGRpbmc6IDEwcHg7XG59XG5cbi50ZXJtcy1jb250ZW50IHtcbm1heC1oZWlnaHQ6IDEwMCU7XG59XG5cbi50ZXJtcy10ZXh0IHtcbndoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbn1cblxuXG4vKiAuc3RlcGZvcm1tYW5hZ2V7bWFyZ2luLWJvdHRvbTogMjVweDt9ICovXG5cblxuLmZvcm1zZXQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0NnB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYmJiNmI2NDA7XG59XG5cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzIwcHgpIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuLm1yMHttYXJnaW46IDBweCFpbXBvcnRhbnQ7fVxuXG4ucmMtYW5jaG9yLW5vcm1hbHsgd2lkdGg6IDk4JSFpbXBvcnRhbnQ7fVxuXG59XG5cbi5tdC0xNXtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cblxuLm10LTMwe1xuICBtYXJnaW4tdG9wOiAzMHB4O1xufVxuXG4iXX0= */\"","import { DatePipe, Location } from \"@angular/common\";\nimport { Component, Input, OnInit, ViewChild } from \"@angular/core\";\nimport { FormBuilder, FormGroup, NgForm, Validators } from \"@angular/forms\";\nimport { MatDialog } from \"@angular/material\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { first, map } from \"rxjs/operators\";\nimport { AddressValidateModel } from \"src/app/models/addressValidateModel\";\nimport { EmployeesService } from \"src/app/services/employees.service\";\nimport { GroupService } from \"src/app/services/group.service\";\nimport { MemberService } from \"src/app/services/member.service\";\nimport { SharedService } from \"src/app/services/shared.service\";\nimport { SignatureService } from \"src/app/services/signature.service\";\nimport { AddDependentComponent } from \"./add-dependent/add-dependent.component\";\nimport { MustMatch } from \"src/app/helpers/must-match.validators\";\nimport { AlertifyService } from \"src/app/services/alertify.service\";\nimport { EnrollmentService } from \"src/app/services/enrollment.service\";\nimport { LeadValidateComponent } from \"./lead-validate/lead-validate.component\";\nimport { AuthenticationService } from \"src/app/services/authentication.service\";\n\n@Component({\n selector: \"app-add-enrollment\",\n templateUrl: \"./enrollment.component.html\",\n styleUrls: [\"./enrollment.component.css\"],\n})\nexport class EnrollmentComponent implements OnInit {\n planId: number;\n selectedPlanName: string;\n selectedGroup: string;\n leadId: number;\n isValidLead: boolean = false;\n leadForm: FormGroup;\n currentUser: any;\n \n isEnrollmentValid: boolean = false;\n validateInprogress: boolean = true;\n\n groupId: string;\n memberId: string;\n isCheckboxChecked: boolean = false;\n plan: any;\n isHealthInsurance: boolean;\n addEmployeeForm: FormGroup;\n loading = false;\n submitted = false;\n successMessage = \"\";\n errormsg = \"\";\n IsAddressMsgTrue = \"\";\n IsAddressMsgFalse = \"\";\n errorMessage: string[] = [];\n signature: string;\n AllStates: any[];\n AllPlans: any[];\n groupIdForAddMember: string;\n isAddressVerified: boolean = false;\n addressValidateModel: AddressValidateModel;\n dependentList: any[] = [];\n city: string;\n state: string;\n routingMessage: string;\n isValidRoutingNumber: boolean;\n minPrimaryAge: string;\n maxPrimaryAge: string;\n isMinPrimaryAgeValid: boolean = true;\n isMaxPrimaryAgeValid: boolean = true;\n\n constructor(\n private _ActivatedRoute: ActivatedRoute,\n private _sharedService: SharedService,\n private location: Location,\n private _fb: FormBuilder,\n private _employeeService: EmployeesService,\n private signatureService: SignatureService,\n private enrollmentService: EnrollmentService,\n private memberService: MemberService,\n private groupService: GroupService,\n private _router: Router,\n private dialog: MatDialog, \n private authenticationService: AuthenticationService,\n private _alertify: AlertifyService,\n ) {\n\n }\n\n ngOnInit() {\n this.addressValidateModel = {\n address1: \"\",\n address2: \"\",\n city: \"\",\n state: \"\",\n postal: \"\"\n };\n this.currentUser = this.getCurrentUserFromLocalStorage();\n this._ActivatedRoute.queryParamMap.subscribe((param) => {\n this.groupId = param.get('groupid');\n this.planId = Number(param.get('planid'));\n this.leadId = Number(param.get('leadid'));\n });\n this.bindAllPlans();\n this.bindAllStates();\n if (this.leadId != null && this.leadId != undefined && this.leadId != 0) {\n this.openLeadValidationPopup();\n }\n if (this.planId != null && this.planId != undefined && this.planId != 0) {\n this.getExternalIDFromGroup();\n }\n if (this.leadId == 0 && this.planId == 0) {\n this._router.navigate(['enrollment/error'], {\n queryParams: { error: 'Invalid Link' },\n });\n }\n this.plan = this._sharedService.getData();\n this.addEmployeeForm = this._fb.group({\n id: [\"\"],\n firstName: [\"\", Validators.required],\n lastName: [\"\", Validators.required],\n addressLine1: [\"\", Validators.required],\n addressLine2: [\"\"],\n middleName: [\"\"],\n planId: [\"\", Validators.required],\n zipCode: [\"\", Validators.required],\n mobile: [\"\", Validators.required],\n secondaryMobile: [\"\"],\n workNumber: [\"\"],\n email: [\"\", [Validators.required, Validators.email]],\n dob: [\"\", Validators.required],\n gender: [\"\", Validators.required],\n maritalStatus: [\"\", Validators.required],\n ssn: [\"\", Validators.required],\n hasInsurance: [\"1\", Validators.required],\n healthInsuranceCompanyName: [\"\", Validators.required],\n insurancePolicyNo: [\"\", Validators.required],\n insuranceEffectiveDate: [\"\", Validators.required],\n insuranceEndDate: [\"\", Validators.required],\n insuranceAddress: [\"\", Validators.required],\n accountNumber: [\"\", Validators.required],\n confirmAccountNumber: [\"\", Validators.required],\n routingNumber: [\"\", Validators.required],\n signatureName: [\"\", Validators.required],\n signaturePath: [\"\", Validators.required],\n signatureDateTime: new Date().toISOString().slice(0, 10),\n isHealthInsurance: [null],\n groupExternalId: this.groupId,\n accountType: [\"\", Validators.required],\n browserName: [\"\"],\n browserVersion: [\"\"],\n city: [\"\"],\n state: [\"\"],\n termsAccepted: [false]\n },\n {\n validator: MustMatch('accountNumber', 'confirmAccountNumber'),\n });\n\n this.groupService.getAllGroups().subscribe((response) => {\n const allGroups: any = response;\n const validGroupIds = allGroups.map((group) => group.id);\n \n // if (!validGroupIds.includes(this.groupIdAsInt)) {\n // this._router.navigate(['enrollment/error'], {\n // queryParams: { error: 'Invalid Link' },\n // });\n // return false;\n // }\n\n return true;\n }\n );\n var minPA = new Date();\n minPA.setFullYear(minPA.getFullYear() - 100);\n var yr = minPA.getFullYear();\n var mn = (minPA.getMonth() + 1) > 9 ? (minPA.getMonth() + 1) : '0' + (minPA.getMonth() + 1);\n var dt = minPA.getDate();\n this.minPrimaryAge = yr + '-' + mn + '-' + dt;\n var maxPA = new Date();\n maxPA.setFullYear(maxPA.getFullYear() - 21);\n yr = maxPA.getFullYear();\n mn = (maxPA.getMonth() + 1) > 9 ? (maxPA.getMonth() + 1) : '0' + (maxPA.getMonth() + 1);\n dt = maxPA.getDate();\n this.maxPrimaryAge = yr + '-' + mn + '-' + dt;\n\n }\n back() {\n this.location.back();\n }\n\n get f() {\n return this.addEmployeeForm.controls;\n }\n\n handleClick(value: boolean) {\n this.isHealthInsurance = value;\n }\n\n\n CheckingAddressValidation() {\n this.addressValidateModel.address1 = this.addEmployeeForm.value.address1;\n this.addressValidateModel.address2 = this.addEmployeeForm.value.address2;\n this.addressValidateModel.postal = this.addEmployeeForm.value.zipcode;\n this._employeeService.ValidateAddress(this.addressValidateModel).subscribe(\n (response) => {\n this.isAddressVerified = response.isValid;\n if (this.isAddressVerified == true) {\n this.IsAddressMsgFalse = \"\"\n this.IsAddressMsgTrue = \"Address Verified\"\n }\n else if (this.isAddressVerified == false) {\n this.IsAddressMsgTrue = \"\"\n this.IsAddressMsgFalse = \"Invalid Address\"\n }\n }\n )\n }\n\n getCurrentUserFromLocalStorage() {\n // Get the currentUser from localStorage (this logic may vary based on your implementation)\n const currentUser = localStorage.getItem('currentUser');\n return currentUser ? JSON.parse(currentUser) : null;\n }\n\n getExternalIDFromGroup() {\n this.groupService.getGroupDetailsByID(this.groupId).subscribe(\n (response) => {\n this.groupIdForAddMember = response.externalId;\n this.selectedGroup = response.name;\n }, error => {\n console.log(error.error);\n //this._alertify.error(error.error);\n this.authenticationService.currentUser.subscribe(x => {\n this.currentUser = x;\n if (!!this.currentUser) {\n if(this.authenticationService.isAdmin){\n this.back();\n }\n else {\n this._router.navigate(['enrollment/error'], {\n queryParams: { error: error.error },\n });\n }\n } \n else {\n this._router.navigate(['enrollment/error'], {\n queryParams: { error: error.error },\n });\n }\n }); \n }\n )\n }\n\n getGroupByGroupId() {\n this.groupService.getGroupByGroupId(Number(this.groupId)).subscribe(\n (response) => {\n this.groupIdForAddMember = response.externalId;\n this.selectedGroup = response.name;\n this.f.groupExternalId.setValue(response.externalId);\n }, error => {\n console.log(error.error);\n //this._alertify.error(error.error);\n this.authenticationService.currentUser.subscribe(x => {\n this.currentUser = x;\n if (!!this.currentUser) {\n if(this.authenticationService.isAdmin){\n this.back();\n }\n else {\n this._router.navigate(['enrollment/error'], {\n queryParams: { error: error.error },\n });\n }\n } \n else {\n this._router.navigate(['enrollment/error'], {\n queryParams: { error: error.error },\n });\n }\n }); \n }\n )\n } \n\n bindAllStates() {\n this._employeeService.getAllStates().subscribe((response) => {\n this.AllStates = response;\n })\n }\n\n bindAllPlans() {\n this._employeeService.getAllPlans().subscribe((response) => {\n this.AllPlans = response;\n const plan = this.AllPlans.find(x => x.id === this.planId);\n if (plan) {\n // Set the plan name to a property in your component\n this.selectedPlanName = plan.name + '-' + plan.monthlyPremiumAmount;\n this.validateInprogress = false;\n this.isEnrollmentValid = true;\n this.submitted = false;\n }\n //this.addEmployeeForm.get('plans').setValue(this.AllPlans);\n })\n }\n\n onCheckboxChange() {\n this.isCheckboxChecked = !this.isCheckboxChecked;\n }\n\n isSubmitDisabled() {\n return !this.isCheckboxChecked;\n }\n \n dobValidate() {\n const minDate = new Date();\n minDate.setFullYear(minDate.getFullYear() - 100);\n const maxDate = new Date();\n maxDate.setFullYear(maxDate.getFullYear() - 21);\n const dob = new Date(this.addEmployeeForm.controls.dob.value);\n if (dob < minDate) {\n this.isMaxPrimaryAgeValid = false;\n }\n else {\n this.isMaxPrimaryAgeValid = true;\n }\n\n if (dob > maxDate) {\n this.isMinPrimaryAgeValid = false;\n }\n else {\n this.isMinPrimaryAgeValid = true;\n }\n }\n submitOnEnter(event) {\n if (event.keyCode === 13) {\n this.onSubmit(); //calling submit function on enter\n }\n }\n onSubmit() {\n if (this.addEmployeeForm.controls.hasInsurance.value == 1) {\n this.addEmployeeForm.get('healthInsuranceCompanyName').setValidators([Validators.required]);\n this.addEmployeeForm.get('healthInsuranceCompanyName').updateValueAndValidity();\n this.addEmployeeForm.get('insurancePolicyNo').setValidators([Validators.required]);\n this.addEmployeeForm.get('insurancePolicyNo').updateValueAndValidity();\n this.addEmployeeForm.get('insuranceAddress').setValidators([Validators.required]);\n this.addEmployeeForm.get('insuranceAddress').updateValueAndValidity();\n this.addEmployeeForm.get('insuranceEffectiveDate').setValidators([Validators.required]);\n this.addEmployeeForm.get('insuranceEffectiveDate').updateValueAndValidity();\n this.addEmployeeForm.get('insuranceEndDate').setValidators([Validators.required]);\n this.addEmployeeForm.get('insuranceEndDate').updateValueAndValidity();\n } else {\n this.addEmployeeForm.get('healthInsuranceCompanyName').clearValidators();\n this.addEmployeeForm.get('healthInsuranceCompanyName').updateValueAndValidity();\n this.addEmployeeForm.get('insurancePolicyNo').clearValidators();\n this.addEmployeeForm.get('insurancePolicyNo').updateValueAndValidity();\n this.addEmployeeForm.get('insuranceAddress').clearValidators();\n this.addEmployeeForm.get('insuranceAddress').updateValueAndValidity();\n this.addEmployeeForm.get('insuranceEffectiveDate').clearValidators();\n this.addEmployeeForm.get('insuranceEffectiveDate').updateValueAndValidity();\n this.addEmployeeForm.get('insuranceEndDate').clearValidators();\n this.addEmployeeForm.get('insuranceEndDate').updateValueAndValidity();\n this.addEmployeeForm.controls.healthInsuranceCompanyName.setValue('');\n this.addEmployeeForm.controls.insurancePolicyNo.setValue('');\n this.addEmployeeForm.controls.insuranceAddress.setValue('');\n this.addEmployeeForm.controls.insuranceEffectiveDate.setValue(null);\n this.addEmployeeForm.controls.insuranceEndDate.setValue(null);\n }\n\n\n this.submitted = true;\n \n \n this.errormsg = \"\";\n this.signature = this.signatureService.getSignatureData()\n if (this.signature != undefined) {\n const splitString = this.signature.split(\"data:image/png;base64,\");\n this.addEmployeeForm.controls.signaturePath.setValue(splitString[1]);\n }\n\n if (!this.isMaxPrimaryAgeValid || !this.isMinPrimaryAgeValid) {\n return;\n }\n if(!this.isValidRoutingNumber){\n return;\n }\n this.addEmployeeForm.controls.termsAccepted.setValue(this.isCheckboxChecked.toString());\n this.addEmployeeForm.controls.planId.setValue(this.planId);\n var browserinfo = this.getBrowserInfo().split(' ');\n this.addEmployeeForm.controls.browserName.setValue(browserinfo[0]);\n this.addEmployeeForm.controls.browserVersion.setValue(browserinfo[1]);\n this.addEmployeeForm.controls.city.setValue(this.city);\n this.addEmployeeForm.controls.state.setValue(this.state);\n if (!this.addEmployeeForm.valid || !this.isCheckboxChecked) {\n return;\n }\n\n \n\n this.loading = true;\n this.memberService.AddMemberToDB(this.groupIdForAddMember, this.addEmployeeForm.value, this.dependentList)\n .pipe(first())\n .subscribe(\n (response) => {\n const jsonString: string = JSON.stringify(response);\n const responseArray: any = JSON.parse(jsonString);\n const idValue: string = responseArray.externalId;\n this.check(idValue, this.groupIdForAddMember);\n this.loading = false;\n },\n (error) => {\n if (error.error instanceof Array) {\n this._alertify.error(error.error);\n error.error.map((err) => this.errorMessage.push(err.value));\n } else if (typeof error.error === \"string\") {\n this.errorMessage.push(error.error);\n this._alertify.error(error.error);\n } else {\n this.errorMessage.push(error);\n this._alertify.error(error.error);\n }\n this.loading = false;\n }\n );\n\n }\n\n check(memberId: string, groupId: string) {\n this._router.navigate(['enrollment/complete'], {\n queryParams: {\n groupid: groupId,\n memberid: memberId\n }\n });\n }\n\n openAddDependent(event: any) {\n event.preventDefault(); \n const dailogRef = this.dialog.open(AddDependentComponent, {\n width: '500px',\n height: 'auto',\n panelClass: 'custom-modalbox',\n data: { dependentList: this.dependentList },\n disableClose: true,\n hasBackdrop: true\n });\n dailogRef.afterClosed().subscribe(result => {\n if (result) {\n result.memberId = 0;\n this.dependentList.push(result); \n }\n });\n }\n\n removeDependent(item: any, index: number) {\n this.dependentList.splice(index, 1);\n }\n getCityStatebyZip(item: any, index: number) {\n this.dependentList.splice(index, 1);\n }\n\n handleOnChange(event: any) {\n if (event.target.value.length >= 5) {\n let xml: string = '' + event.target.value + '';\n this.memberService.getCityStateByZip(xml).subscribe((res) => {\n if (res) {\n this.city = res.zipCode.city;\n this.state = res.zipCode.state;\n }\n });\n }\n }\n\n getBrowserInfo() {\n var ua = navigator.userAgent;\n var tem;\n var M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\n if (/trident/i.test(M[1])) {\n tem = /\\brv[ :]+(\\d+)/g.exec(ua) || []; return 'IE ' + (tem[1] || '');\n }\n if (M[1] === 'Chrome') {\n tem = ua.match(/\\b(OPR|Edge)\\/(\\d+)/);\n if (tem != null)\n return tem.slice(1).join(' ').replace('OPR', 'Opera');\n }\n M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];\n if ((tem = ua.match(/version\\/(\\d+)/i)) != null) M.splice(1, 1, tem[1]);\n return M.join(' ');\n }\n getAddressFromRoutingNumber() {\n var _this = this;\n this.enrollmentService.validateRoutingNumber(this.addEmployeeForm.value.routingNumber)\n .pipe(first())\n .subscribe(\n (res: any) => {\n _this.routingMessage = res.message;\n _this.isValidRoutingNumber = true;\n },\n (error) => {\n _this.isValidRoutingNumber = false;\n _this.routingMessage = error.error.message;\n }\n );\n }\n\n\n getLeadById() {\n this.enrollmentService\n .GetLeadById(this.leadId)\n .pipe(first())\n .subscribe((res1: any) => {\n if (res1 != null) {\n this.setLeadData(res1);\n }\n });\n }\n setLeadData(data: any) {\n this.f.firstName.setValue(data.firstName);\n this.f.lastName.setValue(data.lastName);\n this.f.middleName.setValue(data.middleName);\n this.f.dob.setValue(data.dob.slice(0, 10));\n this.f.email.setValue(data.email);\n this.f.planId.setValue(data.planId);\n this.planId = data.planId;\n this.bindAllPlans();\n this.f.mobile.setValue(data.mobile);\n this.f.gender.setValue(data.gender);\n this.groupId = data.groupId;\n this.getGroupByGroupId();\n }\n\n openLeadValidationPopup() {\n const dailogRef = this.dialog.open(LeadValidateComponent, {\n width: '500px',\n height: 'auto',\n data: this.leadId,\n disableClose: true,\n hasBackdrop: false\n });\n dailogRef.afterClosed().subscribe(result => {\n if (result) {\n this.validateInprogress = false;\n this.isEnrollmentValid = true;\n this.submitted = false;\n this.getLeadById();\n }\n else {\n this._router.navigate(['enrollment/error'], {\n queryParams: { error: 'Please validate date of birth before enrollment' },\n });\n }\n });\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { BtnCellRendererComponent } from 'src/app/shared/controls/renderers/button-renderer/btn.renderer';\nimport { AgGridModule } from 'ag-grid-angular';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { EnrollmentComponent } from '../enrollment/enrollment.component';\nimport { AddDependentComponent } from '../enrollment/add-dependent/add-dependent.component';\nimport { SignaturePadComponent } from 'src/app/shared/controls/signature/signature-pad/signature-pad.component';\nimport { SignaturePadModule } from 'angular2-signaturepad';\nimport { AlertifyService } from 'src/app/services/alertify.service';\nimport { LeadValidateComponent } from './lead-validate/lead-validate.component';\n\n@NgModule({\n entryComponents: [AddDependentComponent,LeadValidateComponent],\n declarations: [\n EnrollmentComponent,\n AddDependentComponent,\n SignaturePadComponent,\n LeadValidateComponent\n ],\n imports: [\n AgGridModule.withComponents([\n BtnCellRendererComponent\n ]),\n CommonModule,\n BrowserModule,\n FormsModule,\n NgbModule,\n ReactiveFormsModule,\n SharedModule,\n SignaturePadModule\n ],\n exports: [\n AddDependentComponent,LeadValidateComponent\n ],\n providers: [ \n AlertifyService\n ]\n})\nexport class EnrollmentModule { }\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL2Vucm9sbG1lbnQvbGVhZC12YWxpZGF0ZS9sZWFkLXZhbGlkYXRlLmNvbXBvbmVudC5jc3MifQ== */\"","import { DatePipe } from '@angular/common';\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';\nimport { first } from 'rxjs/operators';\nimport { AlertifyService } from 'src/app/services/alertify.service';\nimport { EnrollmentService } from 'src/app/services/enrollment.service';\n\n@Component({\n selector: 'app-lead-validate',\n templateUrl: './lead-validate.component.html',\n styleUrls: ['./lead-validate.component.css']\n})\nexport class LeadValidateComponent implements OnInit {\n\n leadId: any;\n leadForm: FormGroup;\n loading = false;\n submitted = false;\n constructor(\n private enrollmentService: EnrollmentService,\n private _alertify: AlertifyService,\n\n private _fb: FormBuilder, public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any) {\n this.leadId = data;\n }\n\n ngOnInit() {\n this.leadForm = this._fb.group({\n leadId: this.leadId,\n dob: ['', Validators.required],\n });\n }\n submitOnEnter(event) {\n if (event.keyCode === 13) {\n this.validateLead(); //calling submit function on enter\n }\n }\n get getLeadForm() {\n return this.leadForm.controls;\n }\n\n validateLead() {\n this.submitted = true;\n if (this.leadForm.invalid) return;\n this.loading = true;\n\n const datePipe = new DatePipe('en-Us');\n this.leadForm.controls.dob.setValue(new Date(datePipe.transform(this.leadForm.value.dob, 'yyyy-MM-dd')));\n\n //validate captcha\n this.enrollmentService\n .ValidateEnrollmentFromLeadId(this.leadForm.value)\n .pipe(first())\n .subscribe((res1: any) => {\n this.loading = false;\n if (res1) {\n this.dialogRef.close(true);\n } else {\n this._alertify.error(\"No lead found\");\n }\n }, error => {\n this.loading = false;\n if (error.error != null)\n this._alertify.error(error.error);\n else\n this._alertify.error(error.status + ' ' + error.statusText);\n });\n }\n handleOnClose(event: any) {\n this.dialogRef.close(false);\n }\n}\n","export default \".headerClass {\\n background-color: #2b579a;\\n background-image: url('NPLHIC_main_BG.jpg');\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: cover;\\n height: 120px;\\n margin-top: 0;\\n }\\n \\n .logoClass {\\n background-repeat: no-repeat;\\n background-position: left;\\n position: relative;\\n z-index: 1;\\n background-size: contain;\\n height: 7.5rem;\\n margin: 0 auto;\\n background-image: url('NPLHIC_header_banner.png');\\n }\\n \\n .container {\\n max-width: 1440px;\\n width: 1310px;\\n }\\n \\n .formtitle {\\n padding-bottom: 0px;\\n }\\n \\n @media screen and (min-width: 320px) and (max-width: 600px) {\\n \\n .main-logo {\\n top: 24px;\\n }\\n \\n a b {\\n font-size: 22px !important;\\n }\\n \\n a span {\\n font-size: 22px !important;\\n }\\n \\n .logo {\\n width: 20rem !important;\\n }\\n }\\n \\n .errorsms{color: red!important;\\n display: block!important;\\n width: 100%!important;\\n padding-left: 18px!important;\\n font-weight: bold!important;\\n text-transform: uppercase!important;\\n font-size: 12px!important;}\\n \\n .formset {\\n width: 100%;\\n height: 38px;\\n background: #fef4ee !important;\\n border: 1px solid #5e5e5e40!important;\\n border-radius: 4px!important;\\n }\\n \\n @media screen and (min-width: 320px) and (max-width: 600px) {\\n .mr0{margin: 0px!important;}\\n \\n .rc-anchor-normal{ width: 98%!important;}\\n \\n }\\n \\n .mt-18p {\\n margin-top: 10%;\\n}\\n \\n .hraForm {\\n font-size: 32px;\\n line-height: 46px;\\n text-align: center;\\n color: #2b579a;\\n font-weight: bold;\\n}\\n \\n .my-20{\\n margin: 20px 0px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udHJvbHMvZXJyb3ItcmVkaXJlY3Rpb24vaW52YWxpZC1lbnJvbGxtZW50LWxpbmsvaW52YWxpZC1lbnJvbGxtZW50LWxpbmsuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLHlCQUF5QjtJQUN6QiwyQ0FBZ0U7SUFDaEUsMkJBQTJCO0lBQzNCLDRCQUE0QjtJQUM1QixzQkFBc0I7SUFDdEIsYUFBYTtJQUNiLGFBQWE7RUFDZjs7RUFFQTtJQUNFLDRCQUE0QjtJQUM1Qix5QkFBeUI7SUFDekIsa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVix3QkFBd0I7SUFDeEIsY0FBYztJQUNkLGNBQWM7SUFDZCxpREFBc0U7RUFDeEU7O0VBQ0E7SUFDRSxpQkFBaUI7SUFDakIsYUFBYTtFQUNmOztFQUVBO0lBQ0UsbUJBQW1CO0VBQ3JCOztFQUVBOztJQUVFO01BQ0UsU0FBUztJQUNYOztJQUVBO01BQ0UsMEJBQTBCO0lBQzVCOztJQUVBO01BQ0UsMEJBQTBCO0lBQzVCOztJQUVBO01BQ0UsdUJBQXVCO0lBQ3pCO0VBQ0Y7O0VBR0UsVUFBVSxvQkFBb0I7TUFDNUIsd0JBQXdCO01BQ3hCLHFCQUFxQjtNQUNyQiw0QkFBNEI7TUFDNUIsMkJBQTJCO01BQzNCLG1DQUFtQztNQUNuQyx5QkFBeUIsQ0FBQzs7RUFJOUI7SUFDRSxXQUFXO0lBQ1gsWUFBWTtJQUNaLDhCQUE4QjtJQUM5QixxQ0FBcUM7SUFDckMsNEJBQTRCO0VBQzlCOztFQUlBO0VBQ0EsS0FBSyxxQkFBcUIsQ0FBQzs7RUFFM0IsbUJBQW1CLG9CQUFvQixDQUFDOztFQUV4Qzs7RUFHRjtJQUNJLGVBQWU7QUFDbkI7O0VBRUE7SUFDSSxlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixjQUFjO0lBQ2QsaUJBQWlCO0FBQ3JCOztFQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCIiwiZmlsZSI6InNyYy9hcHAvY29udHJvbHMvZXJyb3ItcmVkaXJlY3Rpb24vaW52YWxpZC1lbnJvbGxtZW50LWxpbmsvaW52YWxpZC1lbnJvbGxtZW50LWxpbmsuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oZWFkZXJDbGFzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzJiNTc5YTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vLi4vLi4vYXNzZXRzL2ltZy9OUExISUNfbWFpbl9CRy5qcGcpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgaGVpZ2h0OiAxMjBweDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIFxuICAubG9nb0NsYXNzIHtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIGhlaWdodDogNy41cmVtO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi8uLi8uLi9hc3NldHMvaW1nL05QTEhJQ19oZWFkZXJfYmFubmVyLnBuZyk7XG4gIH1cbiAgLmNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAxNDQwcHg7XG4gICAgd2lkdGg6IDEzMTBweDtcbiAgfVxuICBcbiAgLmZvcm10aXRsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgfVxuICBcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzIwcHgpIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICBcbiAgICAubWFpbi1sb2dvIHtcbiAgICAgIHRvcDogMjRweDtcbiAgICB9XG4gIFxuICAgIGEgYiB7XG4gICAgICBmb250LXNpemU6IDIycHggIWltcG9ydGFudDtcbiAgICB9XG4gIFxuICAgIGEgc3BhbiB7XG4gICAgICBmb250LXNpemU6IDIycHggIWltcG9ydGFudDtcbiAgICB9XG4gIFxuICAgIC5sb2dvIHtcbiAgICAgIHdpZHRoOiAyMHJlbSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICBcbiAgXG4gICAgLmVycm9yc21ze2NvbG9yOiByZWQhaW1wb3J0YW50O1xuICAgICAgZGlzcGxheTogYmxvY2shaW1wb3J0YW50O1xuICAgICAgd2lkdGg6IDEwMCUhaW1wb3J0YW50O1xuICAgICAgcGFkZGluZy1sZWZ0OiAxOHB4IWltcG9ydGFudDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkIWltcG9ydGFudDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UhaW1wb3J0YW50O1xuICAgICAgZm9udC1zaXplOiAxMnB4IWltcG9ydGFudDt9XG4gIFxuICBcbiAgXG4gIC5mb3Jtc2V0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgYmFja2dyb3VuZDogI2ZlZjRlZSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM1ZTVlNWU0MCFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IWltcG9ydGFudDtcbiAgfVxuICBcbiAgXG4gIFxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5tcjB7bWFyZ2luOiAwcHghaW1wb3J0YW50O31cbiAgXG4gIC5yYy1hbmNob3Itbm9ybWFseyB3aWR0aDogOTglIWltcG9ydGFudDt9XG4gIFxuICB9XG4gIFxuICBcbi5tdC0xOHAge1xuICAgIG1hcmdpbi10b3A6IDEwJTtcbn1cblxuLmhyYUZvcm0ge1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICBsaW5lLWhlaWdodDogNDZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICMyYjU3OWE7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5teS0yMHtcbiAgbWFyZ2luOiAyMHB4IDBweDtcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'app-invalid-enrollment-link',\n templateUrl: './invalid-enrollment-link.component.html',\n styleUrls: ['./invalid-enrollment-link.component.css']\n})\nexport class InvalidEnrollmentLinkComponent implements OnInit {\n\n message:string;\n currentUser:any;\n constructor(private _ActivatedRoute: ActivatedRoute) { }\n\n ngOnInit() {\n this._ActivatedRoute.queryParamMap.subscribe((param) => {\n this.message = param.get('error');\n });\n this.currentUser = this.getCurrentUserFromLocalStorage();\n }\n\n getCurrentUserFromLocalStorage() {\n // Get the currentUser from localStorage (this logic may vary based on your implementation)\n const currentUser = localStorage.getItem('currentUser');\n return currentUser ? JSON.parse(currentUser) : null;\n }\n\n}\n","export default \"/*\\nHigh DPI screens (retina macbooks, highresolution laptops, etc)\\n*/\\n/* Firefox specific styles go here */\\n/*\\nCOMMON COLOR NAMES\\n\\nThese colors are mapped to the names from the official colors.\\nInstead of having names like `crush` or `blaze`, developers will use their common, non-marketized name.\\neg. $red: crush\\n $orange: blaze\\n\\nThen, use the `hra-color` function to get the color\\neg. color: hra-color($red)\\n*/\\n/* **** */\\n/* * Charts Colors */\\n/* info text background */\\n/* Use following classes for aesthetics only - New UI KIT */\\n/* Color Mapping*/\\n/*ends*/\\n/* Used for grids and margins */\\n/*\\n font sizes\\n */\\n/*\\n * Header size\\n */\\n/*\\n * Device Group settings\\n */\\n/*\\n * Border settings\\n */\\n/*\\n * Shadows go by level\\n */\\n/*\\n * Padding settings\\n */\\n/*\\n * Inputs\\n */\\n/*\\n * ToolTips\\n */\\n/*\\n * Action bar sizes\\n */\\n/**\\n* Device grid sizes\\n*/\\n/*\\n * Focus border\\n */\\n/*\\n * Border\\n */\\n/*\\n * Pop-up\\n*/\\n/*\\n* Status Notification\\n*/\\n/*\\n Round button sizes\\n */\\n/*\\n * Image Icon Sizes\\n */\\n/** Modal sizes **/\\n:host {\\n height: 100vh;\\n width: 100vw;\\n display: block; }\\n:host #logo-container {\\n padding: 0; }\\n.login-form-title {\\n width: 100%;\\n display: block;\\n font-size: 1.875rem;\\n color: hma-color(grey, 80);\\n line-height: 1.2;\\n text-align: center; }\\n.btn-login {\\n width: 100%;\\n color: #000;\\n height: 2.625rem;\\n background: #dfd269;\\n font-size: 1.125rem; }\\n.form-link-actions {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-end;\\n font-size: 0.875rem; }\\n.form-link-actions a {\\n line-height: 2; }\\n.form-link-actions .forget-pass {\\n color: hma-color(grey, 60); }\\n.form-link-actions .register-user {\\n color: hma-color(blaze, 80); }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21lZGlhcXVlcmllcy5zY3NzIiwic3JjL2FwcC9jb250cm9scy9mb3Jnb3QtcGFzc3dvcmQvZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9zdHlsZXMvYmFzZS9fbWl4aW5zLnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvc2hhcmVkL3N0eWxlcy9iYXNlL19jb2xvcnMuc2NzcyIsIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX3NldHRpbmdzLnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvY29udHJvbHMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4QkE7O0NDNUJDO0FDMEtELG9DQUFBO0FDNUtBOzs7Ozs7Ozs7O0NGY0M7QUUrREQsU0FBQTtBQVVBLG9CQUFBO0FBS0EseUJBQUE7QUFJQSwyREFBQTtBQUVBLGlCQUFBO0FBb0JBLE9BQUE7QUNuSEEsK0JBQUE7QUFpQkE7O0VISUU7QUdtQkY7O0VIaEJFO0FHOEJGOztFSDNCRTtBR3lDRjs7RUh0Q0U7QUcrQ0Y7O0VINUNFO0FHa0VGOztFSC9ERTtBR2lGRjs7RUg5RUU7QUdvRkY7O0VIakZFO0FHNEZGOztFSHpGRTtBR2dHRjs7Q0g3RkM7QUdxR0Q7O0VIbEdFO0FHd0dGOztFSHJHRTtBRzhHRjs7Q0gzR0M7QUdxSEQ7O0NIbEhDO0FHMEhEOztFSHZIRTtBRzhIRjs7RUgzSEU7QUdzSUYsa0JBQUE7QUMxTUE7RUFDRSxhQUFhO0VBQ2IsWUFBWTtFQUNaLGNBQWMsRUFBQTtBQUhoQjtJQUtJLFVBQVUsRUFBQTtBQUlkO0VBQ0UsV0FBVztFQUNYLGNBQWM7RUFDZCxtQkgyRHVEO0VHMUR2RCwwQkFBMkI7RUFDM0IsZ0JBQWdCO0VBQ2hCLGtCQUFrQixFQUFBO0FBR3BCO0VBQ0UsV0FBVztFQUNYLFdBQVc7RUFDWCxnQkhrRHVEO0VHakR2RCxtQkZYbUI7RUVZbkIsbUJIZ0R1RCxFQUFBO0FHN0N6RDtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIscUJBQXFCO0VBQ3JCLG1CSHlDdUQsRUFBQTtBRzdDekQ7SUFNSSxjQUFjLEVBQUE7QUFObEI7SUFTSSwwQkFBMkIsRUFBQTtBQVQvQjtJQVlJLDJCQUEyQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29udHJvbHMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vICBBdXRob3I6IFJhZmFsIEJyb21pcnNraVxuLy8gIHd3dzogaHR0cDovL3JhZmFsYnJvbWlyc2tpLmNvbS9cbi8vICBnaXRodWI6IGh0dHA6Ly9naXRodWIuY29tL3BhcmFub2lkYS9zYXNzLW1lZGlhcXVlcmllc1xuLy9cbi8vICBMaWNlbnNlZCB1bmRlciBhIE1JVCBMaWNlbnNlXG4vL1xuLy8gIFZlcnNpb246XG4vLyAgMS42LjFcbi8vIC0tLSBnZW5lcmF0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gbXEoJGFyZ3MuLi4pIHtcbiAgJG1lZGlhLXR5cGU6ICdvbmx5IHNjcmVlbic7XG4gICRtZWRpYS10eXBlLWtleTogJ21lZGlhLXR5cGUnO1xuICAkYXJnczoga2V5d29yZHMoJGFyZ3MpO1xuICAkZXhwcjogJyc7XG4gIEBpZiBtYXAtaGFzLWtleSgkYXJncywgJG1lZGlhLXR5cGUta2V5KSB7XG4gICAgJG1lZGlhLXR5cGU6IG1hcC1nZXQoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gICAgJGFyZ3M6IG1hcC1yZW1vdmUoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gIH1cbiAgQGVhY2ggJGtleSxcbiAgJHZhbHVlIGluICRhcmdzIHtcbiAgICBAaWYgJHZhbHVlIHtcbiAgICAgICRleHByOiBcIiN7JGV4cHJ9IGFuZCAoI3ska2V5fTogI3skdmFsdWV9KVwiO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgI3skbWVkaWEtdHlwZX0gI3skZXhwcn0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cblxuLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cblxuQG1peGluIGhkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAje3JvdW5kKCRyYXRpbyo5Nil9ZHBpKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gJG9yaWVudGF0aW9uOiBsYW5kc2NhcGUgfCBwb3J0cmFpdFxuQG1peGluIHRhYmxldCgkb3JpZW50YXRpb246IGZhbHNlKSB7XG4gICRtaW46IDI2OHB4O1xuICAkbWF4OiAxMDI0cHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4LCAkb3JpZW50YXRpb246ICRvcmllbnRhdGlvbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIHNtYWxsIGRlc2t0b3AgLSAxMDI1IDwtPiAxMjgwXG5AbWl4aW4gc21hbGwtZGVza3RvcCgpIHtcbiAgJG1pbjogMTAyNXB4O1xuICAkbWF4OiAxMjgwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gbWVkaXVtIGRlc2t0b3AgLSAxMjgxIDwtPiAxNDQwXG5AbWl4aW4gbWVkaXVtLWRlc2t0b3AoKSB7XG4gICRtaW46IDEyODFweDtcbiAgJG1heDogMTQ0MHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIGxhcmdlIGRlc2t0b3AgLSAxNDQxIDwtPiAxNjAwXG5AbWl4aW4gbGFyZ2UtZGVza3RvcCgpIHtcbiAgJG1pbjogMTQ0MXB4O1xuICAkbWF4OiAxNjAwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8geGxhcmdlIGRlc2t0b3AgLSAxNjAxIC0+IGluZmluaXR5XG5AbWl4aW4geGxhcmdlLWRlc2t0b3AoKSB7XG4gICRtaW46IDE2MDFweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBkZXNrdG9wIG92ZXJsYXlcbkBtaXhpbiBkZXNrdG9wLW92ZXJsYXkoKSB7XG4gICAgJG1pbjogMjY4cHg7XG4gICAgJG1heDogOTI2cHg7XG4gICAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cbi8qIEZpcmVmb3ggc3BlY2lmaWMgc3R5bGVzIGdvIGhlcmUgKi9cbi8qXG5DT01NT04gQ09MT1IgTkFNRVNcblxuVGhlc2UgY29sb3JzIGFyZSBtYXBwZWQgdG8gdGhlIG5hbWVzIGZyb20gdGhlIG9mZmljaWFsIGNvbG9ycy5cbkluc3RlYWQgb2YgaGF2aW5nIG5hbWVzIGxpa2UgYGNydXNoYCBvciBgYmxhemVgLCBkZXZlbG9wZXJzIHdpbGwgdXNlIHRoZWlyIGNvbW1vbiwgbm9uLW1hcmtldGl6ZWQgbmFtZS5cbmVnLiAkcmVkOiBjcnVzaFxuICAgICRvcmFuZ2U6IGJsYXplXG5cblRoZW4sIHVzZSB0aGUgYGhyYS1jb2xvcmAgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb2xvclxuZWcuIGNvbG9yOiBocmEtY29sb3IoJHJlZClcbiovXG4vKiAqKioqICovXG4vKiAqIENoYXJ0cyBDb2xvcnMgKi9cbi8qIGluZm8gdGV4dCBiYWNrZ3JvdW5kICovXG4vKiBVc2UgZm9sbG93aW5nIGNsYXNzZXMgZm9yIGFlc3RoZXRpY3Mgb25seSAtIE5ldyBVSSBLSVQgKi9cbi8qIENvbG9yIE1hcHBpbmcqL1xuLyplbmRzKi9cbi8qIFVzZWQgZm9yIGdyaWRzIGFuZCBtYXJnaW5zICovXG4vKlxuICBmb250IHNpemVzXG4gKi9cbi8qXG4gKiBIZWFkZXIgc2l6ZVxuICovXG4vKlxuICogRGV2aWNlIEdyb3VwIHNldHRpbmdzXG4gKi9cbi8qXG4gKiBCb3JkZXIgc2V0dGluZ3NcbiAqL1xuLypcbiAqIFNoYWRvd3MgZ28gYnkgbGV2ZWxcbiAqL1xuLypcbiAqIFBhZGRpbmcgc2V0dGluZ3NcbiAqL1xuLypcbiAqIElucHV0c1xuICovXG4vKlxuICogVG9vbFRpcHNcbiAqL1xuLypcbiAqIEFjdGlvbiBiYXIgc2l6ZXNcbiAqL1xuLyoqXG4qICBEZXZpY2UgZ3JpZCBzaXplc1xuKi9cbi8qXG4gKiBGb2N1cyBib3JkZXJcbiAqL1xuLypcbiAqIEJvcmRlclxuICovXG4vKlxuICogUG9wLXVwXG4qL1xuLypcbiogU3RhdHVzIE5vdGlmaWNhdGlvblxuKi9cbi8qXG4gIFJvdW5kIGJ1dHRvbiBzaXplc1xuICovXG4vKlxuICogSW1hZ2UgSWNvbiBTaXplc1xuICovXG4vKiogTW9kYWwgc2l6ZXMgKiovXG46aG9zdCB7XG4gIGhlaWdodDogMTAwdmg7XG4gIHdpZHRoOiAxMDB2dztcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgOmhvc3QgI2xvZ28tY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwOyB9XG5cbi5sb2dpbi1mb3JtLXRpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEuODc1cmVtO1xuICBjb2xvcjogaG1hLWNvbG9yKGdyZXksIDgwKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5idG4tbG9naW4ge1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6ICMwMDA7XG4gIGhlaWdodDogMi42MjVyZW07XG4gIGJhY2tncm91bmQ6ICNkZmQyNjk7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07IH1cblxuLmZvcm0tbGluay1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG4gIC5mb3JtLWxpbmstYWN0aW9ucyBhIHtcbiAgICBsaW5lLWhlaWdodDogMjsgfVxuICAuZm9ybS1saW5rLWFjdGlvbnMgLmZvcmdldC1wYXNzIHtcbiAgICBjb2xvcjogaG1hLWNvbG9yKGdyZXksIDYwKTsgfVxuICAuZm9ybS1saW5rLWFjdGlvbnMgLnJlZ2lzdGVyLXVzZXIge1xuICAgIGNvbG9yOiBobWEtY29sb3IoYmxhemUsIDgwKTsgfVxuIiwiQGltcG9ydCAnLi9tZWRpYXF1ZXJpZXMnO1xuXG4vLy8gLyBzdHlsZWd1aWRlOmlnbm9yZTpzdGFydFxuLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZT09bnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKT09JyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG4gIEBpZiAkY291bnQ9PTEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY291bnQge1xuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcbiAgfVxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKT09J3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG4gIC8vIFRoZW4gdGhlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBlbXNcbiAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxZW07XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsIHZhbHVlIHRvIG1hdGNoaW5nIHJlbSB2YWx1ZS4gKkFueSogdmFsdWUgcGFzc2VkLCByZWdhcmRsZXNzIG9mIHVuaXQsIGlzIGFzc3VtZWQgdG8gYmUgYSBwaXhlbCB2YWx1ZS4gQnkgZGVmYXVsdCwgdGhlIGJhc2UgcGl4ZWwgdmFsdWUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHJlbSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciBpbiByZW1zLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGhlIGJhc2UgcGl4ZWwgdmFsdWUuIHJlbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLlxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSAhPSdudW1iZXInIHtcbiAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkrJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0ncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XG4gIH1cbiAgLy8gVHVybiAwcmVtIGludG8gMFxuICBAaWYgJHZhbHVlPT0wcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vLyBBbmltYXRpb24ga2V5ZnJhbWVzIGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRhbmltYXRpb24tbmFtZSAtIE5hbWUgb2YgdGhlIGFuaW1hdGlvbi5cbkBtaXhpbiBrZXlmcmFtZXMoJGFuaW1hdGlvbi1uYW1lKSB7XG4gIEAtd2Via2l0LWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtbW96LWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtbXMta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1vLWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBrZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gQW5pbWF0aW9uIGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHIgLSBjc3MzIGFuaW1hdGlvbiBzcGVjLlxuQG1peGluIGFuaW1hdGlvbigkc3RyKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtbW96LWFuaW1hdGlvbjogI3skc3RyfTtcbiAgLW1zLWFuaW1hdGlvbjogI3skc3RyfTtcbiAgLW8tYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICBhbmltYXRpb246ICN7JHN0cn07XG59XG5cbi8vLyBCb3ggc2hhZG93IGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHIgLSBjc3MzIGJveC1zaGFkb3cgc3BlYy5cbkBtaXhpbiBib3gtc2hhZG93KCRzdHIpIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAjeyRzdHJ9O1xuICAtbW96LWJveC1zaGFkb3c6ICN7JHN0cn07XG4gIC1vLWJveC1zaGFkb3c6ICN7JHN0cn07XG4gIGJveC1zaGFkb3c6ICN7JHN0cn07XG59XG5cbi8vLyBncmFkaWVudCBhdXRvcHJlZml4ZXJcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIGdyYWRpZW50KCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgYmFja2dyb3VuZDogI3skY29sb3IxfTtcbiAgLyogRm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgZ3JhZGllbnRzICovXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBGb3IgU2FmYXJpIDUuMSB0byA2LjAgKi9cbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBGb3IgT3BlcmEgMTEuMSB0byAxMi4wICovXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBGb3IgRmlyZWZveCAzLjYgdG8gMTUgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBTdGFuZGFyZCBzeW50YXggKi9cbn1cblxuQG1peGluIHZlcnRpY2FsLWdyYWRpZW50LWRpdmlkZXIoKXtcbiAgd2lkdGg6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAxcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIGhyYS1jb2xvcigkZ3JleSwgMjApLCAkd2hpdGUpO1xufVxuXG5cbi8vLyBJRSBvbmx5IHF1ZXJ5XG5AbWl4aW4gaWUtb25seSgpIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcbiAgICAvKiBJRTEwKyBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuQG1peGluIGNyZWF0ZS1hbmltYXRpb24oJGFuaS1uYW1lKSB7XG4gIGFuaW1hdGlvbjogJGFuaS1uYW1lIGZvcndhcmRzIDMwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG5cbkBtaXhpbiBjcmVhdGUtdHJhbnNpdGlvbigkcHJvcGVydHktbmFtZSkge1xuICB0cmFuc2l0aW9uOiAkcHJvcGVydHktbmFtZSAzMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuLy8vIEVkZ2Ugb25seSBxdWVyeVxuQG1peGluIGVkZ2Utb25seSgpIHtcbiAgQHN1cHBvcnRzICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgLyogRWRnZSBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuLyogRmlyZWZveCBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuQG1peGluIGZpcmVmb3gtb25seSgpIHtcbiAgQHN1cHBvcnRzICgtbW96LWFwcGVhcmFuY2U6bm9uZSkge1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuXG4vLyBzdHlsZWd1aWRlOmlnbm9yZTplbmQiLCIvKlxuQ09NTU9OIENPTE9SIE5BTUVTXG5cblRoZXNlIGNvbG9ycyBhcmUgbWFwcGVkIHRvIHRoZSBuYW1lcyBmcm9tIHRoZSBvZmZpY2lhbCBjb2xvcnMuXG5JbnN0ZWFkIG9mIGhhdmluZyBuYW1lcyBsaWtlIGBjcnVzaGAgb3IgYGJsYXplYCwgZGV2ZWxvcGVycyB3aWxsIHVzZSB0aGVpciBjb21tb24sIG5vbi1tYXJrZXRpemVkIG5hbWUuXG5lZy4gJHJlZDogY3J1c2hcbiAgICAkb3JhbmdlOiBibGF6ZVxuXG5UaGVuLCB1c2UgdGhlIGBocmEtY29sb3JgIGZ1bmN0aW9uIHRvIGdldCB0aGUgY29sb3JcbmVnLiBjb2xvcjogaHJhLWNvbG9yKCRyZWQpXG4qL1xuXG4kdGhlbWUtZ3JlZW46ICNkZmQyNjk7XG4kdGhlbWUtY29sb3I6ICR0aGVtZS1ncmVlbjtcbiRibHVlOiBibHVlO1xuJGN5YW46IGN5YW47XG4kZ3JleTogZ3JleTtcbiRyZWQ6IGNydXNoO1xuJG9yYW5nZTogYmxhemU7XG4keWVsbG93OiBzdW5zZXQsIDYwO1xuJGdyZWVuOiBzZWFmb2FtO1xuJGxpZ2h0LWdyZWVuOiBzZWF3ZWVkO1xuJGRhcmstZ3JlZW46IG1hcmluZTtcbiRicm93bjogYnJvd247XG4kcHVycGxlOiBwdXJwbGU7XG4kc3Vuc2V0OiBzdW5zZXQ7XG4kcGluazogcGluaztcblxuJG5ld2dyZXk6IG5ld2dyZXk7XG4kbmV3Ymx1ZTogbmV3Ymx1ZTtcbiRuZXdjeWFuOiBuZXdjeWFuO1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gaG1hJ3MgQ29sb3VyIFBhbGV0dGVcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiRjb2xvcnM6IChcbiAgICBibHVlOiAoNTogI2YzZmJmZSwgMTA6ICNlMmY0ZmIsIDIwOiAjYmFlNWY1LCA0MDogIzcxYzhmMSwgNjA6ICMzMmI2ZTksIDgwOiAjMDA5OWQzLCAxMDA6ICMwMDc0YWEsIDEyMDogIzA2NGM3YyksXG4gICAgY3J1c2g6ICg1OiAjZmZmN2Y2LCAxMDogI2ZlZjBlZCwgMjA6ICNmZGRmZGMsIDQwOiAjZmFjMWJhLCA2MDogI2Y0ODI3MiwgODA6ICNmMTYxNGYsIDEwMDogI2UzMjcyMiwgMTEwOiNjMTNmMmIsIDEyMDogI2E3MWUyMiksXG4gICAgY3lhbjogKDU6ICNmMmY5ZjksIDEwOiAjZTZmNGY0LCAyMDogI2NjZWFlYSwgNDA6ICM5YWQ3ZDYsIDYwOiAjNjhjNWM0LCA4MDogIzM2YjFiMCwgMTAwOiAjMDI5ZjlkLCAxMjA6ICMwMjZmNmYpLFxuICAgIGJsYXplOiAoNTogI2ZmZjdmMywgMTA6ICNmZmYxZTksIDIwOiAjZmNlMWQzLCA0MDogI2ZjYzVhNywgNjA6ICNmN2E3N2IsIDgwOiAjZjY4OTRkLCAxMDA6ICNmMjZiMjEsIDEyMDogI2I3M2UyNSksXG4gICAgZ3JleTogKDU6ICNmYWZiZmIsIDEwOiAjZWNlZmYwLCAyMDogI2U0ZTdlOSwgNDA6ICNhOGIyYjcsIDYwOiAjODI4ZDkzLCA4MDogIzVCNjY3MCwgMTAwOiAjM2Q0NjRkLCAxMjA6ICMxNDFlMjUpLFxuICAgIHNlYWZvYW06ICg1OiAjZWZmOWY4LCAxMDogI2U0ZjdmMywgMjA6ICNjZmVkZTgsIDQwOiAjYTVlYWRiLCA2MDogIzYxZDZiOCwgODA6ICMyZmQyYTgsIDEwMDogIzFlYWQ4YSwgMTIwOiAjMGI3MDVkKSxcbiAgICBzZWF3ZWVkOiAoNTogI2Y4ZmJmNiwgMTA6ICNmMmY4ZWQsIDIwOiAjZTNmMGQ5LCA0MDogI2NiZTRiNSwgNjA6ICNiMGQ3OGUsIDgwOiAjOTVjYjZhLCAxMDA6ICM3YWMxNDIsIDEyMDogIzQ5OTE0MiksXG4gICAgbWFyaW5lOiAoNTogI2Y3ZjlmMywgMTA6ICNmMWY0ZTgsIDIwOiAjZTRlYWQyLCA0MDogI2NiZDlhNywgNjA6ICNiZmRiODUsIDgwOiAjYWVkMjU1LCAxMDA6ICM3YWExM2UsIDEyMDogIzRjNzMzNiksXG4gICAgcGViYmxlOiAoNTogI2ZiZmNmYywgMTA6ICNmNWY2ZjYsIDIwOiAjZTllOGU5LCA0MDogI2Q1ZDRkNSwgNjA6ICNhYWFhYWIsIDgwOiAjN2M3YzgxLCAxMDA6ICM1NDUzNTUsIDEyMDogIzI4MjcyYiksXG4gICAgc3Vuc2V0OiAoNTogI2ZmZmRlZSwgMTA6ICNmZmZiZGIsIDIwOiAjZmRmN2I0LCA0MDogI2ZmZjU3ZSwgNjA6ICNmZmYxMDAsIDgwOiAjZmJhZDFjLCAxMDA6ICNmNDdmMWYsIDEyMDogI2M5NTQyOCksXG4gICAgYnJvd246ICg1OiAjZjdmNGYyLCAxMDogI2VhZTRlMSwgMjA6ICNkOGNlY2IsIDQwOiAjYmFhYmE1LCA2MDogIzk2ODM3YywgODA6ICM3NzVkNTMsIDEwMDogIzU5MzgyYywgMTIwOiAjMmYxODBkKSxcbiAgICBwdXJwbGU6ICg1OiAjZjJlZmY3LCAxMDogI2U4ZGZlZiwgMjA6ICNkN2M5ZTMsIDQwOiAjYzFhZWQ1LCA2MDogI2EwODViZSwgODA6ICM3YjYxYWEsIDEwMDogIzY2NGZhMSwgMTIwOiAjNDIyZTg1KSxcbiAgICBwaW5rOiAoNTogI2ZlZjRmOCwgMTA6ICNmY2U3ZWYsIDIwOiAjZmFkYWUxLCA0MDogI2Y0YTJjMiwgNjA6ICNlZDczYTQsIDgwOiAjZTk0NTg2LCAxMDA6ICNlMzE1NjcsIDEyMDogI2FiMWQ0MSksXG5cbiAgICAvLyBOZXcgVUkgS2l0IGNvbG9ycyAtIG5ldyBwcmVmaXggd2lsbCBiZSByZW1vdmVkIG9uY2UgdGhlIG1pZ3JhdGlvbiBpcyBjb21wbGV0ZWRcbiAgICAvLyBJdCBhbHNvIG1ha2VzIHN1cmUgdGhhdCBjb2xvciB2YXJpYWJsZXMgYXJlIHVzZWRcbiAgICBuZXdncmV5OiAoNTogI2ZjZmNmYywgMTA6ICNmN2Y3ZjcsIDIwOiAjZjJmMmYyLCA0MDogI2U5ZTllOSwgNTA6ICNjN2M3YzcsIDYwOiAjYTlhOWE5LCA3MDogIzgwODA4MCwgODA6ICM2YjZiNmIsMTAwOiAjNGI0YjRiLDEyMDojMjkyOTI5KSxcbiAgICBuZXdibHVlOiAoNTogI2YwZjZmYSwgMTA6ICNlMmVlZjUsIDIwOiAjYjhkNWU3LCA0MDogIzhlYmJkNywgNTA6ICM2OWExYzcsIDU1OiAjNGY4ZmJkLCA2NTogIzM4N2ViMywgNzA6ICMyZjcyYTgsIDgwOiAjMjU2Mjk3LCAxMDA6ICMxZDUyODUsIDEyMDogIzEwMzc2NiksXG4gICAgbmV3Y3lhbjogKDU6ICNmMGY2ZmEsIDEwOiAjZTJlZWY1LCAyMDogI2I4ZDVlNywgNDA6ICM4ZWJiZDcsIDUwOiAjNjlhMWM3LCA1NTogIzRmOGZiZCwgNjU6ICMzODdlYjMsIDEwMDogIzJmNzJhOCwgMTIwOiAjMjU2Mjk3LCAxNDA6ICMxZDUyODUsIDE2MDogIzEwMzc2NiksXG4pO1xuXG5AZnVuY3Rpb24gaHJhLWNvbG9yKCRjb2xvciwgJHZhbHVlOiAxMDApIHtcbiAgICAkc2VsZWN0ZWRDb2xvcjogJGNvbG9yO1xuXG4gICAgQGlmICh0eXBlLW9mKCRjb2xvcikgPT0gJ2xpc3QnKSB7XG4gICAgICAgICRzZWxlY3RlZENvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgICAgICAgJHZhbHVlOiBudGgoJGNvbG9yLCAyKTtcbiAgICB9XG5cbiAgICAkY29sb3ItbWFwOiBtYXAtZ2V0KCRjb2xvcnMsICRzZWxlY3RlZENvbG9yKTtcbiAgICBAaWYgKCRjb2xvci1tYXAgPT0gbnVsbCkge1xuICAgICAgICBAZXJyb3IgJHNlbGVjdGVkQ29sb3IgKyAnIGlzIG5vdCBwYXJ0IG9mIHRoZSBjb2xvciBwYWxldHRlJztcbiAgICB9XG4gICAgQHJldHVybiBtYXAtZ2V0KCRjb2xvci1tYXAsICR2YWx1ZSk7XG59XG5cbiRibGFjazogaHJhLWNvbG9yKCRncmV5LCAxMjApO1xuJHdoaXRlOiByZ2IoMjU1LCAyNTUsIDI1NSk7XG4kY29sb3ItZ3JheS10cmFuc3BhcmVudDogdHJhbnNwYXJlbnRpemUoaHJhLWNvbG9yKCRncmV5KSwgMC44KTtcbiRob3Zlci1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCAyMCk7XG5cblxuLyogKioqKiAqL1xuJHN1Y2Nlc3MtY29sb3I6IGhyYS1jb2xvcigkZ3JlZW4pO1xuJHdhcm5pbmctY29sb3I6IGhyYS1jb2xvcigkeWVsbG93KTtcbiRhbGVydC1jb2xvcjogaHJhLWNvbG9yKCRyZWQpO1xuJGNvbG9yLWludmFsaWQ6IGhyYS1jb2xvcigkcmVkKTtcbiRkaXNhYmxlZC1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCAxMCk7XG4kZGlzYWJsZWQtYm9yZGVyOiBocmEtY29sb3IoJGdyZXksIDQwKTtcbiRjb2xvci1ocmEtYW5jaG9yOiBocmEtY29sb3IoJGJsdWUpO1xuJGRpc2FibGVkLWZvcmUtY29sb3I6IGhyYS1jb2xvcigkZ3JleSwgNDApO1xuXG4vKiAqIENoYXJ0cyBDb2xvcnMgKi9cbiRzdGFja2VkLXRvb2x0aXAtY2lyY2xlLWJnOiAjM2Y0MDQyO1xuJGNoYXJ0LXRvb2x0aXAtY2lyY2xlOiAjZmY4OTRjO1xuJGRvbnV0LWNvdW50OiAjZmY2YjU3O1xuXG4vKiBpbmZvIHRleHQgYmFja2dyb3VuZCAqL1xuJGluZm8tYmFja2dyb3VuZDogI2ZmZmRlNjtcblxuXG4vKiBVc2UgZm9sbG93aW5nIGNsYXNzZXMgZm9yIGFlc3RoZXRpY3Mgb25seSAtIE5ldyBVSSBLSVQgKi9cbi8vIFN0YW5kYXJkaXNlIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mIGRpcmVjdCBjb2xvcnNcbi8qIENvbG9yIE1hcHBpbmcqL1xuJHByaW1hcnktYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDcwKTtcbiRwcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCAxMDApO1xuJHByaW1hcnktdGV4dDokd2hpdGU7XG5cbiRkZWxldGUtYmFja2dyb3VuZDogaHJhLWNvbG9yKCRyZWQsIDExMCk7XG5cbiRzZWNvbmRhcnktdGV4dDpocmEtY29sb3IoJG5ld2JsdWUsIDU1KTtcbiRzZWNvbmRhcnktYmFja2dyb3VuZDokd2hpdGU7XG4kc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCA1KTtcbiRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2dyZXksIDUwKTtcbiRzZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQ6JHNlY29uZGFyeS10ZXh0O1xuXG4kZmxhdC1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA4MCk7XG4kZmxhdC1ob3ZlcjogaHJhLWNvbG9yKCRuZXdncmV5LCAxMDApO1xuJGZsYXQtZGlzYWJsZWQ6IGhyYS1jb2xvcigkbmV3Z3JleSwgNzApO1xuXG4kYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ6IGhyYS1jb2xvcigkbmV3Ymx1ZSwgODApO1xuJGFjdGlvbi1kaXNhYmxlZDogaHJhLWNvbG9yKCRuZXdncmV5LCA1NSk7XG4kYWN0aW9uLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCA1MCk7XG4vKmVuZHMqL1xuXG4kYnV0dG9uLXByaW1hcnktdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWJhY2tncm91bmQ7XG4kYnV0dG9uLXByaW1hcnktaG92ZXItYmFja2dyb3VuZC1jb2xvcjokcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1wcmltYXJ5LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRidXR0b24tZGVsZXRlLWJhY2tncm91bmQtY29sb3I6ICRkZWxldGUtYmFja2dyb3VuZDtcbiRidXR0b24tcHJpbWFyeS1kaXNhYmxlZC1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcblxuLy8gU2Vjb25kYXJ5IGJ1dHRvbnMgYW5kIHNlY29uZGFyeSBhY3Rpb24gYnV0dG9ucyBzaGFyZSBjb2xvcnMgXG4kYnV0dG9uLXNlY29uZGFyeS1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiRidXR0b24tc2Vjb25kYXJ5LXRleHQtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiRidXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWhvdmVyLXRleHQtY29sb3I6ICRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLXNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuXG4kYnV0dG9uLWZsYXQtYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4kYnV0dG9uLWZsYXQtY29sb3I6ICRmbGF0LWNvbG9yO1xuJGJ1dHRvbi1mbGF0LWhvdmVyLWNvbG9yOiRmbGF0LWhvdmVyO1xuJGJ1dHRvbi1mbGF0LWRpc2FibGVkLWNvbG9yOiAkZmxhdC1kaXNhYmxlZDtcblxuJGJ1dHRvbi1hY3Rpb24tYmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24tdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1hY3Rpb24taG92ZXItYmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24taG92ZXItdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1hY3Rpb24tZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24tZGlzYWJsZWQtdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1hY3Rpb24tZGVsZXRlLWJhY2tncm91bmQtY29sb3I6JGRlbGV0ZS1iYWNrZ3JvdW5kO1xuXG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1kaXNhYmxlZC1jb2xvcjogJGFjdGlvbi1kaXNhYmxlZDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuXG4kdW5zZWxlY3RlZC1jaG9pY2UtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRzZWxlY3RlZC1jaG9pY2UtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcblxuJHJhZGlvLWxhYmVsLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kdG9nZ2xlLW9uLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiR0b2dnbGUtb2YtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJHRvZ2dsZS1oZWFkLWNvbG9yOiAkd2hpdGU7XG5cbiRpbnB1dC10ZXh0LWxhYmVsLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDEyMCk7XG4kaW5wdXQtdGV4dC1ib3JkZXItY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgNDApO1xuJGlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgNjApO1xuJGlucHV0LXRleHQtYWN0aXZlLWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA4MCk7XG4kaW5wdXQtdGV4dC1hY3RpdmUtdGV4dC1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCAxMjApO1xuJGlucHV0LXRleHQtZXJyb3ItYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJHJlZCwgMTEwKTtcbiRpbnB1dC10ZXh0LWRpc2FibGVkLWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA1MCk7XG4kaW5wdXQtdGV4dC1lcnJvci1tZXNzYWdlLWNvbG9yOiAkaW5wdXQtdGV4dC1lcnJvci1ib3JkZXItY29sb3I7XG4kaW5wdXQtdGV4dC1kaXNhYmxlZC1jb2xvcjogJGlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I7XG4kaW5wdXQtdGV4dC1sYWJlbC1kaXNhYmxlZC1jb2xvcjogJGlucHV0LXRleHQtYm9yZGVyLWNvbG9yO1xuJGlucHV0LXRleHQtZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I7IiwiQGltcG9ydCAnbWl4aW5zJztcbkBpbXBvcnQgJ2NvbG9ycyc7XG5cbi8qIFVzZWQgZm9yIGdyaWRzIGFuZCBtYXJnaW5zICovXG5cbiRzbWFsbC1zaXplOiA0ICFkZWZhdWx0O1xuJGxhcmdlLXNpemU6IDEyICFkZWZhdWx0O1xuJHNtYWxsLXNxdWFyZTogcmVtLWNhbGMoJHNtYWxsLXNpemUpICFkZWZhdWx0O1xuJGxhcmdlLXNxdWFyZTogcmVtLWNhbGMoJGxhcmdlLXNpemUpICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWdyYXk6IHRyYW5zcGFyZW50aXplKGhyYS1jb2xvcigkZ3JleSwgNDApLCAwLjgpO1xuJHRyYW5zcGFyZW50LXdoaXRlOiB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNik7XG4kYW5pbWF0aW9uLXRpbWluZzogMC4yNXM7XG4kcmFkLWdyYWQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGNlbnRlciwgdHJhbnNwYXJlbnRpemUoaHJhLWNvbG9yKCRncmV5KSwgMC41KSA4MCUsIHRyYW5zcGFyZW50aXplKCRibGFjaywgMC41KSAxMDAlKTtcbiRsaW5lYXItZ3JhZDogcmdiYSgkYmxhY2ssIDAuNyk7XG5cbiRzY3JvbGwtYmFyLXdpZHRoOiAkc21hbGwtc3F1YXJlICogMjtcbiRzY3JvbGwtYmFyLXdpZHRoLWZpcmVmb3g6IHJlbS1jYWxjKDE3KTtcbiRzY3JvbGwtYmFyLXdpZHRoLWVkZ2U6IHJlbS1jYWxjKDE3KTtcbiRzY3JvbGwtYmFyLXdpZHRoLWllOiByZW0tY2FsYygxNyk7XG5cbi8qXG4gIGZvbnQgc2l6ZXNcbiAqL1xuJGljb24tZm9udC1zaXplLXNtYWxsOiAkc21hbGwtc3F1YXJlICogMyAhZGVmYXVsdDsgLy8gMTJweFxuJGljb24tZm9udC1zaXplLW1lZGl1bTogJHNtYWxsLXNxdWFyZSAqIDQgIWRlZmF1bHQ7IC8vIDE2cHhcbiRpY29uLWZvbnQtc2l6ZS1yZWd1bGFyOiAkc21hbGwtc3F1YXJlICogNSAhZGVmYXVsdDsgLy8gMjBweFxuJGljb24tZm9udC1zaXplLWxhcmdlOiAkc21hbGwtc3F1YXJlICogNjsgLy8gMjRweFxuJGljb24tZm9udC1zaXplLXgtbGFyZ2U6ICRzbWFsbC1zcXVhcmUgKiA3OyAvLyAyOHB4XG4kaWNvbi1mb250LXNpemUtcGxhY2Vob2xkZXI6ICRsYXJnZS1zcXVhcmUgKiA3O1xuJGZvbnQtc2l6ZTogJGljb24tZm9udC1zaXplLW1lZGl1bSAhZGVmYXVsdDsgLy8gMTNweFxuJGZvbnQtc2l6ZS1tZWRpdW06ICRpY29uLWZvbnQtc2l6ZS1tZWRpdW07IC8vMTZweFxuJGZvbnQtc2l6ZS1sYXJnZTogJGljb24tZm9udC1zaXplLXJlZ3VsYXI7XG4kZm9udC1zaXplLXgtbGFyZ2U6ICRpY29uLWZvbnQtc2l6ZS14LWxhcmdlO1xuJGZvbnQtc2l6ZS1oZWFkZXI6IDE0cHg7XG5cblxuJGZvbnQtd2VpZ2h0LWxpZ2h0OiAzMDA7IC8vIFNvdXJjZSBTYW5zIFBybyBMaWdodFxuJGZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDsgLy8gU291cmNlIFNhbnMgUHJvIExpZ2h0XG4kZm9udC13ZWlnaHQtc2VtaS1ib2xkOiA2MDA7IC8vIFNvdXJjZSBTYW5zIFBybyBTZW1pIEJvbGRcbiRmb250LXdlaWdodC1ib2xkOiA3MDA7IC8vIFNvdXJjZSBTYW5zIFBybyBCb2xkXG5cblxuXG4vKlxuICogSGVhZGVyIHNpemVcbiAqL1xuXG4kaGVhZGVyLWhlaWdodDogcmVtLWNhbGMoNTIpICFkZWZhdWx0O1xuJGhlYWRlci10ZXh0LWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDggIWRlZmF1bHQ7IC8vMzJweFxuJHN1Yi1uYXYtaGVpZ2h0OiAwcmVtICFkZWZhdWx0OyAvLyAwcHhcbiRzZWFyY2gtYmFyLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDE1ICFkZWZhdWx0O1xuLy8kcGFnaW5hdGlvbi1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAyNSAhZGVmYXVsdDtcbiRjaGFydHMtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogNzQgIWRlZmF1bHQ7XG4kbWFpbi1oZWFkZXItaGVpZ2h0OiAkaGVhZGVyLWhlaWdodCskc3ViLW5hdi1oZWlnaHQgIWRlZmF1bHQ7XG4kdmlydHVhbC1ncm91cC1pbmRpY2F0b3ItaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogNztcbiRoZWFkZXItc2lkZS1tYXJnaW46IHJlbS1jYWxjKDI0KTtcblxuLypcbiAqIERldmljZSBHcm91cCBzZXR0aW5nc1xuICovXG5cbiRkZXZpY2UtZ3JvdXAtcGFkZGluZy1sZWZ0OiAkc21hbGwtc3F1YXJlICogNjtcbiRkZXZpY2UtZ3JvdXAtaXRlbXMtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogOTtcbiRkZXZpY2UtZ3JvdXAtd2lkdGg6ICRsYXJnZS1zcXVhcmUgKiAyODtcbiRkZXZpY2UtZ3JvdXAtbWluLXdpZHRoOiAkc21hbGwtc3F1YXJlICogNTU7XG4kZGV2aWNlLWdyb3VwLW1heC13aWR0aDogJHNtYWxsLXNxdWFyZSAqIDE0MDtcbiRkZXZpY2UtZ3JvdXAtbWFyZ2luLXRvcDogJHNlYXJjaC1iYXItaGVpZ2h0O1xuJGRldmljZS1ncm91cC1idXR0b24td2lkdGg6ICRsYXJnZS1zcXVhcmUgKiAyMTtcbiRkZXZpY2UtZ3JvdXAtYnV0dG9uLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDExO1xuJGRldmljZS1ncm91cC1idXR0b24tYm9yZGVyOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCAyMCk7XG5cbi8qXG4gKiBCb3JkZXIgc2V0dGluZ3NcbiAqL1xuXG4kYm9yZGVyLWJhc2U6IDFweCBzb2xpZCByZ2IoMjA0LCAyMDQsIDIwNCk7XG4kYm9yZGVyLXJhZGl1cy1zbWFsbDogM3B4O1xuJGJvcmRlci1yYWRpdXMtYmFzZTogNHB4O1xuJGJvcmRlci1yYWRpdXMtbGFyZ2U6IDZweDtcblxuLypcbiAqIFNoYWRvd3MgZ28gYnkgbGV2ZWxcbiAqL1xuXG4kc2hhZG93OiAwIDNweCA5cHggcmdiYSgwLCAwLCAwLCAuNSk7XG4kc2hhZG93LTE6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4kc2hhZG93LXNtYWxsOiAwIDFweCA2cHggcmdiYSgwLCAwLCAwLCAwLjI0KTtcbiRzaGFkb3ctaGVhZGVyOiAwcHggMXB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctc2VhcmNoLWhlYWRlcjogOHB4IDFweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWxpZ2h0OiAxcHggMXB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4kc2hhZG93LWxpZ2h0LWJvdHRvbS1vbmx5OiAwcHggMXB4IDhweCByZ2JhKCRibGFjaywgMC4xMyk7XG4kc2hhZG93LWFib3ZlOiAwIC0xcHggMTNweCAycHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1hYm92ZS1sZWZ0OiAtNnB4IDBweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWJlbG93OiAwcHggOXB4IDhweCAtNXB4IHJnYmEoMTU4LCAxNTgsIDE1OCwgMC4yNSk7XG4kc2hhZG93LWRyb3Bkb3duOiAwIDFweCAxM3B4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctZGlhbG9nOiAwIDhweCAyMHB4IDZweCByZ2JhKCRibGFjaywgMC42KTtcbiRzaGFkb3ctZGlhbG9nLXN1ZmZpeDogMHB4IDE2cHggMjBweCAzcHggcmdiYSgkYmxhY2ssIDAuNik7XG4kc2hhZG93LWxheW91dDogNnB4IDBweCA5cHggMHB4IHJnYmEoJGJsYWNrLCAwLjIpO1xuJHNoYWRvdy1zYXZlZC1zZWFyY2hlczogNHB4IDRweCA4cHggLTJweCByZ2JhKDY3LDcwLDc0LC4xMyk7XG4kc2hhZG93LWNoYXJ0LWNhcmQ6IDAgNnB4IDE2cHggcmdiYSgyMCwzMCwzNywwLjA4KTtcbiRzaGFkb3ctY29uZmlnLWNhcmQ6IDAgMCAyNHB4IDAgcmdiYSgyMCwzMCwzNywwLjEpO1xuXG4vKlxuICogUGFkZGluZyBzZXR0aW5nc1xuICovXG5cbiRib2R5LXBhZGRpbmc6ICRsYXJnZS1zcXVhcmUgKiAyO1xuJHBhZGRpbmctc21hbGw6ICRsYXJnZS1zcXVhcmU7XG4kYmFzZS1wYWRkaW5nOiAkc21hbGwtc3F1YXJlICogNDsgLy8gMTZweFxuJGhhbGYtYmFzZS1wYWRkaW5nOiAkYmFzZS1wYWRkaW5nIC8gMjtcbiRtb2RhbC1wYWRkaW5nOiAkYmFzZS1wYWRkaW5nO1xuJGxheW91dC1wYWRkaW5nOiAoJGJhc2UtcGFkZGluZyAqIDIpICgkYm9keS1wYWRkaW5nICogMikgKCRiYXNlLXBhZGRpbmcgKiAyKSAoJGJvZHktcGFkZGluZyAqIDIpO1xuJHBhZGRpbmctYmFzZS12ZXJ0aWNhbDogNnB4O1xuJHBhZGRpbmctYmFzZS1ob3Jpem9udGFsOiAkc21hbGwtc3F1YXJlICogMztcbiRwYWRkaW5nLWxhcmdlLXZlcnRpY2FsOiAxMHB4O1xuJHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDogICRzbWFsbC1zcXVhcmUgKiA0O1xuJHBhZGRpbmctbWVkaXVtLXZlcnRpY2FsOiAxNHB4O1xuJHBhZGRpbmctc21hbGwtdmVydGljYWw6IDVweDtcbiRwYWRkaW5nLXNtYWxsLWhvcml6b250YWw6IDEwcHg7XG5cbi8qXG4gKiBJbnB1dHNcbiAqL1xuJGlucHV0LXBhZGRpbmc6ICRzbWFsbC1zcXVhcmUgJHNtYWxsLXNxdWFyZSAqIDI7XG4kaW5wdXQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogODtcblxuLypcbiAqIFRvb2xUaXBzXG4gKi9cblxuLy8gVG9vbHRpcHNcbiR0b29sdGlwLW1heC13aWR0aDogMjUwcHggIWRlZmF1bHQ7XG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCkgIWRlZmF1bHQ7XG4kdG9vbHRpcC10ZXh0LWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuJHRvb2x0aXAtZGVsYXk6IDAuNHMgIWRlZmF1bHQ7XG4kdG9vbHRpcC1kdXJhdGlvbjogMC4xcyAhZGVmYXVsdDtcblxuLypcbiAqIEFjdGlvbiBiYXIgc2l6ZXNcbiAqL1xuXG4kZGV2aWNlLWFjdGlvbi1iYXItaGVpZ2h0OiAkbGFyZ2Utc3F1YXJlICogNTtcbiRjb3VudC1jb250YWluZXItcGFkZGluZzogKCRsYXJnZS1zcXVhcmUgKiAyKSAoJHNtYWxsLXNxdWFyZSAqIDQpICgkbGFyZ2Utc3F1YXJlICogMikgKCRzbWFsbC1zcXVhcmUgKiA0KTtcblxuLyoqXG4qICBEZXZpY2UgZ3JpZCBzaXplc1xuKi9cblxuJHJvdy1hYm92ZS1ncmlkLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDE0O1xuJGNoZWNrLWNlbGwtcGFkZGluZzogMCAwIDAgJHNtYWxsLXNxdWFyZSoyO1xuJGRldmljZS1ncmlkLW1pbi1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3MTtcblxuLypcbiAqIEZvY3VzIGJvcmRlclxuICovXG5cbiRocmEtZm9jdXMtb3V0bGluZTogMnB4IHNvbGlkIGhyYS1jb2xvcigkY3lhbik7XG5cbi8qXG4gKiBCb3JkZXJcbiAqL1xuXG4kaHJhLWJvcmRlcjogMXB4IHNvbGlkIGhyYS1jb2xvcigkZ3JleSwgMjApO1xuJGhyYS1ib3JkZXItZXJyb3I6IDFweCBzb2xpZCBocmEtY29sb3IoJHJlZCk7XG4kaHJhLWJvcmRlci1pbnB1dC1kaXNhYmxlZDogMXB4IHNvbGlkIGhyYS1jb2xvcigkZ3JleSwgNDApO1xuXG5cbi8qXG4gKiBQb3AtdXBcbiovXG4kaHJhLXBvcHVwLWJlYWstc2l6ZTogJHNtYWxsLXNxdWFyZSozO1xuJGhyYS1wb3B1cC1iZWFrLWJvdHRvbS1jZW50ZXI6IGNhbGMoNTAlIC0gKDEuMjVyZW0gLyAyKSk7XG4kcG9wLXVwLWZvb3Rlci1oZWlnaHQ6ICRsYXJnZS1zcXVhcmUgKiA1O1xuJHBvcC11cC10aXRsZS1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxMztcbiRwb3AtdXAtdGl0bGUtbWFqb3ItaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTQ7XG4vLyBzdHlsZWd1aWRlOmlnbm9yZTplbmRcblxuLypcbiogU3RhdHVzIE5vdGlmaWNhdGlvblxuKi9cbiRocmEtc3RhdHVzLW5vdGlmaWNhdGlvbi13aWR0aDogJHNtYWxsLXNxdWFyZSAqIDgzO1xuJGhyYS1zdGF0dXMtbm90aWZpY2F0aW9uLXRvcDogJHNtYWxsLXNxdWFyZSAqIDE0O1xuJGhyYS1zdGF0dXMtbm90aWZpY2F0aW9uLWJvdHRvbTogJHNtYWxsLXNxdWFyZSAqIDE1O1xuXG5cbi8qXG4gIFJvdW5kIGJ1dHRvbiBzaXplc1xuICovXG4gJHJvdW5kLXNtYWxsOiAkc21hbGwtc3F1YXJlICogNztcbiAkcm91bmQtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogODtcbiAkcm91bmQtbGFyZ2U6ICRzbWFsbC1zcXVhcmUgKiA5O1xuXG4vKlxuICogSW1hZ2UgSWNvbiBTaXplc1xuICovXG5cbiRpbWctaWNvbi1zaXplLXNtYWxsOiAkc21hbGwtc3F1YXJlICogODtcbiRpbWctaWNvbi1zaXplLW1lZGl1bTogJHNtYWxsLXNxdWFyZSAqIDEwO1xuXG5cbiRiZXppZXI6IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG5cblxuLyoqIE1vZGFsIHNpemVzICoqL1xuJG1vZGFsLXRpdGxlLWhlaWdodDogcmVtLWNhbGMoNTIpO1xuJG1vZGFsLWZvb3Rlci1oZWlnaHQ6IHJlbS1jYWxjKDYwKTtcbiIsIkBpbXBvcnQgXCIuLi8uLi9zaGFyZWQvc3R5bGVzL2Jhc2Uvc2V0dGluZ3NcIjtcbjpob3N0IHtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBkaXNwbGF5OiBibG9jaztcbiAgI2xvZ28tY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi5sb2dpbi1mb3JtLXRpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IHJlbS1jYWxjKDMwKTtcbiAgY29sb3I6IGhtYS1jb2xvcigkZ3JleSwgODApO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5idG4tbG9naW4ge1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6ICMwMDA7XG4gIGhlaWdodDogcmVtLWNhbGMoNDIpO1xuICBiYWNrZ3JvdW5kOiAkdGhlbWUtZ3JlZW47XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xufVxuXG4uZm9ybS1saW5rLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICBhIHtcbiAgICBsaW5lLWhlaWdodDogMjtcbiAgfVxuICAuZm9yZ2V0LXBhc3Mge1xuICAgIGNvbG9yOiBobWEtY29sb3IoJGdyZXksIDYwKTtcbiAgfVxuICAucmVnaXN0ZXItdXNlciB7XG4gICAgY29sb3I6IGhtYS1jb2xvcihibGF6ZSwgODApO1xuICB9XG59XG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { first } from 'rxjs/operators';\nimport { AuthenticationService } from 'src/app/services/authentication.service';\nimport { UserService } from 'src/app/services/user.service';\n\n@Component({\n templateUrl: './forgot-password.component.html',\n styleUrls: ['./forgot-password.component.scss']\n})\nexport class ForgotPasswordComponent implements OnInit {\n forgotPasswordForm: FormGroup;\n loading = false;\n submitted = false;\n returnUrl: string;\n successMessage: string[] = [];\n errorMessage: string[] = [];\n\n constructor(\n private formBuilder: FormBuilder,\n private route: ActivatedRoute,\n private router: Router,\n private authenticationService: AuthenticationService,\n private userService: UserService) {\n // redirect to home if already logged in\n if (this.authenticationService.currentUserValue) {\n this.router.navigate(['/']);\n }\n }\n\n ngOnInit() {\n this.forgotPasswordForm = this.formBuilder.group({\n username: ['', [Validators.required, Validators.email]]\n });\n }\n\n // convenience getter for easy access to form fields\n get f() { return this.forgotPasswordForm.controls; }\n\n onSubmit() {\n this.submitted = true;\n\n // stop here if form is invalid\n if (this.forgotPasswordForm.invalid) {\n return;\n }\n\n this.successMessage = [];\n this.errorMessage = [];\n this.loading = true;\n this.userService.forgotPassword(this.forgotPasswordForm.value)\n .pipe(first())\n .subscribe(\n (): void => {\n this.loading = false;\n this.successMessage.push('Check you registered email, password reset link is sent.');\n },\n error => {\n const _this = this;\n if (error.error instanceof Array) {\n error.error.map(err => _this.errorMessage.push(err.value));\n } else if (typeof error.error === 'string') {\n this.errorMessage.push(error.error);\n } else {\n this.errorMessage.push(error);\n }\n this.loading = false;\n });\n }\n}\n","export default \".form-control {\\n border-radius: 0% !important; }\\n\\n[data-toggle=\\\"buttons\\\"] > .btn input[type=\\\"checkbox\\\"],\\n[data-toggle=\\\"buttons\\\"] > .btn input[type=\\\"radio\\\"],\\n[data-toggle=\\\"buttons\\\"] > .btn-group > .btn input[type=\\\"checkbox\\\"],\\n[data-toggle=\\\"buttons\\\"] > .btn-group > .btn input[type=\\\"radio\\\"] {\\n position: absolute;\\n clip: rect(0, 0, 0, 0);\\n pointer-events: none; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9jb250cm9scy9ocmEvaHJhLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb250cm9scy9ocmEvaHJhLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksNEJBQTRCLEVBQUE7O0FDRWhDOzs7O0VES0ksa0JBQWtCO0VBQ2xCLHNCQUFzQjtFQUN0QixvQkFBb0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL2hyYS9ocmEuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZm9ybS1jb250cm9sIHtcbiAgICBib3JkZXItcmFkaXVzOiAwJSAhaW1wb3J0YW50O1xufVxuXG5bZGF0YS10b2dnbGU9XCJidXR0b25zXCJdID4gLmJ0biBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5bZGF0YS10b2dnbGU9XCJidXR0b25zXCJdID4gLmJ0biBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5bZGF0YS10b2dnbGU9XCJidXR0b25zXCJdID4gLmJ0bi1ncm91cCA+IC5idG4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXSA+IC5idG4tZ3JvdXAgPiAuYnRuIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59IiwiLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1yYWRpdXM6IDAlICFpbXBvcnRhbnQ7IH1cblxuW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXSA+IC5idG4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXSA+IC5idG4gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXSA+IC5idG4tZ3JvdXAgPiAuYnRuIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbltkYXRhLXRvZ2dsZT1cImJ1dHRvbnNcIl0gPiAuYnRuLWdyb3VwID4gLmJ0biBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { FormGroup } from '@angular/forms';\nimport { first } from 'rxjs/operators';\nimport { HRAService } from 'src/app/services/hra.service';\nimport { HRADetails } from 'src/app/models/hraDetails';\nimport { QuestionService } from 'src/app/data-driven/question.service';\nimport { DynamicControlService } from 'src/app/data-driven/dynamic-control.Service';\nimport { BrokerMember } from 'src/app/models/brokerMember';\nimport { UserStore } from '../StateManagement/User/user.store';\nimport { GroupService } from 'src/app/services/group.service';\n\n@Component({\n templateUrl: 'hra.component.html',\n styleUrls: ['./hra.component.scss']\n})\nexport class HRAFormComponent implements OnInit {\n form: FormGroup;\n questions;\n validLink = false;\n loading = false;\n submitted = false;\n errorMessage = '';\n invalidLink = false;\n\n private _groupId: string;\n private _externalId: string;\n private _memberinfo: BrokerMember;\n private _defaultErrorMessage = 'Please complete all unanswered questions in red';\n\n constructor(\n private _router: Router,\n private _hraService: HRAService,\n private _groupService: GroupService,\n private _route: ActivatedRoute,\n private questionService: QuestionService,\n private qcs: DynamicControlService,\n private _userStore: UserStore\n ) {\n\n this._route.params.subscribe(params => {\n this._groupId = params['groupId'];\n this._externalId = params['memberId'];\n });\n\n this.getQuestions();\n }\n\n ngOnInit() {\n this._groupService.validateGroupAndMember(this._groupId, this._externalId).subscribe(x => {\n this._memberinfo = x;\n this.patchValue();\n }, err => { \n this.invalidLink = false;\n });\n }\n\n resetForm() {\n this.submitted = false;\n this.form.reset();\n this.form.markAsPristine();\n this.form.markAsUntouched();\n this.patchValue();\n }\n\n onSubmit() {\n this.errorMessage = '';\n this.submitted = true;\n // reset alerts on submit\n this.form.markAllAsTouched();\n\n // stop here if form is invalid\n if (this.form.invalid) {\n this.errorMessage = this._defaultErrorMessage;\n return;\n }\n\n this.loading = true;\n const grp = this.form.controls['demographicCharacteristics'] as FormGroup;\n const formValue = {\n firstName: grp.controls['firstName'].value,\n middleName: grp.controls['middleName'].value,\n lastName: grp.controls['lastName'].value,\n gender: grp.controls['gender'].value,\n externalId: grp.controls['externalId'].value || this._externalId,\n savedForm: JSON.stringify(this.form.getRawValue())\n } as HRADetails;\n\n this._hraService.addHRA(this._groupId, formValue)\n .pipe(first())\n .subscribe(\n (): void => {\n this._router.navigate(['/hra-form/thankyou']);\n this._userStore.reset();\n this.loading = false;\n },\n error => {\n this.errorMessage = error.error;\n this.loading = false;\n });\n }\n\n private getQuestions() {\n this.questionService.getQuestions(this._externalId).subscribe(question => {\n if(question.length > 0){\n for(let i = 0;i< question[0].value.length;i++){\n if(question[0].value[i].key == 'firstName'||question[0].value[i].key == 'lastName'||question[0].value[i].key == 'middleName'\n ||question[0].value[i].key == 'age'||question[0].value[i].key == 'gender'){\n question[0].value[i].controlClassName = 'readOnly' ;\n }\n }\n }\n this.questions = question;\n\n this.form = this.qcs.toFormGroup(this.questions, false);\n });\n }\n\n private patchValue() {\n const grp = this.form.controls['demographicCharacteristics'] as FormGroup; \n if (!!grp && !!this._memberinfo) {\n grp.controls['firstName'].patchValue(this._memberinfo.firstName);\n grp.controls['lastName'].patchValue(this._memberinfo.lastName);\n grp.controls['middleName'].patchValue(this._memberinfo.middleName);\n grp.controls['externalId'].patchValue(this._externalId); \n grp.controls['age'].patchValue(this._memberinfo.age);\n grp.controls['gender'].patchValue(this._memberinfo.gender);\n }\n } \n}\n","export default \"/*\\nHigh DPI screens (retina macbooks, highresolution laptops, etc)\\n*/\\n/* Firefox specific styles go here */\\n/*\\nCOMMON COLOR NAMES\\n\\nThese colors are mapped to the names from the official colors.\\nInstead of having names like `crush` or `blaze`, developers will use their common, non-marketized name.\\neg. $red: crush\\n $orange: blaze\\n\\nThen, use the `hra-color` function to get the color\\neg. color: hra-color($red)\\n*/\\n/* **** */\\n/* * Charts Colors */\\n/* info text background */\\n/* Use following classes for aesthetics only - New UI KIT */\\n/* Color Mapping*/\\n/*ends*/\\n/* Used for grids and margins */\\n/*\\n font sizes\\n */\\n/*\\n * Header size\\n */\\n/*\\n * Device Group settings\\n */\\n/*\\n * Border settings\\n */\\n/*\\n * Shadows go by level\\n */\\n/*\\n * Padding settings\\n */\\n/*\\n * Inputs\\n */\\n/*\\n * ToolTips\\n */\\n/*\\n * Action bar sizes\\n */\\n/**\\n* Device grid sizes\\n*/\\n/*\\n * Focus border\\n */\\n/*\\n * Border\\n */\\n/*\\n * Pop-up\\n*/\\n/*\\n* Status Notification\\n*/\\n/*\\n Round button sizes\\n */\\n/*\\n * Image Icon Sizes\\n */\\n/** Modal sizes **/\\n:host {\\n height: 100vh;\\n width: 100vw;\\n display: block; }\\n:host .right-panel layout {\\n padding-top: 1.5rem !important; }\\nlayout-form {\\n padding-top: 1.5rem !important; }\\n.login-form-title {\\n width: 100%;\\n display: block;\\n font-size: 1.875rem;\\n color: hma-color(grey, 80);\\n line-height: 1.2;\\n text-align: center;\\n padding-bottom: 2.25rem; }\\n.btn-login {\\n width: 100%;\\n color: #000;\\n height: 2.625rem;\\n background: #dfd269;\\n font-size: 1.125rem; }\\n.btn-firstUser {\\n color: #000;\\n height: 2.625rem;\\n background: #dfd269;\\n font-size: 1.125rem; }\\n.form-link-actions {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-end;\\n font-size: 0.875rem; }\\n.form-link-actions a {\\n line-height: 2; }\\n.form-link-actions .forget-pass {\\n color: hma-color(grey, 60); }\\n.form-link-actions .register-user {\\n color: hma-color(blaze, 80); }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21lZGlhcXVlcmllcy5zY3NzIiwic3JjL2FwcC9jb250cm9scy9sb2dpbi9sb2dpbi5jb21wb25lbnQuc2NzcyIsIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21peGlucy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9zdHlsZXMvYmFzZS9fY29sb3JzLnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvc2hhcmVkL3N0eWxlcy9iYXNlL19zZXR0aW5ncy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL2NvbnRyb2xzL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThCQTs7Q0M1QkM7QUMwS0Qsb0NBQUE7QUM1S0E7Ozs7Ozs7Ozs7Q0ZjQztBRStERCxTQUFBO0FBVUEsb0JBQUE7QUFLQSx5QkFBQTtBQUlBLDJEQUFBO0FBRUEsaUJBQUE7QUFvQkEsT0FBQTtBQ25IQSwrQkFBQTtBQWlCQTs7RUhJRTtBR21CRjs7RUhoQkU7QUc4QkY7O0VIM0JFO0FHeUNGOztFSHRDRTtBRytDRjs7RUg1Q0U7QUdrRUY7O0VIL0RFO0FHaUZGOztFSDlFRTtBR29GRjs7RUhqRkU7QUc0RkY7O0VIekZFO0FHZ0dGOztDSDdGQztBR3FHRDs7RUhsR0U7QUd3R0Y7O0VIckdFO0FHOEdGOztDSDNHQztBR3FIRDs7Q0hsSEM7QUcwSEQ7O0VIdkhFO0FHOEhGOztFSDNIRTtBR3NJRixrQkFBQTtBQzFNQTtFQUNFLGFBQWE7RUFDYixZQUFZO0VBQ1osY0FBYyxFQUFBO0FBSGhCO0lBS0UsOEJBQXdDLEVBQUE7QUFJMUM7RUFDRSw4QkFBd0MsRUFBQTtBQUUxQztFQUNFLFdBQVc7RUFDWCxjQUFjO0VBQ2QsbUJId0R1RDtFR3ZEdkQsMEJBQTJCO0VBQzNCLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsdUJBQWlDLEVBQUE7QUFHbkM7RUFDRSxXQUFXO0VBQ1gsV0FBVztFQUNYLGdCSDhDdUQ7RUc3Q3ZELG1CRmZtQjtFRWdCbkIsbUJINEN1RCxFQUFBO0FHekN6RDtFQUNFLFdBQVc7RUFDWCxnQkh1Q3VEO0VHdEN2RCxtQkZ0Qm1CO0VFdUJuQixtQkhxQ3VELEVBQUE7QUdqQ3pEO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixxQkFBcUI7RUFDckIsbUJINkJ1RCxFQUFBO0FHakN6RDtJQU1JLGNBQWMsRUFBQTtBQU5sQjtJQVNJLDBCQUEyQixFQUFBO0FBVC9CO0lBWUksMkJBQTJCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb250cm9scy9sb2dpbi9sb2dpbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vICBBdXRob3I6IFJhZmFsIEJyb21pcnNraVxuLy8gIHd3dzogaHR0cDovL3JhZmFsYnJvbWlyc2tpLmNvbS9cbi8vICBnaXRodWI6IGh0dHA6Ly9naXRodWIuY29tL3BhcmFub2lkYS9zYXNzLW1lZGlhcXVlcmllc1xuLy9cbi8vICBMaWNlbnNlZCB1bmRlciBhIE1JVCBMaWNlbnNlXG4vL1xuLy8gIFZlcnNpb246XG4vLyAgMS42LjFcbi8vIC0tLSBnZW5lcmF0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gbXEoJGFyZ3MuLi4pIHtcbiAgJG1lZGlhLXR5cGU6ICdvbmx5IHNjcmVlbic7XG4gICRtZWRpYS10eXBlLWtleTogJ21lZGlhLXR5cGUnO1xuICAkYXJnczoga2V5d29yZHMoJGFyZ3MpO1xuICAkZXhwcjogJyc7XG4gIEBpZiBtYXAtaGFzLWtleSgkYXJncywgJG1lZGlhLXR5cGUta2V5KSB7XG4gICAgJG1lZGlhLXR5cGU6IG1hcC1nZXQoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gICAgJGFyZ3M6IG1hcC1yZW1vdmUoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gIH1cbiAgQGVhY2ggJGtleSxcbiAgJHZhbHVlIGluICRhcmdzIHtcbiAgICBAaWYgJHZhbHVlIHtcbiAgICAgICRleHByOiBcIiN7JGV4cHJ9IGFuZCAoI3ska2V5fTogI3skdmFsdWV9KVwiO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgI3skbWVkaWEtdHlwZX0gI3skZXhwcn0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cblxuLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cblxuQG1peGluIGhkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAje3JvdW5kKCRyYXRpbyo5Nil9ZHBpKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gJG9yaWVudGF0aW9uOiBsYW5kc2NhcGUgfCBwb3J0cmFpdFxuQG1peGluIHRhYmxldCgkb3JpZW50YXRpb246IGZhbHNlKSB7XG4gICRtaW46IDI2OHB4O1xuICAkbWF4OiAxMDI0cHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4LCAkb3JpZW50YXRpb246ICRvcmllbnRhdGlvbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIHNtYWxsIGRlc2t0b3AgLSAxMDI1IDwtPiAxMjgwXG5AbWl4aW4gc21hbGwtZGVza3RvcCgpIHtcbiAgJG1pbjogMTAyNXB4O1xuICAkbWF4OiAxMjgwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gbWVkaXVtIGRlc2t0b3AgLSAxMjgxIDwtPiAxNDQwXG5AbWl4aW4gbWVkaXVtLWRlc2t0b3AoKSB7XG4gICRtaW46IDEyODFweDtcbiAgJG1heDogMTQ0MHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIGxhcmdlIGRlc2t0b3AgLSAxNDQxIDwtPiAxNjAwXG5AbWl4aW4gbGFyZ2UtZGVza3RvcCgpIHtcbiAgJG1pbjogMTQ0MXB4O1xuICAkbWF4OiAxNjAwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8geGxhcmdlIGRlc2t0b3AgLSAxNjAxIC0+IGluZmluaXR5XG5AbWl4aW4geGxhcmdlLWRlc2t0b3AoKSB7XG4gICRtaW46IDE2MDFweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBkZXNrdG9wIG92ZXJsYXlcbkBtaXhpbiBkZXNrdG9wLW92ZXJsYXkoKSB7XG4gICAgJG1pbjogMjY4cHg7XG4gICAgJG1heDogOTI2cHg7XG4gICAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cbi8qIEZpcmVmb3ggc3BlY2lmaWMgc3R5bGVzIGdvIGhlcmUgKi9cbi8qXG5DT01NT04gQ09MT1IgTkFNRVNcblxuVGhlc2UgY29sb3JzIGFyZSBtYXBwZWQgdG8gdGhlIG5hbWVzIGZyb20gdGhlIG9mZmljaWFsIGNvbG9ycy5cbkluc3RlYWQgb2YgaGF2aW5nIG5hbWVzIGxpa2UgYGNydXNoYCBvciBgYmxhemVgLCBkZXZlbG9wZXJzIHdpbGwgdXNlIHRoZWlyIGNvbW1vbiwgbm9uLW1hcmtldGl6ZWQgbmFtZS5cbmVnLiAkcmVkOiBjcnVzaFxuICAgICRvcmFuZ2U6IGJsYXplXG5cblRoZW4sIHVzZSB0aGUgYGhyYS1jb2xvcmAgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb2xvclxuZWcuIGNvbG9yOiBocmEtY29sb3IoJHJlZClcbiovXG4vKiAqKioqICovXG4vKiAqIENoYXJ0cyBDb2xvcnMgKi9cbi8qIGluZm8gdGV4dCBiYWNrZ3JvdW5kICovXG4vKiBVc2UgZm9sbG93aW5nIGNsYXNzZXMgZm9yIGFlc3RoZXRpY3Mgb25seSAtIE5ldyBVSSBLSVQgKi9cbi8qIENvbG9yIE1hcHBpbmcqL1xuLyplbmRzKi9cbi8qIFVzZWQgZm9yIGdyaWRzIGFuZCBtYXJnaW5zICovXG4vKlxuICBmb250IHNpemVzXG4gKi9cbi8qXG4gKiBIZWFkZXIgc2l6ZVxuICovXG4vKlxuICogRGV2aWNlIEdyb3VwIHNldHRpbmdzXG4gKi9cbi8qXG4gKiBCb3JkZXIgc2V0dGluZ3NcbiAqL1xuLypcbiAqIFNoYWRvd3MgZ28gYnkgbGV2ZWxcbiAqL1xuLypcbiAqIFBhZGRpbmcgc2V0dGluZ3NcbiAqL1xuLypcbiAqIElucHV0c1xuICovXG4vKlxuICogVG9vbFRpcHNcbiAqL1xuLypcbiAqIEFjdGlvbiBiYXIgc2l6ZXNcbiAqL1xuLyoqXG4qICBEZXZpY2UgZ3JpZCBzaXplc1xuKi9cbi8qXG4gKiBGb2N1cyBib3JkZXJcbiAqL1xuLypcbiAqIEJvcmRlclxuICovXG4vKlxuICogUG9wLXVwXG4qL1xuLypcbiogU3RhdHVzIE5vdGlmaWNhdGlvblxuKi9cbi8qXG4gIFJvdW5kIGJ1dHRvbiBzaXplc1xuICovXG4vKlxuICogSW1hZ2UgSWNvbiBTaXplc1xuICovXG4vKiogTW9kYWwgc2l6ZXMgKiovXG46aG9zdCB7XG4gIGhlaWdodDogMTAwdmg7XG4gIHdpZHRoOiAxMDB2dztcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgOmhvc3QgLnJpZ2h0LXBhbmVsIGxheW91dCB7XG4gICAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50OyB9XG5cbmxheW91dC1mb3JtIHtcbiAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50OyB9XG5cbi5sb2dpbi1mb3JtLXRpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEuODc1cmVtO1xuICBjb2xvcjogaG1hLWNvbG9yKGdyZXksIDgwKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nLWJvdHRvbTogMi4yNXJlbTsgfVxuXG4uYnRuLWxvZ2luIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiAjMDAwO1xuICBoZWlnaHQ6IDIuNjI1cmVtO1xuICBiYWNrZ3JvdW5kOiAjZGZkMjY5O1xuICBmb250LXNpemU6IDEuMTI1cmVtOyB9XG5cbi5idG4tZmlyc3RVc2VyIHtcbiAgY29sb3I6ICMwMDA7XG4gIGhlaWdodDogMi42MjVyZW07XG4gIGJhY2tncm91bmQ6ICNkZmQyNjk7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07IH1cblxuLmZvcm0tbGluay1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG4gIC5mb3JtLWxpbmstYWN0aW9ucyBhIHtcbiAgICBsaW5lLWhlaWdodDogMjsgfVxuICAuZm9ybS1saW5rLWFjdGlvbnMgLmZvcmdldC1wYXNzIHtcbiAgICBjb2xvcjogaG1hLWNvbG9yKGdyZXksIDYwKTsgfVxuICAuZm9ybS1saW5rLWFjdGlvbnMgLnJlZ2lzdGVyLXVzZXIge1xuICAgIGNvbG9yOiBobWEtY29sb3IoYmxhemUsIDgwKTsgfVxuIiwiQGltcG9ydCAnLi9tZWRpYXF1ZXJpZXMnO1xuXG4vLy8gLyBzdHlsZWd1aWRlOmlnbm9yZTpzdGFydFxuLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZT09bnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKT09JyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG4gIEBpZiAkY291bnQ9PTEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY291bnQge1xuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcbiAgfVxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKT09J3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG4gIC8vIFRoZW4gdGhlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBlbXNcbiAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxZW07XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsIHZhbHVlIHRvIG1hdGNoaW5nIHJlbSB2YWx1ZS4gKkFueSogdmFsdWUgcGFzc2VkLCByZWdhcmRsZXNzIG9mIHVuaXQsIGlzIGFzc3VtZWQgdG8gYmUgYSBwaXhlbCB2YWx1ZS4gQnkgZGVmYXVsdCwgdGhlIGJhc2UgcGl4ZWwgdmFsdWUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHJlbSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciBpbiByZW1zLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGhlIGJhc2UgcGl4ZWwgdmFsdWUuIHJlbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLlxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSAhPSdudW1iZXInIHtcbiAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkrJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0ncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XG4gIH1cbiAgLy8gVHVybiAwcmVtIGludG8gMFxuICBAaWYgJHZhbHVlPT0wcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vLyBBbmltYXRpb24ga2V5ZnJhbWVzIGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRhbmltYXRpb24tbmFtZSAtIE5hbWUgb2YgdGhlIGFuaW1hdGlvbi5cbkBtaXhpbiBrZXlmcmFtZXMoJGFuaW1hdGlvbi1uYW1lKSB7XG4gIEAtd2Via2l0LWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtbW96LWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtbXMta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1vLWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBrZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gQW5pbWF0aW9uIGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHIgLSBjc3MzIGFuaW1hdGlvbiBzcGVjLlxuQG1peGluIGFuaW1hdGlvbigkc3RyKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtbW96LWFuaW1hdGlvbjogI3skc3RyfTtcbiAgLW1zLWFuaW1hdGlvbjogI3skc3RyfTtcbiAgLW8tYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICBhbmltYXRpb246ICN7JHN0cn07XG59XG5cbi8vLyBCb3ggc2hhZG93IGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHIgLSBjc3MzIGJveC1zaGFkb3cgc3BlYy5cbkBtaXhpbiBib3gtc2hhZG93KCRzdHIpIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAjeyRzdHJ9O1xuICAtbW96LWJveC1zaGFkb3c6ICN7JHN0cn07XG4gIC1vLWJveC1zaGFkb3c6ICN7JHN0cn07XG4gIGJveC1zaGFkb3c6ICN7JHN0cn07XG59XG5cbi8vLyBncmFkaWVudCBhdXRvcHJlZml4ZXJcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIGdyYWRpZW50KCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgYmFja2dyb3VuZDogI3skY29sb3IxfTtcbiAgLyogRm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgZ3JhZGllbnRzICovXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBGb3IgU2FmYXJpIDUuMSB0byA2LjAgKi9cbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBGb3IgT3BlcmEgMTEuMSB0byAxMi4wICovXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBGb3IgRmlyZWZveCAzLjYgdG8gMTUgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBTdGFuZGFyZCBzeW50YXggKi9cbn1cblxuQG1peGluIHZlcnRpY2FsLWdyYWRpZW50LWRpdmlkZXIoKXtcbiAgd2lkdGg6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAxcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIGhyYS1jb2xvcigkZ3JleSwgMjApLCAkd2hpdGUpO1xufVxuXG5cbi8vLyBJRSBvbmx5IHF1ZXJ5XG5AbWl4aW4gaWUtb25seSgpIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcbiAgICAvKiBJRTEwKyBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuQG1peGluIGNyZWF0ZS1hbmltYXRpb24oJGFuaS1uYW1lKSB7XG4gIGFuaW1hdGlvbjogJGFuaS1uYW1lIGZvcndhcmRzIDMwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG5cbkBtaXhpbiBjcmVhdGUtdHJhbnNpdGlvbigkcHJvcGVydHktbmFtZSkge1xuICB0cmFuc2l0aW9uOiAkcHJvcGVydHktbmFtZSAzMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuLy8vIEVkZ2Ugb25seSBxdWVyeVxuQG1peGluIGVkZ2Utb25seSgpIHtcbiAgQHN1cHBvcnRzICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgLyogRWRnZSBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuLyogRmlyZWZveCBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuQG1peGluIGZpcmVmb3gtb25seSgpIHtcbiAgQHN1cHBvcnRzICgtbW96LWFwcGVhcmFuY2U6bm9uZSkge1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuXG4vLyBzdHlsZWd1aWRlOmlnbm9yZTplbmQiLCIvKlxuQ09NTU9OIENPTE9SIE5BTUVTXG5cblRoZXNlIGNvbG9ycyBhcmUgbWFwcGVkIHRvIHRoZSBuYW1lcyBmcm9tIHRoZSBvZmZpY2lhbCBjb2xvcnMuXG5JbnN0ZWFkIG9mIGhhdmluZyBuYW1lcyBsaWtlIGBjcnVzaGAgb3IgYGJsYXplYCwgZGV2ZWxvcGVycyB3aWxsIHVzZSB0aGVpciBjb21tb24sIG5vbi1tYXJrZXRpemVkIG5hbWUuXG5lZy4gJHJlZDogY3J1c2hcbiAgICAkb3JhbmdlOiBibGF6ZVxuXG5UaGVuLCB1c2UgdGhlIGBocmEtY29sb3JgIGZ1bmN0aW9uIHRvIGdldCB0aGUgY29sb3JcbmVnLiBjb2xvcjogaHJhLWNvbG9yKCRyZWQpXG4qL1xuXG4kdGhlbWUtZ3JlZW46ICNkZmQyNjk7XG4kdGhlbWUtY29sb3I6ICR0aGVtZS1ncmVlbjtcbiRibHVlOiBibHVlO1xuJGN5YW46IGN5YW47XG4kZ3JleTogZ3JleTtcbiRyZWQ6IGNydXNoO1xuJG9yYW5nZTogYmxhemU7XG4keWVsbG93OiBzdW5zZXQsIDYwO1xuJGdyZWVuOiBzZWFmb2FtO1xuJGxpZ2h0LWdyZWVuOiBzZWF3ZWVkO1xuJGRhcmstZ3JlZW46IG1hcmluZTtcbiRicm93bjogYnJvd247XG4kcHVycGxlOiBwdXJwbGU7XG4kc3Vuc2V0OiBzdW5zZXQ7XG4kcGluazogcGluaztcblxuJG5ld2dyZXk6IG5ld2dyZXk7XG4kbmV3Ymx1ZTogbmV3Ymx1ZTtcbiRuZXdjeWFuOiBuZXdjeWFuO1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gaG1hJ3MgQ29sb3VyIFBhbGV0dGVcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiRjb2xvcnM6IChcbiAgICBibHVlOiAoNTogI2YzZmJmZSwgMTA6ICNlMmY0ZmIsIDIwOiAjYmFlNWY1LCA0MDogIzcxYzhmMSwgNjA6ICMzMmI2ZTksIDgwOiAjMDA5OWQzLCAxMDA6ICMwMDc0YWEsIDEyMDogIzA2NGM3YyksXG4gICAgY3J1c2g6ICg1OiAjZmZmN2Y2LCAxMDogI2ZlZjBlZCwgMjA6ICNmZGRmZGMsIDQwOiAjZmFjMWJhLCA2MDogI2Y0ODI3MiwgODA6ICNmMTYxNGYsIDEwMDogI2UzMjcyMiwgMTEwOiNjMTNmMmIsIDEyMDogI2E3MWUyMiksXG4gICAgY3lhbjogKDU6ICNmMmY5ZjksIDEwOiAjZTZmNGY0LCAyMDogI2NjZWFlYSwgNDA6ICM5YWQ3ZDYsIDYwOiAjNjhjNWM0LCA4MDogIzM2YjFiMCwgMTAwOiAjMDI5ZjlkLCAxMjA6ICMwMjZmNmYpLFxuICAgIGJsYXplOiAoNTogI2ZmZjdmMywgMTA6ICNmZmYxZTksIDIwOiAjZmNlMWQzLCA0MDogI2ZjYzVhNywgNjA6ICNmN2E3N2IsIDgwOiAjZjY4OTRkLCAxMDA6ICNmMjZiMjEsIDEyMDogI2I3M2UyNSksXG4gICAgZ3JleTogKDU6ICNmYWZiZmIsIDEwOiAjZWNlZmYwLCAyMDogI2U0ZTdlOSwgNDA6ICNhOGIyYjcsIDYwOiAjODI4ZDkzLCA4MDogIzVCNjY3MCwgMTAwOiAjM2Q0NjRkLCAxMjA6ICMxNDFlMjUpLFxuICAgIHNlYWZvYW06ICg1OiAjZWZmOWY4LCAxMDogI2U0ZjdmMywgMjA6ICNjZmVkZTgsIDQwOiAjYTVlYWRiLCA2MDogIzYxZDZiOCwgODA6ICMyZmQyYTgsIDEwMDogIzFlYWQ4YSwgMTIwOiAjMGI3MDVkKSxcbiAgICBzZWF3ZWVkOiAoNTogI2Y4ZmJmNiwgMTA6ICNmMmY4ZWQsIDIwOiAjZTNmMGQ5LCA0MDogI2NiZTRiNSwgNjA6ICNiMGQ3OGUsIDgwOiAjOTVjYjZhLCAxMDA6ICM3YWMxNDIsIDEyMDogIzQ5OTE0MiksXG4gICAgbWFyaW5lOiAoNTogI2Y3ZjlmMywgMTA6ICNmMWY0ZTgsIDIwOiAjZTRlYWQyLCA0MDogI2NiZDlhNywgNjA6ICNiZmRiODUsIDgwOiAjYWVkMjU1LCAxMDA6ICM3YWExM2UsIDEyMDogIzRjNzMzNiksXG4gICAgcGViYmxlOiAoNTogI2ZiZmNmYywgMTA6ICNmNWY2ZjYsIDIwOiAjZTllOGU5LCA0MDogI2Q1ZDRkNSwgNjA6ICNhYWFhYWIsIDgwOiAjN2M3YzgxLCAxMDA6ICM1NDUzNTUsIDEyMDogIzI4MjcyYiksXG4gICAgc3Vuc2V0OiAoNTogI2ZmZmRlZSwgMTA6ICNmZmZiZGIsIDIwOiAjZmRmN2I0LCA0MDogI2ZmZjU3ZSwgNjA6ICNmZmYxMDAsIDgwOiAjZmJhZDFjLCAxMDA6ICNmNDdmMWYsIDEyMDogI2M5NTQyOCksXG4gICAgYnJvd246ICg1OiAjZjdmNGYyLCAxMDogI2VhZTRlMSwgMjA6ICNkOGNlY2IsIDQwOiAjYmFhYmE1LCA2MDogIzk2ODM3YywgODA6ICM3NzVkNTMsIDEwMDogIzU5MzgyYywgMTIwOiAjMmYxODBkKSxcbiAgICBwdXJwbGU6ICg1OiAjZjJlZmY3LCAxMDogI2U4ZGZlZiwgMjA6ICNkN2M5ZTMsIDQwOiAjYzFhZWQ1LCA2MDogI2EwODViZSwgODA6ICM3YjYxYWEsIDEwMDogIzY2NGZhMSwgMTIwOiAjNDIyZTg1KSxcbiAgICBwaW5rOiAoNTogI2ZlZjRmOCwgMTA6ICNmY2U3ZWYsIDIwOiAjZmFkYWUxLCA0MDogI2Y0YTJjMiwgNjA6ICNlZDczYTQsIDgwOiAjZTk0NTg2LCAxMDA6ICNlMzE1NjcsIDEyMDogI2FiMWQ0MSksXG5cbiAgICAvLyBOZXcgVUkgS2l0IGNvbG9ycyAtIG5ldyBwcmVmaXggd2lsbCBiZSByZW1vdmVkIG9uY2UgdGhlIG1pZ3JhdGlvbiBpcyBjb21wbGV0ZWRcbiAgICAvLyBJdCBhbHNvIG1ha2VzIHN1cmUgdGhhdCBjb2xvciB2YXJpYWJsZXMgYXJlIHVzZWRcbiAgICBuZXdncmV5OiAoNTogI2ZjZmNmYywgMTA6ICNmN2Y3ZjcsIDIwOiAjZjJmMmYyLCA0MDogI2U5ZTllOSwgNTA6ICNjN2M3YzcsIDYwOiAjYTlhOWE5LCA3MDogIzgwODA4MCwgODA6ICM2YjZiNmIsMTAwOiAjNGI0YjRiLDEyMDojMjkyOTI5KSxcbiAgICBuZXdibHVlOiAoNTogI2YwZjZmYSwgMTA6ICNlMmVlZjUsIDIwOiAjYjhkNWU3LCA0MDogIzhlYmJkNywgNTA6ICM2OWExYzcsIDU1OiAjNGY4ZmJkLCA2NTogIzM4N2ViMywgNzA6ICMyZjcyYTgsIDgwOiAjMjU2Mjk3LCAxMDA6ICMxZDUyODUsIDEyMDogIzEwMzc2NiksXG4gICAgbmV3Y3lhbjogKDU6ICNmMGY2ZmEsIDEwOiAjZTJlZWY1LCAyMDogI2I4ZDVlNywgNDA6ICM4ZWJiZDcsIDUwOiAjNjlhMWM3LCA1NTogIzRmOGZiZCwgNjU6ICMzODdlYjMsIDEwMDogIzJmNzJhOCwgMTIwOiAjMjU2Mjk3LCAxNDA6ICMxZDUyODUsIDE2MDogIzEwMzc2NiksXG4pO1xuXG5AZnVuY3Rpb24gaHJhLWNvbG9yKCRjb2xvciwgJHZhbHVlOiAxMDApIHtcbiAgICAkc2VsZWN0ZWRDb2xvcjogJGNvbG9yO1xuXG4gICAgQGlmICh0eXBlLW9mKCRjb2xvcikgPT0gJ2xpc3QnKSB7XG4gICAgICAgICRzZWxlY3RlZENvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgICAgICAgJHZhbHVlOiBudGgoJGNvbG9yLCAyKTtcbiAgICB9XG5cbiAgICAkY29sb3ItbWFwOiBtYXAtZ2V0KCRjb2xvcnMsICRzZWxlY3RlZENvbG9yKTtcbiAgICBAaWYgKCRjb2xvci1tYXAgPT0gbnVsbCkge1xuICAgICAgICBAZXJyb3IgJHNlbGVjdGVkQ29sb3IgKyAnIGlzIG5vdCBwYXJ0IG9mIHRoZSBjb2xvciBwYWxldHRlJztcbiAgICB9XG4gICAgQHJldHVybiBtYXAtZ2V0KCRjb2xvci1tYXAsICR2YWx1ZSk7XG59XG5cbiRibGFjazogaHJhLWNvbG9yKCRncmV5LCAxMjApO1xuJHdoaXRlOiByZ2IoMjU1LCAyNTUsIDI1NSk7XG4kY29sb3ItZ3JheS10cmFuc3BhcmVudDogdHJhbnNwYXJlbnRpemUoaHJhLWNvbG9yKCRncmV5KSwgMC44KTtcbiRob3Zlci1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCAyMCk7XG5cblxuLyogKioqKiAqL1xuJHN1Y2Nlc3MtY29sb3I6IGhyYS1jb2xvcigkZ3JlZW4pO1xuJHdhcm5pbmctY29sb3I6IGhyYS1jb2xvcigkeWVsbG93KTtcbiRhbGVydC1jb2xvcjogaHJhLWNvbG9yKCRyZWQpO1xuJGNvbG9yLWludmFsaWQ6IGhyYS1jb2xvcigkcmVkKTtcbiRkaXNhYmxlZC1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCAxMCk7XG4kZGlzYWJsZWQtYm9yZGVyOiBocmEtY29sb3IoJGdyZXksIDQwKTtcbiRjb2xvci1ocmEtYW5jaG9yOiBocmEtY29sb3IoJGJsdWUpO1xuJGRpc2FibGVkLWZvcmUtY29sb3I6IGhyYS1jb2xvcigkZ3JleSwgNDApO1xuXG4vKiAqIENoYXJ0cyBDb2xvcnMgKi9cbiRzdGFja2VkLXRvb2x0aXAtY2lyY2xlLWJnOiAjM2Y0MDQyO1xuJGNoYXJ0LXRvb2x0aXAtY2lyY2xlOiAjZmY4OTRjO1xuJGRvbnV0LWNvdW50OiAjZmY2YjU3O1xuXG4vKiBpbmZvIHRleHQgYmFja2dyb3VuZCAqL1xuJGluZm8tYmFja2dyb3VuZDogI2ZmZmRlNjtcblxuXG4vKiBVc2UgZm9sbG93aW5nIGNsYXNzZXMgZm9yIGFlc3RoZXRpY3Mgb25seSAtIE5ldyBVSSBLSVQgKi9cbi8vIFN0YW5kYXJkaXNlIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mIGRpcmVjdCBjb2xvcnNcbi8qIENvbG9yIE1hcHBpbmcqL1xuJHByaW1hcnktYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDcwKTtcbiRwcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCAxMDApO1xuJHByaW1hcnktdGV4dDokd2hpdGU7XG5cbiRkZWxldGUtYmFja2dyb3VuZDogaHJhLWNvbG9yKCRyZWQsIDExMCk7XG5cbiRzZWNvbmRhcnktdGV4dDpocmEtY29sb3IoJG5ld2JsdWUsIDU1KTtcbiRzZWNvbmRhcnktYmFja2dyb3VuZDokd2hpdGU7XG4kc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCA1KTtcbiRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2dyZXksIDUwKTtcbiRzZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQ6JHNlY29uZGFyeS10ZXh0O1xuXG4kZmxhdC1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA4MCk7XG4kZmxhdC1ob3ZlcjogaHJhLWNvbG9yKCRuZXdncmV5LCAxMDApO1xuJGZsYXQtZGlzYWJsZWQ6IGhyYS1jb2xvcigkbmV3Z3JleSwgNzApO1xuXG4kYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ6IGhyYS1jb2xvcigkbmV3Ymx1ZSwgODApO1xuJGFjdGlvbi1kaXNhYmxlZDogaHJhLWNvbG9yKCRuZXdncmV5LCA1NSk7XG4kYWN0aW9uLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCA1MCk7XG4vKmVuZHMqL1xuXG4kYnV0dG9uLXByaW1hcnktdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWJhY2tncm91bmQ7XG4kYnV0dG9uLXByaW1hcnktaG92ZXItYmFja2dyb3VuZC1jb2xvcjokcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1wcmltYXJ5LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRidXR0b24tZGVsZXRlLWJhY2tncm91bmQtY29sb3I6ICRkZWxldGUtYmFja2dyb3VuZDtcbiRidXR0b24tcHJpbWFyeS1kaXNhYmxlZC1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcblxuLy8gU2Vjb25kYXJ5IGJ1dHRvbnMgYW5kIHNlY29uZGFyeSBhY3Rpb24gYnV0dG9ucyBzaGFyZSBjb2xvcnMgXG4kYnV0dG9uLXNlY29uZGFyeS1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiRidXR0b24tc2Vjb25kYXJ5LXRleHQtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiRidXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWhvdmVyLXRleHQtY29sb3I6ICRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLXNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuXG4kYnV0dG9uLWZsYXQtYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4kYnV0dG9uLWZsYXQtY29sb3I6ICRmbGF0LWNvbG9yO1xuJGJ1dHRvbi1mbGF0LWhvdmVyLWNvbG9yOiRmbGF0LWhvdmVyO1xuJGJ1dHRvbi1mbGF0LWRpc2FibGVkLWNvbG9yOiAkZmxhdC1kaXNhYmxlZDtcblxuJGJ1dHRvbi1hY3Rpb24tYmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24tdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1hY3Rpb24taG92ZXItYmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24taG92ZXItdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1hY3Rpb24tZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24tZGlzYWJsZWQtdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1hY3Rpb24tZGVsZXRlLWJhY2tncm91bmQtY29sb3I6JGRlbGV0ZS1iYWNrZ3JvdW5kO1xuXG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1kaXNhYmxlZC1jb2xvcjogJGFjdGlvbi1kaXNhYmxlZDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuXG4kdW5zZWxlY3RlZC1jaG9pY2UtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRzZWxlY3RlZC1jaG9pY2UtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcblxuJHJhZGlvLWxhYmVsLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kdG9nZ2xlLW9uLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiR0b2dnbGUtb2YtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJHRvZ2dsZS1oZWFkLWNvbG9yOiAkd2hpdGU7XG5cbiRpbnB1dC10ZXh0LWxhYmVsLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDEyMCk7XG4kaW5wdXQtdGV4dC1ib3JkZXItY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgNDApO1xuJGlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgNjApO1xuJGlucHV0LXRleHQtYWN0aXZlLWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA4MCk7XG4kaW5wdXQtdGV4dC1hY3RpdmUtdGV4dC1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCAxMjApO1xuJGlucHV0LXRleHQtZXJyb3ItYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJHJlZCwgMTEwKTtcbiRpbnB1dC10ZXh0LWRpc2FibGVkLWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA1MCk7XG4kaW5wdXQtdGV4dC1lcnJvci1tZXNzYWdlLWNvbG9yOiAkaW5wdXQtdGV4dC1lcnJvci1ib3JkZXItY29sb3I7XG4kaW5wdXQtdGV4dC1kaXNhYmxlZC1jb2xvcjogJGlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I7XG4kaW5wdXQtdGV4dC1sYWJlbC1kaXNhYmxlZC1jb2xvcjogJGlucHV0LXRleHQtYm9yZGVyLWNvbG9yO1xuJGlucHV0LXRleHQtZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I7IiwiQGltcG9ydCAnbWl4aW5zJztcbkBpbXBvcnQgJ2NvbG9ycyc7XG5cbi8qIFVzZWQgZm9yIGdyaWRzIGFuZCBtYXJnaW5zICovXG5cbiRzbWFsbC1zaXplOiA0ICFkZWZhdWx0O1xuJGxhcmdlLXNpemU6IDEyICFkZWZhdWx0O1xuJHNtYWxsLXNxdWFyZTogcmVtLWNhbGMoJHNtYWxsLXNpemUpICFkZWZhdWx0O1xuJGxhcmdlLXNxdWFyZTogcmVtLWNhbGMoJGxhcmdlLXNpemUpICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWdyYXk6IHRyYW5zcGFyZW50aXplKGhyYS1jb2xvcigkZ3JleSwgNDApLCAwLjgpO1xuJHRyYW5zcGFyZW50LXdoaXRlOiB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNik7XG4kYW5pbWF0aW9uLXRpbWluZzogMC4yNXM7XG4kcmFkLWdyYWQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGNlbnRlciwgdHJhbnNwYXJlbnRpemUoaHJhLWNvbG9yKCRncmV5KSwgMC41KSA4MCUsIHRyYW5zcGFyZW50aXplKCRibGFjaywgMC41KSAxMDAlKTtcbiRsaW5lYXItZ3JhZDogcmdiYSgkYmxhY2ssIDAuNyk7XG5cbiRzY3JvbGwtYmFyLXdpZHRoOiAkc21hbGwtc3F1YXJlICogMjtcbiRzY3JvbGwtYmFyLXdpZHRoLWZpcmVmb3g6IHJlbS1jYWxjKDE3KTtcbiRzY3JvbGwtYmFyLXdpZHRoLWVkZ2U6IHJlbS1jYWxjKDE3KTtcbiRzY3JvbGwtYmFyLXdpZHRoLWllOiByZW0tY2FsYygxNyk7XG5cbi8qXG4gIGZvbnQgc2l6ZXNcbiAqL1xuJGljb24tZm9udC1zaXplLXNtYWxsOiAkc21hbGwtc3F1YXJlICogMyAhZGVmYXVsdDsgLy8gMTJweFxuJGljb24tZm9udC1zaXplLW1lZGl1bTogJHNtYWxsLXNxdWFyZSAqIDQgIWRlZmF1bHQ7IC8vIDE2cHhcbiRpY29uLWZvbnQtc2l6ZS1yZWd1bGFyOiAkc21hbGwtc3F1YXJlICogNSAhZGVmYXVsdDsgLy8gMjBweFxuJGljb24tZm9udC1zaXplLWxhcmdlOiAkc21hbGwtc3F1YXJlICogNjsgLy8gMjRweFxuJGljb24tZm9udC1zaXplLXgtbGFyZ2U6ICRzbWFsbC1zcXVhcmUgKiA3OyAvLyAyOHB4XG4kaWNvbi1mb250LXNpemUtcGxhY2Vob2xkZXI6ICRsYXJnZS1zcXVhcmUgKiA3O1xuJGZvbnQtc2l6ZTogJGljb24tZm9udC1zaXplLW1lZGl1bSAhZGVmYXVsdDsgLy8gMTNweFxuJGZvbnQtc2l6ZS1tZWRpdW06ICRpY29uLWZvbnQtc2l6ZS1tZWRpdW07IC8vMTZweFxuJGZvbnQtc2l6ZS1sYXJnZTogJGljb24tZm9udC1zaXplLXJlZ3VsYXI7XG4kZm9udC1zaXplLXgtbGFyZ2U6ICRpY29uLWZvbnQtc2l6ZS14LWxhcmdlO1xuJGZvbnQtc2l6ZS1oZWFkZXI6IDE0cHg7XG5cblxuJGZvbnQtd2VpZ2h0LWxpZ2h0OiAzMDA7IC8vIFNvdXJjZSBTYW5zIFBybyBMaWdodFxuJGZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDsgLy8gU291cmNlIFNhbnMgUHJvIExpZ2h0XG4kZm9udC13ZWlnaHQtc2VtaS1ib2xkOiA2MDA7IC8vIFNvdXJjZSBTYW5zIFBybyBTZW1pIEJvbGRcbiRmb250LXdlaWdodC1ib2xkOiA3MDA7IC8vIFNvdXJjZSBTYW5zIFBybyBCb2xkXG5cblxuXG4vKlxuICogSGVhZGVyIHNpemVcbiAqL1xuXG4kaGVhZGVyLWhlaWdodDogcmVtLWNhbGMoNTIpICFkZWZhdWx0O1xuJGhlYWRlci10ZXh0LWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDggIWRlZmF1bHQ7IC8vMzJweFxuJHN1Yi1uYXYtaGVpZ2h0OiAwcmVtICFkZWZhdWx0OyAvLyAwcHhcbiRzZWFyY2gtYmFyLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDE1ICFkZWZhdWx0O1xuLy8kcGFnaW5hdGlvbi1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAyNSAhZGVmYXVsdDtcbiRjaGFydHMtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogNzQgIWRlZmF1bHQ7XG4kbWFpbi1oZWFkZXItaGVpZ2h0OiAkaGVhZGVyLWhlaWdodCskc3ViLW5hdi1oZWlnaHQgIWRlZmF1bHQ7XG4kdmlydHVhbC1ncm91cC1pbmRpY2F0b3ItaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogNztcbiRoZWFkZXItc2lkZS1tYXJnaW46IHJlbS1jYWxjKDI0KTtcblxuLypcbiAqIERldmljZSBHcm91cCBzZXR0aW5nc1xuICovXG5cbiRkZXZpY2UtZ3JvdXAtcGFkZGluZy1sZWZ0OiAkc21hbGwtc3F1YXJlICogNjtcbiRkZXZpY2UtZ3JvdXAtaXRlbXMtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogOTtcbiRkZXZpY2UtZ3JvdXAtd2lkdGg6ICRsYXJnZS1zcXVhcmUgKiAyODtcbiRkZXZpY2UtZ3JvdXAtbWluLXdpZHRoOiAkc21hbGwtc3F1YXJlICogNTU7XG4kZGV2aWNlLWdyb3VwLW1heC13aWR0aDogJHNtYWxsLXNxdWFyZSAqIDE0MDtcbiRkZXZpY2UtZ3JvdXAtbWFyZ2luLXRvcDogJHNlYXJjaC1iYXItaGVpZ2h0O1xuJGRldmljZS1ncm91cC1idXR0b24td2lkdGg6ICRsYXJnZS1zcXVhcmUgKiAyMTtcbiRkZXZpY2UtZ3JvdXAtYnV0dG9uLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDExO1xuJGRldmljZS1ncm91cC1idXR0b24tYm9yZGVyOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCAyMCk7XG5cbi8qXG4gKiBCb3JkZXIgc2V0dGluZ3NcbiAqL1xuXG4kYm9yZGVyLWJhc2U6IDFweCBzb2xpZCByZ2IoMjA0LCAyMDQsIDIwNCk7XG4kYm9yZGVyLXJhZGl1cy1zbWFsbDogM3B4O1xuJGJvcmRlci1yYWRpdXMtYmFzZTogNHB4O1xuJGJvcmRlci1yYWRpdXMtbGFyZ2U6IDZweDtcblxuLypcbiAqIFNoYWRvd3MgZ28gYnkgbGV2ZWxcbiAqL1xuXG4kc2hhZG93OiAwIDNweCA5cHggcmdiYSgwLCAwLCAwLCAuNSk7XG4kc2hhZG93LTE6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4kc2hhZG93LXNtYWxsOiAwIDFweCA2cHggcmdiYSgwLCAwLCAwLCAwLjI0KTtcbiRzaGFkb3ctaGVhZGVyOiAwcHggMXB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctc2VhcmNoLWhlYWRlcjogOHB4IDFweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWxpZ2h0OiAxcHggMXB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4kc2hhZG93LWxpZ2h0LWJvdHRvbS1vbmx5OiAwcHggMXB4IDhweCByZ2JhKCRibGFjaywgMC4xMyk7XG4kc2hhZG93LWFib3ZlOiAwIC0xcHggMTNweCAycHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1hYm92ZS1sZWZ0OiAtNnB4IDBweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWJlbG93OiAwcHggOXB4IDhweCAtNXB4IHJnYmEoMTU4LCAxNTgsIDE1OCwgMC4yNSk7XG4kc2hhZG93LWRyb3Bkb3duOiAwIDFweCAxM3B4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctZGlhbG9nOiAwIDhweCAyMHB4IDZweCByZ2JhKCRibGFjaywgMC42KTtcbiRzaGFkb3ctZGlhbG9nLXN1ZmZpeDogMHB4IDE2cHggMjBweCAzcHggcmdiYSgkYmxhY2ssIDAuNik7XG4kc2hhZG93LWxheW91dDogNnB4IDBweCA5cHggMHB4IHJnYmEoJGJsYWNrLCAwLjIpO1xuJHNoYWRvdy1zYXZlZC1zZWFyY2hlczogNHB4IDRweCA4cHggLTJweCByZ2JhKDY3LDcwLDc0LC4xMyk7XG4kc2hhZG93LWNoYXJ0LWNhcmQ6IDAgNnB4IDE2cHggcmdiYSgyMCwzMCwzNywwLjA4KTtcbiRzaGFkb3ctY29uZmlnLWNhcmQ6IDAgMCAyNHB4IDAgcmdiYSgyMCwzMCwzNywwLjEpO1xuXG4vKlxuICogUGFkZGluZyBzZXR0aW5nc1xuICovXG5cbiRib2R5LXBhZGRpbmc6ICRsYXJnZS1zcXVhcmUgKiAyO1xuJHBhZGRpbmctc21hbGw6ICRsYXJnZS1zcXVhcmU7XG4kYmFzZS1wYWRkaW5nOiAkc21hbGwtc3F1YXJlICogNDsgLy8gMTZweFxuJGhhbGYtYmFzZS1wYWRkaW5nOiAkYmFzZS1wYWRkaW5nIC8gMjtcbiRtb2RhbC1wYWRkaW5nOiAkYmFzZS1wYWRkaW5nO1xuJGxheW91dC1wYWRkaW5nOiAoJGJhc2UtcGFkZGluZyAqIDIpICgkYm9keS1wYWRkaW5nICogMikgKCRiYXNlLXBhZGRpbmcgKiAyKSAoJGJvZHktcGFkZGluZyAqIDIpO1xuJHBhZGRpbmctYmFzZS12ZXJ0aWNhbDogNnB4O1xuJHBhZGRpbmctYmFzZS1ob3Jpem9udGFsOiAkc21hbGwtc3F1YXJlICogMztcbiRwYWRkaW5nLWxhcmdlLXZlcnRpY2FsOiAxMHB4O1xuJHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDogICRzbWFsbC1zcXVhcmUgKiA0O1xuJHBhZGRpbmctbWVkaXVtLXZlcnRpY2FsOiAxNHB4O1xuJHBhZGRpbmctc21hbGwtdmVydGljYWw6IDVweDtcbiRwYWRkaW5nLXNtYWxsLWhvcml6b250YWw6IDEwcHg7XG5cbi8qXG4gKiBJbnB1dHNcbiAqL1xuJGlucHV0LXBhZGRpbmc6ICRzbWFsbC1zcXVhcmUgJHNtYWxsLXNxdWFyZSAqIDI7XG4kaW5wdXQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogODtcblxuLypcbiAqIFRvb2xUaXBzXG4gKi9cblxuLy8gVG9vbHRpcHNcbiR0b29sdGlwLW1heC13aWR0aDogMjUwcHggIWRlZmF1bHQ7XG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCkgIWRlZmF1bHQ7XG4kdG9vbHRpcC10ZXh0LWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuJHRvb2x0aXAtZGVsYXk6IDAuNHMgIWRlZmF1bHQ7XG4kdG9vbHRpcC1kdXJhdGlvbjogMC4xcyAhZGVmYXVsdDtcblxuLypcbiAqIEFjdGlvbiBiYXIgc2l6ZXNcbiAqL1xuXG4kZGV2aWNlLWFjdGlvbi1iYXItaGVpZ2h0OiAkbGFyZ2Utc3F1YXJlICogNTtcbiRjb3VudC1jb250YWluZXItcGFkZGluZzogKCRsYXJnZS1zcXVhcmUgKiAyKSAoJHNtYWxsLXNxdWFyZSAqIDQpICgkbGFyZ2Utc3F1YXJlICogMikgKCRzbWFsbC1zcXVhcmUgKiA0KTtcblxuLyoqXG4qICBEZXZpY2UgZ3JpZCBzaXplc1xuKi9cblxuJHJvdy1hYm92ZS1ncmlkLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDE0O1xuJGNoZWNrLWNlbGwtcGFkZGluZzogMCAwIDAgJHNtYWxsLXNxdWFyZSoyO1xuJGRldmljZS1ncmlkLW1pbi1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3MTtcblxuLypcbiAqIEZvY3VzIGJvcmRlclxuICovXG5cbiRocmEtZm9jdXMtb3V0bGluZTogMnB4IHNvbGlkIGhyYS1jb2xvcigkY3lhbik7XG5cbi8qXG4gKiBCb3JkZXJcbiAqL1xuXG4kaHJhLWJvcmRlcjogMXB4IHNvbGlkIGhyYS1jb2xvcigkZ3JleSwgMjApO1xuJGhyYS1ib3JkZXItZXJyb3I6IDFweCBzb2xpZCBocmEtY29sb3IoJHJlZCk7XG4kaHJhLWJvcmRlci1pbnB1dC1kaXNhYmxlZDogMXB4IHNvbGlkIGhyYS1jb2xvcigkZ3JleSwgNDApO1xuXG5cbi8qXG4gKiBQb3AtdXBcbiovXG4kaHJhLXBvcHVwLWJlYWstc2l6ZTogJHNtYWxsLXNxdWFyZSozO1xuJGhyYS1wb3B1cC1iZWFrLWJvdHRvbS1jZW50ZXI6IGNhbGMoNTAlIC0gKDEuMjVyZW0gLyAyKSk7XG4kcG9wLXVwLWZvb3Rlci1oZWlnaHQ6ICRsYXJnZS1zcXVhcmUgKiA1O1xuJHBvcC11cC10aXRsZS1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxMztcbiRwb3AtdXAtdGl0bGUtbWFqb3ItaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTQ7XG4vLyBzdHlsZWd1aWRlOmlnbm9yZTplbmRcblxuLypcbiogU3RhdHVzIE5vdGlmaWNhdGlvblxuKi9cbiRocmEtc3RhdHVzLW5vdGlmaWNhdGlvbi13aWR0aDogJHNtYWxsLXNxdWFyZSAqIDgzO1xuJGhyYS1zdGF0dXMtbm90aWZpY2F0aW9uLXRvcDogJHNtYWxsLXNxdWFyZSAqIDE0O1xuJGhyYS1zdGF0dXMtbm90aWZpY2F0aW9uLWJvdHRvbTogJHNtYWxsLXNxdWFyZSAqIDE1O1xuXG5cbi8qXG4gIFJvdW5kIGJ1dHRvbiBzaXplc1xuICovXG4gJHJvdW5kLXNtYWxsOiAkc21hbGwtc3F1YXJlICogNztcbiAkcm91bmQtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogODtcbiAkcm91bmQtbGFyZ2U6ICRzbWFsbC1zcXVhcmUgKiA5O1xuXG4vKlxuICogSW1hZ2UgSWNvbiBTaXplc1xuICovXG5cbiRpbWctaWNvbi1zaXplLXNtYWxsOiAkc21hbGwtc3F1YXJlICogODtcbiRpbWctaWNvbi1zaXplLW1lZGl1bTogJHNtYWxsLXNxdWFyZSAqIDEwO1xuXG5cbiRiZXppZXI6IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG5cblxuLyoqIE1vZGFsIHNpemVzICoqL1xuJG1vZGFsLXRpdGxlLWhlaWdodDogcmVtLWNhbGMoNTIpO1xuJG1vZGFsLWZvb3Rlci1oZWlnaHQ6IHJlbS1jYWxjKDYwKTtcbiIsIkBpbXBvcnQgXCIuLi8uLi9zaGFyZWQvc3R5bGVzL2Jhc2Uvc2V0dGluZ3NcIjtcbjpob3N0IHtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBkaXNwbGF5OiBibG9jaztcbiAucmlnaHQtcGFuZWwgbGF5b3V0e1xuICBwYWRkaW5nLXRvcDogJGxhcmdlLXNxdWFyZSAqIDIhaW1wb3J0YW50O1xuIH1cbn1cblxubGF5b3V0LWZvcm0ge1xuICBwYWRkaW5nLXRvcDogJGxhcmdlLXNxdWFyZSAqIDIhaW1wb3J0YW50O1xufVxuLmxvZ2luLWZvcm0tdGl0bGUge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzApO1xuICBjb2xvcjogaG1hLWNvbG9yKCRncmV5LCA4MCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZy1ib3R0b206ICRsYXJnZS1zcXVhcmUgKiAzO1xufVxuXG4uYnRuLWxvZ2luIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiAjMDAwO1xuICBoZWlnaHQ6IHJlbS1jYWxjKDQyKTtcbiAgYmFja2dyb3VuZDogJHRoZW1lLWdyZWVuO1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbn1cblxuLmJ0bi1maXJzdFVzZXIge1xuICBjb2xvcjogIzAwMDtcbiAgaGVpZ2h0OiByZW0tY2FsYyg0Mik7XG4gIGJhY2tncm91bmQ6ICR0aGVtZS1ncmVlbjtcbiAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG59XG5cblxuLmZvcm0tbGluay1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgYSB7XG4gICAgbGluZS1oZWlnaHQ6IDI7XG4gIH1cbiAgLmZvcmdldC1wYXNzIHtcbiAgICBjb2xvcjogaG1hLWNvbG9yKCRncmV5LCA2MCk7XG4gIH1cbiAgLnJlZ2lzdGVyLXVzZXIge1xuICAgIGNvbG9yOiBobWEtY29sb3IoYmxhemUsIDgwKTtcbiAgfVxufVxuIl19 */\"","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { first } from 'rxjs/operators';\nimport { AuthenticationService } from 'src/app/services/authentication.service';\nimport { UserService } from 'src/app/services/user.service';\n\n@Component({\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss']\n})\nexport class LoginComponent implements OnInit {\n loginForm: FormGroup;\n loading = false;\n submitted = false;\n returnUrl: string;\n public loginError = false;\n public errorMessage: string;\n\n constructor(\n private formBuilder: FormBuilder,\n private route: ActivatedRoute,\n private router: Router,\n private authenticationService: AuthenticationService,\n private _userService: UserService\n ) {\n // redirect to home if already logged in\n if (this.authenticationService.currentUserValue) {\n this.router.navigate(['/admin/groups']);\n }\n }\n\n ngOnInit() {\n this.loginForm = this.formBuilder.group({\n username: ['', [Validators.required, Validators.email]],\n password: ['', Validators.required]\n });\n\n // get return url from route parameters or default to '/'\n this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/';\n }\n\n gotoSetPassword() {\n this.router.navigate(['/set-password']);\n }\n\n // convenience getter for easy access to form fields\n get f() { return this.loginForm.controls; }\n\n onSubmit() {\n this.submitted = true;\n\n // stop here if form is invalid\n if (this.loginForm.invalid) {\n return;\n }\n\n this.loginError = false;\n this.loading = true;\n this.authenticationService.login(this.f.username.value, this.f.password.value)\n .pipe(first())\n .subscribe(\n (): void => {\n if (this.authenticationService.isAdmin) {\n this.router.navigate(['/admin/groups']);\n }\n else if (this.authenticationService.isMember) { \n this.router.navigate(['/']);\n }\n else if (this.authenticationService.isAgent) {\n this.router.navigate(['/agents/groups']);\n }\n else {\n this.router.navigate([this.returnUrl]);\n }\n },\n error => {\n if (typeof error.error === 'string') {\n this.errorMessage = error.error;\n } else {\n this.errorMessage = error.statusText;\n }\n\n this.loginError = true;\n this.loading = false;\n });\n }\n}\n","export default \".stepformmanage {\\n padding: 18px !important;\\n background-color: #ffffff !important;\\n box-shadow: 0 0.5px 3px rgb(2, 2, 2, 0.15);\\n position: relative !important;\\n border-radius: 0px !important;\\n}\\n\\nlabel {\\n font-weight: bold;\\n}\\n\\n.modal-header {\\n text-transform: none;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udHJvbHMvbWFuYWdlLXByb2ZpbGUvbWFuYWdlLXByb2ZpbGUuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHdCQUF3QjtFQUN4QixvQ0FBb0M7RUFDcEMsMENBQTBDO0VBQzFDLDZCQUE2QjtFQUM3Qiw2QkFBNkI7QUFDL0I7O0FBRUE7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxvQkFBb0I7QUFDdEIiLCJmaWxlIjoic3JjL2FwcC9jb250cm9scy9tYW5hZ2UtcHJvZmlsZS9tYW5hZ2UtcHJvZmlsZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnN0ZXBmb3JtbWFuYWdlIHtcbiAgcGFkZGluZzogMThweCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMC41cHggM3B4IHJnYigyLCAyLCAyLCAwLjE1KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xufVxuXG5sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ubW9kYWwtaGVhZGVyIHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59Il19 */\"","import { DatePipe } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { first } from 'rxjs/operators';\nimport { MustMatch } from 'src/app/helpers/must-match.validators';\nimport { Member } from 'src/app/models/member';\nimport { AlertifyService } from 'src/app/services/alertify.service';\nimport { AuthenticationService } from 'src/app/services/authentication.service';\nimport { EnrollmentService } from 'src/app/services/enrollment.service';\nimport { MemberService } from 'src/app/services/member.service';\nimport { UserService } from 'src/app/services/user.service';\n\n@Component({\n selector: 'app-manage-profile',\n templateUrl: './manage-profile.component.html',\n styleUrls: ['./manage-profile.component.css']\n})\nexport class ManageProfileComponent implements OnInit {\n //memberId: string;\n memberForm: FormGroup;\n addDependentForm: FormGroup;\n userDetails: any;\n memberData: Member = new Member();\n ipAddress: string;\n loading: boolean;\n submitted: boolean;\n showStartDate: boolean = false;\n startDate: Date;\n minStartDate: string;\n isStartDateValid: boolean = true;\n\n // for user Details\n userForm: FormGroup;\n user: any;\n // for personal details\n minPrimaryAge: string;\n maxPrimaryAge: string;\n isMinPrimaryAgeValid: boolean = true;\n isMaxPrimaryAgeValid: boolean = true;\n city: string = '';\n state: string = '';\n // for dependent\n dependentText: string = '';\n dependentId: number = 0;\n minDependentAge: string;\n maxDependentAge: string;\n minChildAge: string;\n isMinDependentAgeValid: boolean = true;\n isMaxDependentAgeValid: boolean = true;\n noDependent = 'No Dependent Found';\n\n // for insurance\n addInsuranceForm: FormGroup;\n // for claim\n addClaimForm: FormGroup;\n routingMessage: string;\n isValidRoutingNumber: boolean;\n constructor(private _route: ActivatedRoute,\n private _router: Router,\n private _memberService: MemberService,\n private _fb: FormBuilder,\n private _userService: UserService,\n private _enrollmentService: EnrollmentService,\n private _authenticationService: AuthenticationService,\n private _alertify: AlertifyService) {\n // status activate start\n var minSD = new Date();\n minSD.setMonth(minSD.getMonth() - 1);\n var yr = minSD.getFullYear();\n var mn = (minSD.getMonth() + 1) > 9 ? (minSD.getMonth() + 1) : '0' + (minSD.getMonth() + 1);\n var dt = minSD.getDate();\n this.minStartDate = yr + '-' + mn + '-' + (dt < 10 ? '0' + dt : dt);\n //for personal\n var minPA = new Date();\n minPA.setFullYear(minPA.getFullYear() - 100);\n yr = minPA.getFullYear();\n mn = (minPA.getMonth() + 1) > 9 ? (minPA.getMonth() + 1) : '0' + (minPA.getMonth() + 1);\n dt = minPA.getDate();\n this.minPrimaryAge = yr + '-' + mn + '-' + (dt < 10 ? '0' + dt : dt);\n var maxPA = new Date();\n maxPA.setFullYear(maxPA.getFullYear() - 21);\n yr = maxPA.getFullYear();\n mn = (maxPA.getMonth() + 1) > 9 ? (maxPA.getMonth() + 1) : '0' + (maxPA.getMonth() + 1);\n dt = maxPA.getDate();\n this.maxPrimaryAge = yr + '-' + mn + '-' + (dt < 10 ? '0' + dt : dt);\n this.maxDependentAge = yr + '-' + mn + '-' + (dt < 10 ? '0' + dt : dt); // for dependent\n\n var minDA = new Date();\n yr = minDA.getFullYear();\n mn = (minDA.getMonth() + 1) > 9 ? (minDA.getMonth() + 1) : '0' + (minDA.getMonth() + 1);\n dt = minDA.getDate();\n this.minChildAge = yr + '-' + mn + '-' + (dt < 10 ? '0' + dt : dt);\n minDA.setFullYear(minDA.getFullYear() - 100);\n yr = minDA.getFullYear();\n mn = (minDA.getMonth() + 1) > 9 ? (minDA.getMonth() + 1) : '0' + (minDA.getMonth() + 1);\n dt = minDA.getDate();\n this.minDependentAge = yr + '-' + mn + '-' + (dt < 10 ? '0' + dt : dt);\n this.getMemberForm();\n this.getDependentForm();\n this.getInsuranceForm();\n this.getUserForm();\n this.getClaimForm();\n }\n ngOnInit() {\n //this.getUserDetails();\n this.getMemberById();//for member details\n this.getMemberAddress(); // for address \n this.getMemberSignature(); // signature details\n }\n getMemberById() {\n this._memberService.getMemberDetailsByMember().subscribe(member => {\n this.memberData = member;\n this.getMemberDependents(); // for dependents\n });\n }\n getMemberDependents() {\n this._memberService.getMemberDependentsByMember().subscribe((dependents: any) => {\n this.memberData.dependents = dependents;\n }, error => {\n this.loading = false;\n this.memberData.dependents = [];\n });\n }\n getMemberAddress() {\n this._memberService.getMemberAddressByMember().subscribe((address: any) => {\n this.memberData.addressLine1 = address.mailingAddress;\n this.memberData.addressLine2 = address.apartmentNumber;\n this.memberData.city = address.city;\n this.memberData.zipCode = address.zipCode;\n this.memberData.state = address.state;\n });\n }\n\n\n getMemberSignature() {\n this._memberService.getMemberSignatureByMember().subscribe((signature: any) => {\n if (signature) {\n this.memberData.browserName = signature.browserName;\n this.memberData.browserVersion = signature.browserVersion;\n this.ipAddress = signature.ipAddress;\n this.memberData.signatureDateTime = signature.signatureDateTime;\n }\n });\n }\n updateStatus(status: any) {\n this.submitted = true;\n if (status == 1) {\n this.showStartDate = true;\n if (!this.startDate) {\n return;\n }\n this.loading = true;\n const updateMember: any = {\n startDate: this.startDate,\n memberStatus: status\n }\n this._memberService.updateMemberStatus(updateMember).subscribe(res => {\n this.memberData.memberStatus = res.memberStatus;\n this.loading = false;\n this.submitted = false;\n this.showStartDate = false;\n this.startDate = null;\n this._alertify.success(\"Status updated successfully\");\n\n }, error => {\n\n this.loading = false;\n this.submitted = false;\n this._alertify.error(error.error);\n });\n }\n else {\n this.loading = true;\n const updateMember: any = {\n startDate: this.startDate,\n memberStatus: status\n }\n this._memberService.updateMemberStatus(updateMember).subscribe(res => {\n this.memberData.memberStatus = res.memberStatus;\n this.loading = false;\n this.submitted = false;\n this.showStartDate = false;\n this.startDate = null;\n this._alertify.success(\"Status updated successfully\");\n\n }, error => {\n\n this.loading = false;\n this.submitted = false;\n this._alertify.error(error.error);\n });\n }\n\n }\n submitActivation() {\n this.submitted = true;\n if (new Date(this.startDate) > new Date(this.minStartDate)) {\n this.isStartDateValid = true;\n this.updateStatus(1);\n }\n else {\n this.isStartDateValid = false;\n };\n }\n\n onSubmit() { \n this.submitted = true;\n if (!this.isMaxPrimaryAgeValid || !this.isMinPrimaryAgeValid) { \n return;\n }\n this.memberForm.controls.city.setValue(this.city);\n this.memberForm.controls.state.setValue(this.state);\n if (!this.memberForm.valid) { \n return;\n }\n this.loading = true;\n this._memberService.updateMemberPersonalDetailsByMember(this.memberForm.value)\n .pipe(first())\n .subscribe(\n (response) => {\n this.memberData = response;\n this.getMemberDependents();\n this.getMemberAddress();\n this.loading = false;\n this.submitted = false;\n const button = document.getElementById('closeP')!;\n button.click();\n this._alertify.success(\"Personal details updated successfully\");\n },\n (error) => {\n if (error.error instanceof Array) {\n this._alertify.error(error.error);\n error.error.map((err) => this._alertify.error(err.value));\n } else if (typeof error.error === \"string\") {\n this._alertify.error(error.error);\n } else {\n this._alertify.error(error.error);\n }\n this.loading = false;\n }\n );\n }\n\n onUserUpdate() {\n this.submitted = true;\n\n if (!this.userForm.valid) {\n return;\n }\n\n this.loading = true;\n this._memberService.updateUserInfoByMember(this.userForm.value)\n .pipe(first())\n .subscribe(\n (response) => {\n this.loading = false;\n this.submitted = false;\n const button = document.getElementById('closeU')!;\n button.click();\n this._alertify.success(\"User updated successfully\");\n if (this.userDetails.userName != this.userForm.value.userName) {\n this._authenticationService.logout();\n this._router.navigate(['/login']);\n }\n this.getUserDetails();\n },\n (error) => {\n if (error.error instanceof Array) {\n this._alertify.error(error.error);\n error.error.map((err) => this._alertify.error(err.value));\n } else if (typeof error.error === \"string\") {\n this._alertify.error(error.error);\n } else {\n this._alertify.error(error.error);\n }\n this.loading = false;\n }\n );\n }\n showAllMembers() {\n this._router.navigate([`/admin/members`]);\n }\n getUserForm() {\n this.userForm = this._fb.group({\n userName: [\"\", Validators.email],\n email: [\"\", [Validators.required, Validators.email]],\n phoneNumber: [\"\", Validators.required]\n });\n }\n get u() {\n return this.userForm.controls;\n }\n setUserForm() {\n this.u.userName.setValue(this.userDetails.userName);\n this.u.phoneNumber.setValue(this.userDetails.phoneNumber);\n this.u.email.setValue(this.userDetails.email);\n }\n\n getMemberForm() {\n this.memberForm = this._fb.group({\n id: [\"\"],\n firstName: [\"\", Validators.required],\n lastName: [\"\", Validators.required],\n addressLine1: [\"\", Validators.required],\n addressLine2: [\"\"],\n middleName: [\"\"],\n zipCode: [\"\", Validators.required],\n mobile: [\"\", Validators.required],\n secondaryMobile: [\"\"],\n email: [\"\", [Validators.required, Validators.email]],\n dob: [\"\", Validators.required],\n gender: [\"\", Validators.required],\n maritalStatus: [\"\", Validators.required],\n city: [\"\"],\n state: [\"\"]\n });\n }\n get f() {\n return this.memberForm.controls;\n }\n dobValidatePrimary() {\n const minDate = new Date();\n minDate.setFullYear(minDate.getFullYear() - 100);\n const maxDate = new Date();\n maxDate.setFullYear(maxDate.getFullYear() - 21);\n const dob = new Date(this.memberForm.controls.dob.value);\n if (dob < minDate) {\n this.isMaxPrimaryAgeValid = false;\n }\n else {\n this.isMaxPrimaryAgeValid = true;\n }\n\n if (dob > maxDate) {\n this.isMinPrimaryAgeValid = false;\n }\n else {\n this.isMinPrimaryAgeValid = true;\n }\n }\n setMemberForm() {\n this.f.id.setValue(this.memberData.id);\n this.f.firstName.setValue(this.memberData.firstName);\n this.f.lastName.setValue(this.memberData.lastName);\n this.f.addressLine1.setValue(this.memberData.addressLine1);\n this.f.addressLine2.setValue(this.memberData.addressLine2);\n this.f.middleName.setValue(this.memberData.middleName);\n this.f.zipCode.setValue(this.memberData.zipCode);\n this.f.mobile.setValue(this.memberData.mobile);\n this.f.secondaryMobile.setValue(this.memberData.secondaryMobile);\n this.f.email.setValue(this.memberData.email);\n this.f.dob.setValue(this.memberData.dob == null ? '' : this.memberData.dob.toString().substr(0, 10));\n //this.dobValidatePrimary();\n if (this.memberData.gender != 'NotSpecified') {\n this.f.gender.setValue(this.memberData.gender);\n }\n if (this.memberData.maritalStatus != null && this.memberData.maritalStatus != 'Yes') {\n this.f.maritalStatus.setValue(this.memberData.maritalStatus);\n }\n this.f.city.setValue(this.memberData.city);\n this.f.state.setValue(this.memberData.state);\n }\n\n handleOnChange(event: any) {\n if (event.target.value.length >= 5) {\n let xml: string = '' + event.target.value + '';\n this._memberService.getCityStateByZip(xml).subscribe((res) => {\n if (res) {\n this.city = res.zipCode.city;\n this.state = res.zipCode.state;\n this.f.city.setValue(this.city);\n this.f.state.setValue(this.state);\n }\n });\n }\n }\n getDependentForm() {\n this.addDependentForm = this._fb.group({\n type: [\"\", Validators.required],\n firstName: [\"\", Validators.required],\n middleName: [\"\"],\n lastName: [\"\", Validators.required],\n dob: [\"\", Validators.required],\n gender: [\"\", Validators.required],\n });\n }\n\n get d() {\n return this.addDependentForm.controls;\n }\n\n dobValidate() {\n const minDate = new Date();\n const minAge = this.addDependentForm.controls.type.value == 'Child' ? 21 : 100\n minDate.setFullYear(minDate.getFullYear() - minAge);\n const maxDate = new Date();\n const maxAge = this.addDependentForm.controls.type.value == 'Child' ? 0 : 21\n maxDate.setFullYear(maxDate.getFullYear() - maxAge);\n const dob = new Date(this.addDependentForm.controls.dob.value);\n if (dob < minDate) {\n this.isMaxDependentAgeValid = false;\n }\n else {\n this.isMaxDependentAgeValid = true;\n }\n\n if (dob > maxDate) {\n this.isMinDependentAgeValid = false;\n }\n else {\n this.isMinDependentAgeValid = true;\n }\n }\n\n updateAgeValidation() {\n if (this.addDependentForm.controls.type.value == 'Spouse') {\n var minPA = new Date();\n minPA.setFullYear(minPA.getFullYear() - 100);\n var yr = minPA.getFullYear();\n var mn = (minPA.getMonth() + 1) > 9 ? (minPA.getMonth() + 1) : '0' + (minPA.getMonth() + 1);\n var dt = minPA.getDate();\n this.minDependentAge = yr + '-' + mn + '-' + (dt < 10 ? '0' + dt : dt);\n var maxPA = new Date();\n maxPA.setFullYear(maxPA.getFullYear() - 21);\n yr = maxPA.getFullYear();\n mn = (maxPA.getMonth() + 1) > 9 ? (maxPA.getMonth() + 1) : '0' + (maxPA.getMonth() + 1);\n dt = maxPA.getDate();\n this.maxDependentAge = yr + '-' + mn + '-' + (dt < 10 ? '0' + dt : dt);\n }\n else if (this.addDependentForm.controls.type.value == 'Child') {\n var maxPA = new Date();\n maxPA.setFullYear(maxPA.getFullYear() - 21);\n yr = maxPA.getFullYear();\n mn = (maxPA.getMonth() + 1) > 9 ? (maxPA.getMonth() + 1) : '0' + (maxPA.getMonth() + 1);\n dt = maxPA.getDate();\n this.minDependentAge = yr + '-' + mn + '-' + (dt < 10 ? '0' + dt : dt);\n this.maxDependentAge = this.minChildAge;\n }\n }\n editDependent(dependent: any) {\n if (dependent == null) {\n this.dependentId = 0;\n this.dependentText = \"Add\";\n this.getDependentForm();\n }\n else {\n this.dependentText = \"Update\";\n this.setDependentForm(dependent);\n }\n }\n removeDependent(dependent: any, index: number) {\n this._memberService.deleteDependentByMember(dependent.dependentId).subscribe(res => {\n this.loading = false;\n this.submitted = false;\n this.getMemberDependents();\n this._alertify.success(\"Dependent removed successfully\");\n }, error => {\n if (error.error instanceof Array) {\n error.error.map((err) => this._alertify.error(err.value));\n } else if (typeof error.error === \"string\") {\n this._alertify.error(error.error);\n } else {\n this._alertify.error(error.error);\n }\n this.loading = false;\n })\n }\n setDependentForm(dependent: any) {\n this.dependentId = dependent.dependentId;\n this.d.firstName.setValue(dependent.firstName);\n this.d.lastName.setValue(dependent.lastName);\n this.d.type.setValue(dependent.type);\n this.d.middleName.setValue(dependent.middleName);\n this.d.dob.setValue(dependent.dob.toString().substr(0, 10));\n this.dobValidate();\n this.d.gender.setValue(dependent.gender);\n }\n\n onDependentSubmit() {\n this.submitted = true;\n if (!this.isMaxDependentAgeValid || !this.isMinDependentAgeValid) {\n return;\n }\n if (this.addDependentForm.valid) {\n if (this.dependentId == 0) {\n if (this.addDependentForm.controls.type.value == 'Spouse' && this.memberData.dependents != undefined && this.memberData.dependents.filter(x => x.type.toLowerCase() == 'spouse').length > 0) {\n this._alertify.error(\"You have already added Spouse\");\n }\n else {\n const member: any = {\n dependents: []\n };\n this._memberService.addEditDependentByMember(this.dependentId, member, this.addDependentForm.value).subscribe(res => {\n this.loading = false;\n this.submitted = false;\n this._alertify.success(\"Dependent added successfully\");\n this.getMemberDependents();\n this.getDependentForm();\n const button = document.getElementById('closeD')!;\n button.click();\n }, error => {\n if (error.error instanceof Array) {\n error.error.map((err) => this._alertify.error(err.value));\n } else if (typeof error.error === \"string\") {\n this._alertify.error(error.error);\n } else {\n this._alertify.error(error.error);\n }\n this.loading = false;\n })\n }\n }\n else {\n const spouse = this.memberData.dependents.filter(x => x.type.toLowerCase() == 'spouse');\n if (spouse.length > 0) {\n if (this.addDependentForm.controls.type.value == 'Spouse' && spouse[0].dependentId != this.dependentId) {\n this._alertify.error(\"You have already added Spouse\");\n }\n else {\n const member: any = {\n dependents: []\n };\n this._memberService.addEditDependentByMember(this.dependentId, member, this.addDependentForm.value).subscribe(res => {\n this.loading = false;\n this.submitted = false;\n this.getMemberDependents();\n this.getDependentForm();\n this._alertify.success(\"Dependent updated successfully\");\n const button = document.getElementById('closeD')!;\n button.click();\n }, error => {\n if (error.error instanceof Array) {\n error.error.map((err) => this._alertify.error(err.value));\n } else if (typeof error.error === \"string\") {\n this._alertify.error(error.error);\n } else {\n this._alertify.error(error.error);\n }\n this.loading = false;\n })\n }\n }\n else {\n const member: any = {\n dependents: []\n };\n this._memberService.addEditDependentByMember(this.dependentId, member, this.addDependentForm.value).subscribe(res => {\n this.loading = false;\n this.submitted = false;\n this.getMemberDependents();\n this._alertify.success(\"Dependent updated successfully\");\n const button = document.getElementById('closeD')!;\n button.click();\n }, error => {\n if (error.error instanceof Array) {\n error.error.map((err) => this._alertify.error(err.value));\n } else if (typeof error.error === \"string\") {\n this._alertify.error(error.error);\n } else {\n this._alertify.error(error.error);\n }\n this.loading = false;\n })\n }\n }\n\n }\n }\n\n getInsuranceForm() {\n this.addInsuranceForm = this._fb.group({\n hasInsurance: [\"1\", Validators.required],\n healthInsuranceCompanyName: [\"\", Validators.required],\n insurancePolicyNo: [\"\", Validators.required],\n insuranceEffectiveDate: [\"\", Validators.required],\n insuranceEndDate: [\"\", Validators.required],\n insuranceAddress: [\"\", Validators.required]\n });\n }\n\n get i() {\n return this.addInsuranceForm.controls;\n }\n\n setInsuranceForm() {\n this.i.hasInsurance.setValue(this.memberData.insurancePolicyNo == null || this.memberData.insurancePolicyNo == '' ? \"2\" : \"1\");\n this.i.healthInsuranceCompanyName.setValue(this.memberData.healthInsuranceCompanyName);\n this.i.insurancePolicyNo.setValue(this.memberData.insurancePolicyNo);\n this.i.insuranceEffectiveDate.setValue(this.memberData.insuranceEffectiveDate == null || this.memberData.insuranceEffectiveDate == '' ? '' : this.memberData.insuranceEffectiveDate.substr(0, 10));\n this.i.insuranceEndDate.setValue(this.memberData.insuranceEndDate == null || this.memberData.insuranceEndDate == '' ? '' : this.memberData.insuranceEndDate.substr(0, 10));\n this.i.insuranceAddress.setValue(this.memberData.insuranceAddress);\n }\n\n onInsuranceSubmit() {\n if (this.addInsuranceForm.controls.hasInsurance.value == 1) {\n this.addInsuranceForm.get('healthInsuranceCompanyName').setValidators([Validators.required]);\n this.addInsuranceForm.get('healthInsuranceCompanyName').updateValueAndValidity();\n this.addInsuranceForm.get('insurancePolicyNo').setValidators([Validators.required]);\n this.addInsuranceForm.get('insurancePolicyNo').updateValueAndValidity();\n this.addInsuranceForm.get('insuranceAddress').setValidators([Validators.required]);\n this.addInsuranceForm.get('insuranceAddress').updateValueAndValidity();\n this.addInsuranceForm.get('insuranceEffectiveDate').setValidators([Validators.required]);\n this.addInsuranceForm.get('insuranceEffectiveDate').updateValueAndValidity();\n this.addInsuranceForm.get('insuranceEndDate').setValidators([Validators.required]);\n this.addInsuranceForm.get('insuranceEndDate').updateValueAndValidity();\n } else {\n this.addInsuranceForm.get('healthInsuranceCompanyName').clearValidators();\n this.addInsuranceForm.get('healthInsuranceCompanyName').updateValueAndValidity();\n this.addInsuranceForm.get('insurancePolicyNo').clearValidators();\n this.addInsuranceForm.get('insurancePolicyNo').updateValueAndValidity();\n this.addInsuranceForm.get('insuranceAddress').clearValidators();\n this.addInsuranceForm.get('insuranceAddress').updateValueAndValidity();\n this.addInsuranceForm.get('insuranceEffectiveDate').clearValidators();\n this.addInsuranceForm.get('insuranceEffectiveDate').updateValueAndValidity();\n this.addInsuranceForm.get('insuranceEndDate').clearValidators();\n this.addInsuranceForm.get('insuranceEndDate').updateValueAndValidity();\n this.addInsuranceForm.controls.healthInsuranceCompanyName.setValue('');\n this.addInsuranceForm.controls.insurancePolicyNo.setValue('');\n this.addInsuranceForm.controls.insuranceAddress.setValue('');\n this.addInsuranceForm.controls.insuranceEffectiveDate.setValue(null);\n this.addInsuranceForm.controls.insuranceEndDate.setValue(null);\n }\n\n this.submitted = true;\n if (this.addInsuranceForm.invalid) {\n return;\n }\n this._memberService.updateMemberInsuranceByMember(this.addInsuranceForm.value).subscribe(res => {\n this.loading = false;\n this.submitted = false;\n this.getMemberById();\n this._alertify.success(\"Insurance updated successfully\");\n const button = document.getElementById('closeI')!;\n button.click();\n }, error => {\n if (error.error instanceof Array) {\n error.error.map((err) => this._alertify.error(err.value));\n } else if (typeof error.error === \"string\") {\n this._alertify.error(error.error);\n } else {\n this._alertify.error(error.error);\n }\n this.loading = false;\n })\n }\n getUserDetails() {\n this._userService.getUserDetails().subscribe(res => {\n this.userDetails = res;\n })\n }\n changePassword() {\n this._router.navigate(['/change-password']);\n }\n\n getAddressFromRoutingNumber() {\n var _this = this;\n this._enrollmentService.validateRoutingNumber(this.addClaimForm.value.routingNumber)\n .pipe(first())\n .subscribe(\n (res: any) => {\n _this.routingMessage = res.message;\n _this.isValidRoutingNumber = true;\n },\n (error) => {\n _this.isValidRoutingNumber = false;\n _this.routingMessage = error.error.message;\n }\n );\n }\n getClaimForm() {\n this.addClaimForm = this._fb.group({\n hasClaim: [\"1\", Validators.required],\n accountNumber: [\"\", Validators.required],\n confirmAccountNumber: [\"\", Validators.required],\n routingNumber: [\"\", Validators.required],\n // accountType: [\"\", Validators.required]\n },\n {\n validator: MustMatch('accountNumber', 'confirmAccountNumber'),\n });\n }\n get c() {\n return this.addClaimForm.controls;\n }\n setClaimForm() {\n this.c.accountNumber.setValue(this.memberData.accountNumber);\n this.c.confirmAccountNumber.setValue(this.memberData.accountNumber);\n this.c.routingNumber.setValue(this.memberData.routingNumber);\n //this.c.accountType.setValue(this.memberData.accountType);\n }\n onClaimSubmit() {\n if (this.addClaimForm.controls.hasClaim.value == 1) {\n this.addClaimForm.get('accountNumber').setValidators([Validators.required]);\n this.addClaimForm.get('accountNumber').updateValueAndValidity();\n this.addClaimForm.get('confirmAccountNumber').setValidators([Validators.required]);\n this.addClaimForm.get('confirmAccountNumber').updateValueAndValidity();\n this.addClaimForm.get('routingNumber').setValidators([Validators.required]);\n this.addClaimForm.get('routingNumber').updateValueAndValidity();\n if (!this.isValidRoutingNumber) {\n return;\n }\n this.loading = true;\n } else {\n this.addClaimForm.get('accountNumber').clearValidators();\n this.addClaimForm.get('accountNumber').updateValueAndValidity();\n this.addClaimForm.get('confirmAccountNumber').clearValidators();\n this.addClaimForm.get('confirmAccountNumber').updateValueAndValidity();\n this.addClaimForm.get('routingNumber').clearValidators();\n this.addClaimForm.get('routingNumber').updateValueAndValidity();\n this.addClaimForm.controls.accountNumber.setValue('');\n this.addClaimForm.controls.confirmAccountNumber.setValue('');\n this.addClaimForm.controls.routingNumber.setValue('');\n this.loading = true;\n }\n this.submitted = true;\n if (this.addClaimForm.invalid) {\n return;\n }\n\n this._memberService.updateMemberClaimByMember(this.addClaimForm.value).subscribe(res => {\n this.loading = false;\n this.submitted = false;\n this.getMemberById();\n this._alertify.success(\"Claim updated successfully\");\n const button = document.getElementById('closeC')!;\n button.click();\n }, error => {\n if (error.error instanceof Array) {\n error.error.map((err) => this._alertify.error(err.value));\n } else if (typeof error.error === \"string\") {\n this._alertify.error(error.error);\n } else {\n this._alertify.error(error.error);\n }\n this.loading = false;\n });\n }\n}\n","export default \"\\n \\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbnRyb2xzL3BvcC11cC9wb3B1cC9wb3B1cC5jb21wb25lbnQuY3NzIn0= */\"","import { Component, Inject} from '@angular/core';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-popup',\n templateUrl: './popup.component.html',\n styleUrls: ['./popup.component.css']\n})\nexport class PopupComponent {\n constructor(@Inject(MAT_DIALOG_DATA) public message: string) {}\n}\n","export default \"/*\\nHigh DPI screens (retina macbooks, highresolution laptops, etc)\\n*/\\n/* Firefox specific styles go here */\\n/*\\nCOMMON COLOR NAMES\\n\\nThese colors are mapped to the names from the official colors.\\nInstead of having names like `crush` or `blaze`, developers will use their common, non-marketized name.\\neg. $red: crush\\n $orange: blaze\\n\\nThen, use the `hra-color` function to get the color\\neg. color: hra-color($red)\\n*/\\n/* **** */\\n/* * Charts Colors */\\n/* info text background */\\n/* Use following classes for aesthetics only - New UI KIT */\\n/* Color Mapping*/\\n/*ends*/\\n/* Used for grids and margins */\\n/*\\n font sizes\\n */\\n/*\\n * Header size\\n */\\n/*\\n * Device Group settings\\n */\\n/*\\n * Border settings\\n */\\n/*\\n * Shadows go by level\\n */\\n/*\\n * Padding settings\\n */\\n/*\\n * Inputs\\n */\\n/*\\n * ToolTips\\n */\\n/*\\n * Action bar sizes\\n */\\n/**\\n* Device grid sizes\\n*/\\n/*\\n * Focus border\\n */\\n/*\\n * Border\\n */\\n/*\\n * Pop-up\\n*/\\n/*\\n* Status Notification\\n*/\\n/*\\n Round button sizes\\n */\\n/*\\n * Image Icon Sizes\\n */\\n/** Modal sizes **/\\n:host {\\n height: 100vh;\\n width: 100vw;\\n display: block; }\\n:host #logo-container {\\n padding: 0; }\\n.login-form-title {\\n width: 100%;\\n display: block;\\n font-size: 1.875rem;\\n color: hma-color(grey, 80);\\n line-height: 1.2;\\n text-align: center; }\\n.btn-login {\\n width: 100%;\\n color: #000;\\n height: 2.625rem;\\n background: #dfd269;\\n font-size: 1.125rem; }\\n.form-link-actions {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-end;\\n font-size: 0.875rem; }\\n.form-link-actions a {\\n line-height: 2; }\\n.form-link-actions .forget-pass {\\n color: hma-color(grey, 60); }\\n.form-link-actions .register-user {\\n color: hma-color(blaze, 80); }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21lZGlhcXVlcmllcy5zY3NzIiwic3JjL2FwcC9jb250cm9scy9yZWdpc3Rlci9yZWdpc3Rlci5jb21wb25lbnQuc2NzcyIsIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21peGlucy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9zdHlsZXMvYmFzZS9fY29sb3JzLnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvc2hhcmVkL3N0eWxlcy9iYXNlL19zZXR0aW5ncy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL2NvbnRyb2xzL3JlZ2lzdGVyL3JlZ2lzdGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThCQTs7Q0M1QkM7QUMwS0Qsb0NBQUE7QUM1S0E7Ozs7Ozs7Ozs7Q0ZjQztBRStERCxTQUFBO0FBVUEsb0JBQUE7QUFLQSx5QkFBQTtBQUlBLDJEQUFBO0FBRUEsaUJBQUE7QUFvQkEsT0FBQTtBQ25IQSwrQkFBQTtBQWlCQTs7RUhJRTtBR21CRjs7RUhoQkU7QUc4QkY7O0VIM0JFO0FHeUNGOztFSHRDRTtBRytDRjs7RUg1Q0U7QUdrRUY7O0VIL0RFO0FHaUZGOztFSDlFRTtBR29GRjs7RUhqRkU7QUc0RkY7O0VIekZFO0FHZ0dGOztDSDdGQztBR3FHRDs7RUhsR0U7QUd3R0Y7O0VIckdFO0FHOEdGOztDSDNHQztBR3FIRDs7Q0hsSEM7QUcwSEQ7O0VIdkhFO0FHOEhGOztFSDNIRTtBR3NJRixrQkFBQTtBQzFNQTtFQUNFLGFBQWE7RUFDYixZQUFZO0VBQ1osY0FBYyxFQUFBO0FBSGhCO0lBS0ksVUFBVSxFQUFBO0FBSWQ7RUFDRSxXQUFXO0VBQ1gsY0FBYztFQUNkLG1CSDJEdUQ7RUcxRHZELDBCQUEyQjtFQUMzQixnQkFBZ0I7RUFDaEIsa0JBQWtCLEVBQUE7QUFHcEI7RUFDRSxXQUFXO0VBQ1gsV0FBVztFQUNYLGdCSGtEdUQ7RUdqRHZELG1CRlhtQjtFRVluQixtQkhnRHVELEVBQUE7QUc3Q3pEO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixxQkFBcUI7RUFDckIsbUJIeUN1RCxFQUFBO0FHN0N6RDtJQU1JLGNBQWMsRUFBQTtBQU5sQjtJQVNJLDBCQUEyQixFQUFBO0FBVC9CO0lBWUksMkJBQTJCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb250cm9scy9yZWdpc3Rlci9yZWdpc3Rlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vICBBdXRob3I6IFJhZmFsIEJyb21pcnNraVxuLy8gIHd3dzogaHR0cDovL3JhZmFsYnJvbWlyc2tpLmNvbS9cbi8vICBnaXRodWI6IGh0dHA6Ly9naXRodWIuY29tL3BhcmFub2lkYS9zYXNzLW1lZGlhcXVlcmllc1xuLy9cbi8vICBMaWNlbnNlZCB1bmRlciBhIE1JVCBMaWNlbnNlXG4vL1xuLy8gIFZlcnNpb246XG4vLyAgMS42LjFcbi8vIC0tLSBnZW5lcmF0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gbXEoJGFyZ3MuLi4pIHtcbiAgJG1lZGlhLXR5cGU6ICdvbmx5IHNjcmVlbic7XG4gICRtZWRpYS10eXBlLWtleTogJ21lZGlhLXR5cGUnO1xuICAkYXJnczoga2V5d29yZHMoJGFyZ3MpO1xuICAkZXhwcjogJyc7XG4gIEBpZiBtYXAtaGFzLWtleSgkYXJncywgJG1lZGlhLXR5cGUta2V5KSB7XG4gICAgJG1lZGlhLXR5cGU6IG1hcC1nZXQoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gICAgJGFyZ3M6IG1hcC1yZW1vdmUoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gIH1cbiAgQGVhY2ggJGtleSxcbiAgJHZhbHVlIGluICRhcmdzIHtcbiAgICBAaWYgJHZhbHVlIHtcbiAgICAgICRleHByOiBcIiN7JGV4cHJ9IGFuZCAoI3ska2V5fTogI3skdmFsdWV9KVwiO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgI3skbWVkaWEtdHlwZX0gI3skZXhwcn0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cblxuLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cblxuQG1peGluIGhkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAje3JvdW5kKCRyYXRpbyo5Nil9ZHBpKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gJG9yaWVudGF0aW9uOiBsYW5kc2NhcGUgfCBwb3J0cmFpdFxuQG1peGluIHRhYmxldCgkb3JpZW50YXRpb246IGZhbHNlKSB7XG4gICRtaW46IDI2OHB4O1xuICAkbWF4OiAxMDI0cHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4LCAkb3JpZW50YXRpb246ICRvcmllbnRhdGlvbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIHNtYWxsIGRlc2t0b3AgLSAxMDI1IDwtPiAxMjgwXG5AbWl4aW4gc21hbGwtZGVza3RvcCgpIHtcbiAgJG1pbjogMTAyNXB4O1xuICAkbWF4OiAxMjgwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gbWVkaXVtIGRlc2t0b3AgLSAxMjgxIDwtPiAxNDQwXG5AbWl4aW4gbWVkaXVtLWRlc2t0b3AoKSB7XG4gICRtaW46IDEyODFweDtcbiAgJG1heDogMTQ0MHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIGxhcmdlIGRlc2t0b3AgLSAxNDQxIDwtPiAxNjAwXG5AbWl4aW4gbGFyZ2UtZGVza3RvcCgpIHtcbiAgJG1pbjogMTQ0MXB4O1xuICAkbWF4OiAxNjAwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8geGxhcmdlIGRlc2t0b3AgLSAxNjAxIC0+IGluZmluaXR5XG5AbWl4aW4geGxhcmdlLWRlc2t0b3AoKSB7XG4gICRtaW46IDE2MDFweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBkZXNrdG9wIG92ZXJsYXlcbkBtaXhpbiBkZXNrdG9wLW92ZXJsYXkoKSB7XG4gICAgJG1pbjogMjY4cHg7XG4gICAgJG1heDogOTI2cHg7XG4gICAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cbi8qIEZpcmVmb3ggc3BlY2lmaWMgc3R5bGVzIGdvIGhlcmUgKi9cbi8qXG5DT01NT04gQ09MT1IgTkFNRVNcblxuVGhlc2UgY29sb3JzIGFyZSBtYXBwZWQgdG8gdGhlIG5hbWVzIGZyb20gdGhlIG9mZmljaWFsIGNvbG9ycy5cbkluc3RlYWQgb2YgaGF2aW5nIG5hbWVzIGxpa2UgYGNydXNoYCBvciBgYmxhemVgLCBkZXZlbG9wZXJzIHdpbGwgdXNlIHRoZWlyIGNvbW1vbiwgbm9uLW1hcmtldGl6ZWQgbmFtZS5cbmVnLiAkcmVkOiBjcnVzaFxuICAgICRvcmFuZ2U6IGJsYXplXG5cblRoZW4sIHVzZSB0aGUgYGhyYS1jb2xvcmAgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb2xvclxuZWcuIGNvbG9yOiBocmEtY29sb3IoJHJlZClcbiovXG4vKiAqKioqICovXG4vKiAqIENoYXJ0cyBDb2xvcnMgKi9cbi8qIGluZm8gdGV4dCBiYWNrZ3JvdW5kICovXG4vKiBVc2UgZm9sbG93aW5nIGNsYXNzZXMgZm9yIGFlc3RoZXRpY3Mgb25seSAtIE5ldyBVSSBLSVQgKi9cbi8qIENvbG9yIE1hcHBpbmcqL1xuLyplbmRzKi9cbi8qIFVzZWQgZm9yIGdyaWRzIGFuZCBtYXJnaW5zICovXG4vKlxuICBmb250IHNpemVzXG4gKi9cbi8qXG4gKiBIZWFkZXIgc2l6ZVxuICovXG4vKlxuICogRGV2aWNlIEdyb3VwIHNldHRpbmdzXG4gKi9cbi8qXG4gKiBCb3JkZXIgc2V0dGluZ3NcbiAqL1xuLypcbiAqIFNoYWRvd3MgZ28gYnkgbGV2ZWxcbiAqL1xuLypcbiAqIFBhZGRpbmcgc2V0dGluZ3NcbiAqL1xuLypcbiAqIElucHV0c1xuICovXG4vKlxuICogVG9vbFRpcHNcbiAqL1xuLypcbiAqIEFjdGlvbiBiYXIgc2l6ZXNcbiAqL1xuLyoqXG4qICBEZXZpY2UgZ3JpZCBzaXplc1xuKi9cbi8qXG4gKiBGb2N1cyBib3JkZXJcbiAqL1xuLypcbiAqIEJvcmRlclxuICovXG4vKlxuICogUG9wLXVwXG4qL1xuLypcbiogU3RhdHVzIE5vdGlmaWNhdGlvblxuKi9cbi8qXG4gIFJvdW5kIGJ1dHRvbiBzaXplc1xuICovXG4vKlxuICogSW1hZ2UgSWNvbiBTaXplc1xuICovXG4vKiogTW9kYWwgc2l6ZXMgKiovXG46aG9zdCB7XG4gIGhlaWdodDogMTAwdmg7XG4gIHdpZHRoOiAxMDB2dztcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgOmhvc3QgI2xvZ28tY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwOyB9XG5cbi5sb2dpbi1mb3JtLXRpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEuODc1cmVtO1xuICBjb2xvcjogaG1hLWNvbG9yKGdyZXksIDgwKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5idG4tbG9naW4ge1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6ICMwMDA7XG4gIGhlaWdodDogMi42MjVyZW07XG4gIGJhY2tncm91bmQ6ICNkZmQyNjk7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07IH1cblxuLmZvcm0tbGluay1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG4gIC5mb3JtLWxpbmstYWN0aW9ucyBhIHtcbiAgICBsaW5lLWhlaWdodDogMjsgfVxuICAuZm9ybS1saW5rLWFjdGlvbnMgLmZvcmdldC1wYXNzIHtcbiAgICBjb2xvcjogaG1hLWNvbG9yKGdyZXksIDYwKTsgfVxuICAuZm9ybS1saW5rLWFjdGlvbnMgLnJlZ2lzdGVyLXVzZXIge1xuICAgIGNvbG9yOiBobWEtY29sb3IoYmxhemUsIDgwKTsgfVxuIiwiQGltcG9ydCAnLi9tZWRpYXF1ZXJpZXMnO1xuXG4vLy8gLyBzdHlsZWd1aWRlOmlnbm9yZTpzdGFydFxuLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZT09bnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKT09JyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG4gIEBpZiAkY291bnQ9PTEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY291bnQge1xuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcbiAgfVxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKT09J3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG4gIC8vIFRoZW4gdGhlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBlbXNcbiAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxZW07XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsIHZhbHVlIHRvIG1hdGNoaW5nIHJlbSB2YWx1ZS4gKkFueSogdmFsdWUgcGFzc2VkLCByZWdhcmRsZXNzIG9mIHVuaXQsIGlzIGFzc3VtZWQgdG8gYmUgYSBwaXhlbCB2YWx1ZS4gQnkgZGVmYXVsdCwgdGhlIGJhc2UgcGl4ZWwgdmFsdWUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHJlbSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciBpbiByZW1zLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGhlIGJhc2UgcGl4ZWwgdmFsdWUuIHJlbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLlxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSAhPSdudW1iZXInIHtcbiAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkrJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0ncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XG4gIH1cbiAgLy8gVHVybiAwcmVtIGludG8gMFxuICBAaWYgJHZhbHVlPT0wcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vLyBBbmltYXRpb24ga2V5ZnJhbWVzIGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRhbmltYXRpb24tbmFtZSAtIE5hbWUgb2YgdGhlIGFuaW1hdGlvbi5cbkBtaXhpbiBrZXlmcmFtZXMoJGFuaW1hdGlvbi1uYW1lKSB7XG4gIEAtd2Via2l0LWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtbW96LWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtbXMta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1vLWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBrZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gQW5pbWF0aW9uIGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHIgLSBjc3MzIGFuaW1hdGlvbiBzcGVjLlxuQG1peGluIGFuaW1hdGlvbigkc3RyKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtbW96LWFuaW1hdGlvbjogI3skc3RyfTtcbiAgLW1zLWFuaW1hdGlvbjogI3skc3RyfTtcbiAgLW8tYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICBhbmltYXRpb246ICN7JHN0cn07XG59XG5cbi8vLyBCb3ggc2hhZG93IGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHIgLSBjc3MzIGJveC1zaGFkb3cgc3BlYy5cbkBtaXhpbiBib3gtc2hhZG93KCRzdHIpIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAjeyRzdHJ9O1xuICAtbW96LWJveC1zaGFkb3c6ICN7JHN0cn07XG4gIC1vLWJveC1zaGFkb3c6ICN7JHN0cn07XG4gIGJveC1zaGFkb3c6ICN7JHN0cn07XG59XG5cbi8vLyBncmFkaWVudCBhdXRvcHJlZml4ZXJcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIGdyYWRpZW50KCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgYmFja2dyb3VuZDogI3skY29sb3IxfTtcbiAgLyogRm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgZ3JhZGllbnRzICovXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBGb3IgU2FmYXJpIDUuMSB0byA2LjAgKi9cbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBGb3IgT3BlcmEgMTEuMSB0byAxMi4wICovXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBGb3IgRmlyZWZveCAzLjYgdG8gMTUgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBTdGFuZGFyZCBzeW50YXggKi9cbn1cblxuQG1peGluIHZlcnRpY2FsLWdyYWRpZW50LWRpdmlkZXIoKXtcbiAgd2lkdGg6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAxcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIGhyYS1jb2xvcigkZ3JleSwgMjApLCAkd2hpdGUpO1xufVxuXG5cbi8vLyBJRSBvbmx5IHF1ZXJ5XG5AbWl4aW4gaWUtb25seSgpIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcbiAgICAvKiBJRTEwKyBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuQG1peGluIGNyZWF0ZS1hbmltYXRpb24oJGFuaS1uYW1lKSB7XG4gIGFuaW1hdGlvbjogJGFuaS1uYW1lIGZvcndhcmRzIDMwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG5cbkBtaXhpbiBjcmVhdGUtdHJhbnNpdGlvbigkcHJvcGVydHktbmFtZSkge1xuICB0cmFuc2l0aW9uOiAkcHJvcGVydHktbmFtZSAzMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuLy8vIEVkZ2Ugb25seSBxdWVyeVxuQG1peGluIGVkZ2Utb25seSgpIHtcbiAgQHN1cHBvcnRzICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgLyogRWRnZSBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuLyogRmlyZWZveCBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuQG1peGluIGZpcmVmb3gtb25seSgpIHtcbiAgQHN1cHBvcnRzICgtbW96LWFwcGVhcmFuY2U6bm9uZSkge1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuXG4vLyBzdHlsZWd1aWRlOmlnbm9yZTplbmQiLCIvKlxuQ09NTU9OIENPTE9SIE5BTUVTXG5cblRoZXNlIGNvbG9ycyBhcmUgbWFwcGVkIHRvIHRoZSBuYW1lcyBmcm9tIHRoZSBvZmZpY2lhbCBjb2xvcnMuXG5JbnN0ZWFkIG9mIGhhdmluZyBuYW1lcyBsaWtlIGBjcnVzaGAgb3IgYGJsYXplYCwgZGV2ZWxvcGVycyB3aWxsIHVzZSB0aGVpciBjb21tb24sIG5vbi1tYXJrZXRpemVkIG5hbWUuXG5lZy4gJHJlZDogY3J1c2hcbiAgICAkb3JhbmdlOiBibGF6ZVxuXG5UaGVuLCB1c2UgdGhlIGBocmEtY29sb3JgIGZ1bmN0aW9uIHRvIGdldCB0aGUgY29sb3JcbmVnLiBjb2xvcjogaHJhLWNvbG9yKCRyZWQpXG4qL1xuXG4kdGhlbWUtZ3JlZW46ICNkZmQyNjk7XG4kdGhlbWUtY29sb3I6ICR0aGVtZS1ncmVlbjtcbiRibHVlOiBibHVlO1xuJGN5YW46IGN5YW47XG4kZ3JleTogZ3JleTtcbiRyZWQ6IGNydXNoO1xuJG9yYW5nZTogYmxhemU7XG4keWVsbG93OiBzdW5zZXQsIDYwO1xuJGdyZWVuOiBzZWFmb2FtO1xuJGxpZ2h0LWdyZWVuOiBzZWF3ZWVkO1xuJGRhcmstZ3JlZW46IG1hcmluZTtcbiRicm93bjogYnJvd247XG4kcHVycGxlOiBwdXJwbGU7XG4kc3Vuc2V0OiBzdW5zZXQ7XG4kcGluazogcGluaztcblxuJG5ld2dyZXk6IG5ld2dyZXk7XG4kbmV3Ymx1ZTogbmV3Ymx1ZTtcbiRuZXdjeWFuOiBuZXdjeWFuO1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gaG1hJ3MgQ29sb3VyIFBhbGV0dGVcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiRjb2xvcnM6IChcbiAgICBibHVlOiAoNTogI2YzZmJmZSwgMTA6ICNlMmY0ZmIsIDIwOiAjYmFlNWY1LCA0MDogIzcxYzhmMSwgNjA6ICMzMmI2ZTksIDgwOiAjMDA5OWQzLCAxMDA6ICMwMDc0YWEsIDEyMDogIzA2NGM3YyksXG4gICAgY3J1c2g6ICg1OiAjZmZmN2Y2LCAxMDogI2ZlZjBlZCwgMjA6ICNmZGRmZGMsIDQwOiAjZmFjMWJhLCA2MDogI2Y0ODI3MiwgODA6ICNmMTYxNGYsIDEwMDogI2UzMjcyMiwgMTEwOiNjMTNmMmIsIDEyMDogI2E3MWUyMiksXG4gICAgY3lhbjogKDU6ICNmMmY5ZjksIDEwOiAjZTZmNGY0LCAyMDogI2NjZWFlYSwgNDA6ICM5YWQ3ZDYsIDYwOiAjNjhjNWM0LCA4MDogIzM2YjFiMCwgMTAwOiAjMDI5ZjlkLCAxMjA6ICMwMjZmNmYpLFxuICAgIGJsYXplOiAoNTogI2ZmZjdmMywgMTA6ICNmZmYxZTksIDIwOiAjZmNlMWQzLCA0MDogI2ZjYzVhNywgNjA6ICNmN2E3N2IsIDgwOiAjZjY4OTRkLCAxMDA6ICNmMjZiMjEsIDEyMDogI2I3M2UyNSksXG4gICAgZ3JleTogKDU6ICNmYWZiZmIsIDEwOiAjZWNlZmYwLCAyMDogI2U0ZTdlOSwgNDA6ICNhOGIyYjcsIDYwOiAjODI4ZDkzLCA4MDogIzVCNjY3MCwgMTAwOiAjM2Q0NjRkLCAxMjA6ICMxNDFlMjUpLFxuICAgIHNlYWZvYW06ICg1OiAjZWZmOWY4LCAxMDogI2U0ZjdmMywgMjA6ICNjZmVkZTgsIDQwOiAjYTVlYWRiLCA2MDogIzYxZDZiOCwgODA6ICMyZmQyYTgsIDEwMDogIzFlYWQ4YSwgMTIwOiAjMGI3MDVkKSxcbiAgICBzZWF3ZWVkOiAoNTogI2Y4ZmJmNiwgMTA6ICNmMmY4ZWQsIDIwOiAjZTNmMGQ5LCA0MDogI2NiZTRiNSwgNjA6ICNiMGQ3OGUsIDgwOiAjOTVjYjZhLCAxMDA6ICM3YWMxNDIsIDEyMDogIzQ5OTE0MiksXG4gICAgbWFyaW5lOiAoNTogI2Y3ZjlmMywgMTA6ICNmMWY0ZTgsIDIwOiAjZTRlYWQyLCA0MDogI2NiZDlhNywgNjA6ICNiZmRiODUsIDgwOiAjYWVkMjU1LCAxMDA6ICM3YWExM2UsIDEyMDogIzRjNzMzNiksXG4gICAgcGViYmxlOiAoNTogI2ZiZmNmYywgMTA6ICNmNWY2ZjYsIDIwOiAjZTllOGU5LCA0MDogI2Q1ZDRkNSwgNjA6ICNhYWFhYWIsIDgwOiAjN2M3YzgxLCAxMDA6ICM1NDUzNTUsIDEyMDogIzI4MjcyYiksXG4gICAgc3Vuc2V0OiAoNTogI2ZmZmRlZSwgMTA6ICNmZmZiZGIsIDIwOiAjZmRmN2I0LCA0MDogI2ZmZjU3ZSwgNjA6ICNmZmYxMDAsIDgwOiAjZmJhZDFjLCAxMDA6ICNmNDdmMWYsIDEyMDogI2M5NTQyOCksXG4gICAgYnJvd246ICg1OiAjZjdmNGYyLCAxMDogI2VhZTRlMSwgMjA6ICNkOGNlY2IsIDQwOiAjYmFhYmE1LCA2MDogIzk2ODM3YywgODA6ICM3NzVkNTMsIDEwMDogIzU5MzgyYywgMTIwOiAjMmYxODBkKSxcbiAgICBwdXJwbGU6ICg1OiAjZjJlZmY3LCAxMDogI2U4ZGZlZiwgMjA6ICNkN2M5ZTMsIDQwOiAjYzFhZWQ1LCA2MDogI2EwODViZSwgODA6ICM3YjYxYWEsIDEwMDogIzY2NGZhMSwgMTIwOiAjNDIyZTg1KSxcbiAgICBwaW5rOiAoNTogI2ZlZjRmOCwgMTA6ICNmY2U3ZWYsIDIwOiAjZmFkYWUxLCA0MDogI2Y0YTJjMiwgNjA6ICNlZDczYTQsIDgwOiAjZTk0NTg2LCAxMDA6ICNlMzE1NjcsIDEyMDogI2FiMWQ0MSksXG5cbiAgICAvLyBOZXcgVUkgS2l0IGNvbG9ycyAtIG5ldyBwcmVmaXggd2lsbCBiZSByZW1vdmVkIG9uY2UgdGhlIG1pZ3JhdGlvbiBpcyBjb21wbGV0ZWRcbiAgICAvLyBJdCBhbHNvIG1ha2VzIHN1cmUgdGhhdCBjb2xvciB2YXJpYWJsZXMgYXJlIHVzZWRcbiAgICBuZXdncmV5OiAoNTogI2ZjZmNmYywgMTA6ICNmN2Y3ZjcsIDIwOiAjZjJmMmYyLCA0MDogI2U5ZTllOSwgNTA6ICNjN2M3YzcsIDYwOiAjYTlhOWE5LCA3MDogIzgwODA4MCwgODA6ICM2YjZiNmIsMTAwOiAjNGI0YjRiLDEyMDojMjkyOTI5KSxcbiAgICBuZXdibHVlOiAoNTogI2YwZjZmYSwgMTA6ICNlMmVlZjUsIDIwOiAjYjhkNWU3LCA0MDogIzhlYmJkNywgNTA6ICM2OWExYzcsIDU1OiAjNGY4ZmJkLCA2NTogIzM4N2ViMywgNzA6ICMyZjcyYTgsIDgwOiAjMjU2Mjk3LCAxMDA6ICMxZDUyODUsIDEyMDogIzEwMzc2NiksXG4gICAgbmV3Y3lhbjogKDU6ICNmMGY2ZmEsIDEwOiAjZTJlZWY1LCAyMDogI2I4ZDVlNywgNDA6ICM4ZWJiZDcsIDUwOiAjNjlhMWM3LCA1NTogIzRmOGZiZCwgNjU6ICMzODdlYjMsIDEwMDogIzJmNzJhOCwgMTIwOiAjMjU2Mjk3LCAxNDA6ICMxZDUyODUsIDE2MDogIzEwMzc2NiksXG4pO1xuXG5AZnVuY3Rpb24gaHJhLWNvbG9yKCRjb2xvciwgJHZhbHVlOiAxMDApIHtcbiAgICAkc2VsZWN0ZWRDb2xvcjogJGNvbG9yO1xuXG4gICAgQGlmICh0eXBlLW9mKCRjb2xvcikgPT0gJ2xpc3QnKSB7XG4gICAgICAgICRzZWxlY3RlZENvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgICAgICAgJHZhbHVlOiBudGgoJGNvbG9yLCAyKTtcbiAgICB9XG5cbiAgICAkY29sb3ItbWFwOiBtYXAtZ2V0KCRjb2xvcnMsICRzZWxlY3RlZENvbG9yKTtcbiAgICBAaWYgKCRjb2xvci1tYXAgPT0gbnVsbCkge1xuICAgICAgICBAZXJyb3IgJHNlbGVjdGVkQ29sb3IgKyAnIGlzIG5vdCBwYXJ0IG9mIHRoZSBjb2xvciBwYWxldHRlJztcbiAgICB9XG4gICAgQHJldHVybiBtYXAtZ2V0KCRjb2xvci1tYXAsICR2YWx1ZSk7XG59XG5cbiRibGFjazogaHJhLWNvbG9yKCRncmV5LCAxMjApO1xuJHdoaXRlOiByZ2IoMjU1LCAyNTUsIDI1NSk7XG4kY29sb3ItZ3JheS10cmFuc3BhcmVudDogdHJhbnNwYXJlbnRpemUoaHJhLWNvbG9yKCRncmV5KSwgMC44KTtcbiRob3Zlci1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCAyMCk7XG5cblxuLyogKioqKiAqL1xuJHN1Y2Nlc3MtY29sb3I6IGhyYS1jb2xvcigkZ3JlZW4pO1xuJHdhcm5pbmctY29sb3I6IGhyYS1jb2xvcigkeWVsbG93KTtcbiRhbGVydC1jb2xvcjogaHJhLWNvbG9yKCRyZWQpO1xuJGNvbG9yLWludmFsaWQ6IGhyYS1jb2xvcigkcmVkKTtcbiRkaXNhYmxlZC1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCAxMCk7XG4kZGlzYWJsZWQtYm9yZGVyOiBocmEtY29sb3IoJGdyZXksIDQwKTtcbiRjb2xvci1ocmEtYW5jaG9yOiBocmEtY29sb3IoJGJsdWUpO1xuJGRpc2FibGVkLWZvcmUtY29sb3I6IGhyYS1jb2xvcigkZ3JleSwgNDApO1xuXG4vKiAqIENoYXJ0cyBDb2xvcnMgKi9cbiRzdGFja2VkLXRvb2x0aXAtY2lyY2xlLWJnOiAjM2Y0MDQyO1xuJGNoYXJ0LXRvb2x0aXAtY2lyY2xlOiAjZmY4OTRjO1xuJGRvbnV0LWNvdW50OiAjZmY2YjU3O1xuXG4vKiBpbmZvIHRleHQgYmFja2dyb3VuZCAqL1xuJGluZm8tYmFja2dyb3VuZDogI2ZmZmRlNjtcblxuXG4vKiBVc2UgZm9sbG93aW5nIGNsYXNzZXMgZm9yIGFlc3RoZXRpY3Mgb25seSAtIE5ldyBVSSBLSVQgKi9cbi8vIFN0YW5kYXJkaXNlIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mIGRpcmVjdCBjb2xvcnNcbi8qIENvbG9yIE1hcHBpbmcqL1xuJHByaW1hcnktYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDcwKTtcbiRwcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCAxMDApO1xuJHByaW1hcnktdGV4dDokd2hpdGU7XG5cbiRkZWxldGUtYmFja2dyb3VuZDogaHJhLWNvbG9yKCRyZWQsIDExMCk7XG5cbiRzZWNvbmRhcnktdGV4dDpocmEtY29sb3IoJG5ld2JsdWUsIDU1KTtcbiRzZWNvbmRhcnktYmFja2dyb3VuZDokd2hpdGU7XG4kc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCA1KTtcbiRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2dyZXksIDUwKTtcbiRzZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQ6JHNlY29uZGFyeS10ZXh0O1xuXG4kZmxhdC1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA4MCk7XG4kZmxhdC1ob3ZlcjogaHJhLWNvbG9yKCRuZXdncmV5LCAxMDApO1xuJGZsYXQtZGlzYWJsZWQ6IGhyYS1jb2xvcigkbmV3Z3JleSwgNzApO1xuXG4kYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ6IGhyYS1jb2xvcigkbmV3Ymx1ZSwgODApO1xuJGFjdGlvbi1kaXNhYmxlZDogaHJhLWNvbG9yKCRuZXdncmV5LCA1NSk7XG4kYWN0aW9uLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCA1MCk7XG4vKmVuZHMqL1xuXG4kYnV0dG9uLXByaW1hcnktdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWJhY2tncm91bmQ7XG4kYnV0dG9uLXByaW1hcnktaG92ZXItYmFja2dyb3VuZC1jb2xvcjokcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1wcmltYXJ5LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRidXR0b24tZGVsZXRlLWJhY2tncm91bmQtY29sb3I6ICRkZWxldGUtYmFja2dyb3VuZDtcbiRidXR0b24tcHJpbWFyeS1kaXNhYmxlZC1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcblxuLy8gU2Vjb25kYXJ5IGJ1dHRvbnMgYW5kIHNlY29uZGFyeSBhY3Rpb24gYnV0dG9ucyBzaGFyZSBjb2xvcnMgXG4kYnV0dG9uLXNlY29uZGFyeS1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiRidXR0b24tc2Vjb25kYXJ5LXRleHQtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiRidXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWhvdmVyLXRleHQtY29sb3I6ICRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLXNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuXG4kYnV0dG9uLWZsYXQtYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4kYnV0dG9uLWZsYXQtY29sb3I6ICRmbGF0LWNvbG9yO1xuJGJ1dHRvbi1mbGF0LWhvdmVyLWNvbG9yOiRmbGF0LWhvdmVyO1xuJGJ1dHRvbi1mbGF0LWRpc2FibGVkLWNvbG9yOiAkZmxhdC1kaXNhYmxlZDtcblxuJGJ1dHRvbi1hY3Rpb24tYmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24tdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1hY3Rpb24taG92ZXItYmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24taG92ZXItdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1hY3Rpb24tZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24tZGlzYWJsZWQtdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1hY3Rpb24tZGVsZXRlLWJhY2tncm91bmQtY29sb3I6JGRlbGV0ZS1iYWNrZ3JvdW5kO1xuXG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1kaXNhYmxlZC1jb2xvcjogJGFjdGlvbi1kaXNhYmxlZDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuXG4kdW5zZWxlY3RlZC1jaG9pY2UtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRzZWxlY3RlZC1jaG9pY2UtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcblxuJHJhZGlvLWxhYmVsLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kdG9nZ2xlLW9uLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiR0b2dnbGUtb2YtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJHRvZ2dsZS1oZWFkLWNvbG9yOiAkd2hpdGU7XG5cbiRpbnB1dC10ZXh0LWxhYmVsLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDEyMCk7XG4kaW5wdXQtdGV4dC1ib3JkZXItY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgNDApO1xuJGlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgNjApO1xuJGlucHV0LXRleHQtYWN0aXZlLWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA4MCk7XG4kaW5wdXQtdGV4dC1hY3RpdmUtdGV4dC1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCAxMjApO1xuJGlucHV0LXRleHQtZXJyb3ItYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJHJlZCwgMTEwKTtcbiRpbnB1dC10ZXh0LWRpc2FibGVkLWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA1MCk7XG4kaW5wdXQtdGV4dC1lcnJvci1tZXNzYWdlLWNvbG9yOiAkaW5wdXQtdGV4dC1lcnJvci1ib3JkZXItY29sb3I7XG4kaW5wdXQtdGV4dC1kaXNhYmxlZC1jb2xvcjogJGlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I7XG4kaW5wdXQtdGV4dC1sYWJlbC1kaXNhYmxlZC1jb2xvcjogJGlucHV0LXRleHQtYm9yZGVyLWNvbG9yO1xuJGlucHV0LXRleHQtZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I7IiwiQGltcG9ydCAnbWl4aW5zJztcbkBpbXBvcnQgJ2NvbG9ycyc7XG5cbi8qIFVzZWQgZm9yIGdyaWRzIGFuZCBtYXJnaW5zICovXG5cbiRzbWFsbC1zaXplOiA0ICFkZWZhdWx0O1xuJGxhcmdlLXNpemU6IDEyICFkZWZhdWx0O1xuJHNtYWxsLXNxdWFyZTogcmVtLWNhbGMoJHNtYWxsLXNpemUpICFkZWZhdWx0O1xuJGxhcmdlLXNxdWFyZTogcmVtLWNhbGMoJGxhcmdlLXNpemUpICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWdyYXk6IHRyYW5zcGFyZW50aXplKGhyYS1jb2xvcigkZ3JleSwgNDApLCAwLjgpO1xuJHRyYW5zcGFyZW50LXdoaXRlOiB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNik7XG4kYW5pbWF0aW9uLXRpbWluZzogMC4yNXM7XG4kcmFkLWdyYWQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGNlbnRlciwgdHJhbnNwYXJlbnRpemUoaHJhLWNvbG9yKCRncmV5KSwgMC41KSA4MCUsIHRyYW5zcGFyZW50aXplKCRibGFjaywgMC41KSAxMDAlKTtcbiRsaW5lYXItZ3JhZDogcmdiYSgkYmxhY2ssIDAuNyk7XG5cbiRzY3JvbGwtYmFyLXdpZHRoOiAkc21hbGwtc3F1YXJlICogMjtcbiRzY3JvbGwtYmFyLXdpZHRoLWZpcmVmb3g6IHJlbS1jYWxjKDE3KTtcbiRzY3JvbGwtYmFyLXdpZHRoLWVkZ2U6IHJlbS1jYWxjKDE3KTtcbiRzY3JvbGwtYmFyLXdpZHRoLWllOiByZW0tY2FsYygxNyk7XG5cbi8qXG4gIGZvbnQgc2l6ZXNcbiAqL1xuJGljb24tZm9udC1zaXplLXNtYWxsOiAkc21hbGwtc3F1YXJlICogMyAhZGVmYXVsdDsgLy8gMTJweFxuJGljb24tZm9udC1zaXplLW1lZGl1bTogJHNtYWxsLXNxdWFyZSAqIDQgIWRlZmF1bHQ7IC8vIDE2cHhcbiRpY29uLWZvbnQtc2l6ZS1yZWd1bGFyOiAkc21hbGwtc3F1YXJlICogNSAhZGVmYXVsdDsgLy8gMjBweFxuJGljb24tZm9udC1zaXplLWxhcmdlOiAkc21hbGwtc3F1YXJlICogNjsgLy8gMjRweFxuJGljb24tZm9udC1zaXplLXgtbGFyZ2U6ICRzbWFsbC1zcXVhcmUgKiA3OyAvLyAyOHB4XG4kaWNvbi1mb250LXNpemUtcGxhY2Vob2xkZXI6ICRsYXJnZS1zcXVhcmUgKiA3O1xuJGZvbnQtc2l6ZTogJGljb24tZm9udC1zaXplLW1lZGl1bSAhZGVmYXVsdDsgLy8gMTNweFxuJGZvbnQtc2l6ZS1tZWRpdW06ICRpY29uLWZvbnQtc2l6ZS1tZWRpdW07IC8vMTZweFxuJGZvbnQtc2l6ZS1sYXJnZTogJGljb24tZm9udC1zaXplLXJlZ3VsYXI7XG4kZm9udC1zaXplLXgtbGFyZ2U6ICRpY29uLWZvbnQtc2l6ZS14LWxhcmdlO1xuJGZvbnQtc2l6ZS1oZWFkZXI6IDE0cHg7XG5cblxuJGZvbnQtd2VpZ2h0LWxpZ2h0OiAzMDA7IC8vIFNvdXJjZSBTYW5zIFBybyBMaWdodFxuJGZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDsgLy8gU291cmNlIFNhbnMgUHJvIExpZ2h0XG4kZm9udC13ZWlnaHQtc2VtaS1ib2xkOiA2MDA7IC8vIFNvdXJjZSBTYW5zIFBybyBTZW1pIEJvbGRcbiRmb250LXdlaWdodC1ib2xkOiA3MDA7IC8vIFNvdXJjZSBTYW5zIFBybyBCb2xkXG5cblxuXG4vKlxuICogSGVhZGVyIHNpemVcbiAqL1xuXG4kaGVhZGVyLWhlaWdodDogcmVtLWNhbGMoNTIpICFkZWZhdWx0O1xuJGhlYWRlci10ZXh0LWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDggIWRlZmF1bHQ7IC8vMzJweFxuJHN1Yi1uYXYtaGVpZ2h0OiAwcmVtICFkZWZhdWx0OyAvLyAwcHhcbiRzZWFyY2gtYmFyLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDE1ICFkZWZhdWx0O1xuLy8kcGFnaW5hdGlvbi1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAyNSAhZGVmYXVsdDtcbiRjaGFydHMtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogNzQgIWRlZmF1bHQ7XG4kbWFpbi1oZWFkZXItaGVpZ2h0OiAkaGVhZGVyLWhlaWdodCskc3ViLW5hdi1oZWlnaHQgIWRlZmF1bHQ7XG4kdmlydHVhbC1ncm91cC1pbmRpY2F0b3ItaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogNztcbiRoZWFkZXItc2lkZS1tYXJnaW46IHJlbS1jYWxjKDI0KTtcblxuLypcbiAqIERldmljZSBHcm91cCBzZXR0aW5nc1xuICovXG5cbiRkZXZpY2UtZ3JvdXAtcGFkZGluZy1sZWZ0OiAkc21hbGwtc3F1YXJlICogNjtcbiRkZXZpY2UtZ3JvdXAtaXRlbXMtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogOTtcbiRkZXZpY2UtZ3JvdXAtd2lkdGg6ICRsYXJnZS1zcXVhcmUgKiAyODtcbiRkZXZpY2UtZ3JvdXAtbWluLXdpZHRoOiAkc21hbGwtc3F1YXJlICogNTU7XG4kZGV2aWNlLWdyb3VwLW1heC13aWR0aDogJHNtYWxsLXNxdWFyZSAqIDE0MDtcbiRkZXZpY2UtZ3JvdXAtbWFyZ2luLXRvcDogJHNlYXJjaC1iYXItaGVpZ2h0O1xuJGRldmljZS1ncm91cC1idXR0b24td2lkdGg6ICRsYXJnZS1zcXVhcmUgKiAyMTtcbiRkZXZpY2UtZ3JvdXAtYnV0dG9uLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDExO1xuJGRldmljZS1ncm91cC1idXR0b24tYm9yZGVyOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCAyMCk7XG5cbi8qXG4gKiBCb3JkZXIgc2V0dGluZ3NcbiAqL1xuXG4kYm9yZGVyLWJhc2U6IDFweCBzb2xpZCByZ2IoMjA0LCAyMDQsIDIwNCk7XG4kYm9yZGVyLXJhZGl1cy1zbWFsbDogM3B4O1xuJGJvcmRlci1yYWRpdXMtYmFzZTogNHB4O1xuJGJvcmRlci1yYWRpdXMtbGFyZ2U6IDZweDtcblxuLypcbiAqIFNoYWRvd3MgZ28gYnkgbGV2ZWxcbiAqL1xuXG4kc2hhZG93OiAwIDNweCA5cHggcmdiYSgwLCAwLCAwLCAuNSk7XG4kc2hhZG93LTE6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4kc2hhZG93LXNtYWxsOiAwIDFweCA2cHggcmdiYSgwLCAwLCAwLCAwLjI0KTtcbiRzaGFkb3ctaGVhZGVyOiAwcHggMXB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctc2VhcmNoLWhlYWRlcjogOHB4IDFweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWxpZ2h0OiAxcHggMXB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4kc2hhZG93LWxpZ2h0LWJvdHRvbS1vbmx5OiAwcHggMXB4IDhweCByZ2JhKCRibGFjaywgMC4xMyk7XG4kc2hhZG93LWFib3ZlOiAwIC0xcHggMTNweCAycHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1hYm92ZS1sZWZ0OiAtNnB4IDBweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWJlbG93OiAwcHggOXB4IDhweCAtNXB4IHJnYmEoMTU4LCAxNTgsIDE1OCwgMC4yNSk7XG4kc2hhZG93LWRyb3Bkb3duOiAwIDFweCAxM3B4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctZGlhbG9nOiAwIDhweCAyMHB4IDZweCByZ2JhKCRibGFjaywgMC42KTtcbiRzaGFkb3ctZGlhbG9nLXN1ZmZpeDogMHB4IDE2cHggMjBweCAzcHggcmdiYSgkYmxhY2ssIDAuNik7XG4kc2hhZG93LWxheW91dDogNnB4IDBweCA5cHggMHB4IHJnYmEoJGJsYWNrLCAwLjIpO1xuJHNoYWRvdy1zYXZlZC1zZWFyY2hlczogNHB4IDRweCA4cHggLTJweCByZ2JhKDY3LDcwLDc0LC4xMyk7XG4kc2hhZG93LWNoYXJ0LWNhcmQ6IDAgNnB4IDE2cHggcmdiYSgyMCwzMCwzNywwLjA4KTtcbiRzaGFkb3ctY29uZmlnLWNhcmQ6IDAgMCAyNHB4IDAgcmdiYSgyMCwzMCwzNywwLjEpO1xuXG4vKlxuICogUGFkZGluZyBzZXR0aW5nc1xuICovXG5cbiRib2R5LXBhZGRpbmc6ICRsYXJnZS1zcXVhcmUgKiAyO1xuJHBhZGRpbmctc21hbGw6ICRsYXJnZS1zcXVhcmU7XG4kYmFzZS1wYWRkaW5nOiAkc21hbGwtc3F1YXJlICogNDsgLy8gMTZweFxuJGhhbGYtYmFzZS1wYWRkaW5nOiAkYmFzZS1wYWRkaW5nIC8gMjtcbiRtb2RhbC1wYWRkaW5nOiAkYmFzZS1wYWRkaW5nO1xuJGxheW91dC1wYWRkaW5nOiAoJGJhc2UtcGFkZGluZyAqIDIpICgkYm9keS1wYWRkaW5nICogMikgKCRiYXNlLXBhZGRpbmcgKiAyKSAoJGJvZHktcGFkZGluZyAqIDIpO1xuJHBhZGRpbmctYmFzZS12ZXJ0aWNhbDogNnB4O1xuJHBhZGRpbmctYmFzZS1ob3Jpem9udGFsOiAkc21hbGwtc3F1YXJlICogMztcbiRwYWRkaW5nLWxhcmdlLXZlcnRpY2FsOiAxMHB4O1xuJHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDogICRzbWFsbC1zcXVhcmUgKiA0O1xuJHBhZGRpbmctbWVkaXVtLXZlcnRpY2FsOiAxNHB4O1xuJHBhZGRpbmctc21hbGwtdmVydGljYWw6IDVweDtcbiRwYWRkaW5nLXNtYWxsLWhvcml6b250YWw6IDEwcHg7XG5cbi8qXG4gKiBJbnB1dHNcbiAqL1xuJGlucHV0LXBhZGRpbmc6ICRzbWFsbC1zcXVhcmUgJHNtYWxsLXNxdWFyZSAqIDI7XG4kaW5wdXQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogODtcblxuLypcbiAqIFRvb2xUaXBzXG4gKi9cblxuLy8gVG9vbHRpcHNcbiR0b29sdGlwLW1heC13aWR0aDogMjUwcHggIWRlZmF1bHQ7XG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCkgIWRlZmF1bHQ7XG4kdG9vbHRpcC10ZXh0LWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuJHRvb2x0aXAtZGVsYXk6IDAuNHMgIWRlZmF1bHQ7XG4kdG9vbHRpcC1kdXJhdGlvbjogMC4xcyAhZGVmYXVsdDtcblxuLypcbiAqIEFjdGlvbiBiYXIgc2l6ZXNcbiAqL1xuXG4kZGV2aWNlLWFjdGlvbi1iYXItaGVpZ2h0OiAkbGFyZ2Utc3F1YXJlICogNTtcbiRjb3VudC1jb250YWluZXItcGFkZGluZzogKCRsYXJnZS1zcXVhcmUgKiAyKSAoJHNtYWxsLXNxdWFyZSAqIDQpICgkbGFyZ2Utc3F1YXJlICogMikgKCRzbWFsbC1zcXVhcmUgKiA0KTtcblxuLyoqXG4qICBEZXZpY2UgZ3JpZCBzaXplc1xuKi9cblxuJHJvdy1hYm92ZS1ncmlkLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDE0O1xuJGNoZWNrLWNlbGwtcGFkZGluZzogMCAwIDAgJHNtYWxsLXNxdWFyZSoyO1xuJGRldmljZS1ncmlkLW1pbi1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3MTtcblxuLypcbiAqIEZvY3VzIGJvcmRlclxuICovXG5cbiRocmEtZm9jdXMtb3V0bGluZTogMnB4IHNvbGlkIGhyYS1jb2xvcigkY3lhbik7XG5cbi8qXG4gKiBCb3JkZXJcbiAqL1xuXG4kaHJhLWJvcmRlcjogMXB4IHNvbGlkIGhyYS1jb2xvcigkZ3JleSwgMjApO1xuJGhyYS1ib3JkZXItZXJyb3I6IDFweCBzb2xpZCBocmEtY29sb3IoJHJlZCk7XG4kaHJhLWJvcmRlci1pbnB1dC1kaXNhYmxlZDogMXB4IHNvbGlkIGhyYS1jb2xvcigkZ3JleSwgNDApO1xuXG5cbi8qXG4gKiBQb3AtdXBcbiovXG4kaHJhLXBvcHVwLWJlYWstc2l6ZTogJHNtYWxsLXNxdWFyZSozO1xuJGhyYS1wb3B1cC1iZWFrLWJvdHRvbS1jZW50ZXI6IGNhbGMoNTAlIC0gKDEuMjVyZW0gLyAyKSk7XG4kcG9wLXVwLWZvb3Rlci1oZWlnaHQ6ICRsYXJnZS1zcXVhcmUgKiA1O1xuJHBvcC11cC10aXRsZS1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxMztcbiRwb3AtdXAtdGl0bGUtbWFqb3ItaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTQ7XG4vLyBzdHlsZWd1aWRlOmlnbm9yZTplbmRcblxuLypcbiogU3RhdHVzIE5vdGlmaWNhdGlvblxuKi9cbiRocmEtc3RhdHVzLW5vdGlmaWNhdGlvbi13aWR0aDogJHNtYWxsLXNxdWFyZSAqIDgzO1xuJGhyYS1zdGF0dXMtbm90aWZpY2F0aW9uLXRvcDogJHNtYWxsLXNxdWFyZSAqIDE0O1xuJGhyYS1zdGF0dXMtbm90aWZpY2F0aW9uLWJvdHRvbTogJHNtYWxsLXNxdWFyZSAqIDE1O1xuXG5cbi8qXG4gIFJvdW5kIGJ1dHRvbiBzaXplc1xuICovXG4gJHJvdW5kLXNtYWxsOiAkc21hbGwtc3F1YXJlICogNztcbiAkcm91bmQtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogODtcbiAkcm91bmQtbGFyZ2U6ICRzbWFsbC1zcXVhcmUgKiA5O1xuXG4vKlxuICogSW1hZ2UgSWNvbiBTaXplc1xuICovXG5cbiRpbWctaWNvbi1zaXplLXNtYWxsOiAkc21hbGwtc3F1YXJlICogODtcbiRpbWctaWNvbi1zaXplLW1lZGl1bTogJHNtYWxsLXNxdWFyZSAqIDEwO1xuXG5cbiRiZXppZXI6IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG5cblxuLyoqIE1vZGFsIHNpemVzICoqL1xuJG1vZGFsLXRpdGxlLWhlaWdodDogcmVtLWNhbGMoNTIpO1xuJG1vZGFsLWZvb3Rlci1oZWlnaHQ6IHJlbS1jYWxjKDYwKTtcbiIsIkBpbXBvcnQgXCIuLi8uLi9zaGFyZWQvc3R5bGVzL2Jhc2Uvc2V0dGluZ3NcIjtcbjpob3N0IHtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBkaXNwbGF5OiBibG9jaztcbiAgI2xvZ28tY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi5sb2dpbi1mb3JtLXRpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IHJlbS1jYWxjKDMwKTtcbiAgY29sb3I6IGhtYS1jb2xvcigkZ3JleSwgODApO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5idG4tbG9naW4ge1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6ICMwMDA7XG4gIGhlaWdodDogcmVtLWNhbGMoNDIpO1xuICBiYWNrZ3JvdW5kOiAkdGhlbWUtZ3JlZW47XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xufVxuXG4uZm9ybS1saW5rLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICBhIHtcbiAgICBsaW5lLWhlaWdodDogMjtcbiAgfVxuICAuZm9yZ2V0LXBhc3Mge1xuICAgIGNvbG9yOiBobWEtY29sb3IoJGdyZXksIDYwKTtcbiAgfVxuICAucmVnaXN0ZXItdXNlciB7XG4gICAgY29sb3I6IGhtYS1jb2xvcihibGF6ZSwgODApO1xuICB9XG59XG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { first } from 'rxjs/operators';\nimport { AuthenticationService } from 'src/app/services/authentication.service';\n\n@Component({\n templateUrl: 'register.component.html',\n styleUrls: ['./register.component.scss']\n})\nexport class RegisterComponent implements OnInit {\n registerForm: FormGroup;\n loading = false;\n submitted = false;\n errorMessage: string[] = [];\n\n constructor(\n private formBuilder: FormBuilder,\n private router: Router,\n private authenticationService: AuthenticationService) {\n // redirect to home if already logged in\n if (this.authenticationService.currentUserValue) {\n this.router.navigate(['/']);\n }\n }\n\n ngOnInit() {\n this.registerForm = this.formBuilder.group({\n name: ['', Validators.required],\n username: ['', Validators.required],\n password: ['', [Validators.required, Validators.minLength(6)]],\n externalId: ['', Validators.required],\n // dob: ['', Validators.required],\n });\n }\n\n // convenience getter for easy access to form fields\n get f() { return this.registerForm.controls; }\n\n onSubmit() {\n this.submitted = true;\n\n // stop here if form is invalid\n if (this.registerForm.invalid) {\n return;\n }\n this.errorMessage = [];\n this.loading = true;\n this.authenticationService.register(this.registerForm.value)\n .pipe(first())\n .subscribe(\n () => {\n this.router.navigate(['/']);\n },\n error => {\n const _this = this;\n if (error.error instanceof Array) {\n error.error.map(err => _this.errorMessage.push(err.value));\n } else if (typeof error.error === 'string') {\n this.errorMessage.push(error.error);\n } else {\n this.errorMessage.push(error);\n }\n this.loading = false;\n });\n }\n}\n","export default \"/*\\nHigh DPI screens (retina macbooks, highresolution laptops, etc)\\n*/\\n/* Firefox specific styles go here */\\n/*\\nCOMMON COLOR NAMES\\n\\nThese colors are mapped to the names from the official colors.\\nInstead of having names like `crush` or `blaze`, developers will use their common, non-marketized name.\\neg. $red: crush\\n $orange: blaze\\n\\nThen, use the `hra-color` function to get the color\\neg. color: hra-color($red)\\n*/\\n/* **** */\\n/* * Charts Colors */\\n/* info text background */\\n/* Use following classes for aesthetics only - New UI KIT */\\n/* Color Mapping*/\\n/*ends*/\\n/* Used for grids and margins */\\n/*\\n font sizes\\n */\\n/*\\n * Header size\\n */\\n/*\\n * Device Group settings\\n */\\n/*\\n * Border settings\\n */\\n/*\\n * Shadows go by level\\n */\\n/*\\n * Padding settings\\n */\\n/*\\n * Inputs\\n */\\n/*\\n * ToolTips\\n */\\n/*\\n * Action bar sizes\\n */\\n/**\\n* Device grid sizes\\n*/\\n/*\\n * Focus border\\n */\\n/*\\n * Border\\n */\\n/*\\n * Pop-up\\n*/\\n/*\\n* Status Notification\\n*/\\n/*\\n Round button sizes\\n */\\n/*\\n * Image Icon Sizes\\n */\\n/** Modal sizes **/\\n:host {\\n height: 100vh;\\n width: 100vw;\\n display: block; }\\n:host #logo-container {\\n padding: 0; }\\n.login-form-title {\\n width: 100%;\\n display: block;\\n font-size: 1.875rem;\\n color: hma-color(grey, 80);\\n line-height: 1.2;\\n text-align: center; }\\n.btn-login {\\n width: 100%;\\n color: #000;\\n height: 2.625rem;\\n background: #dfd269;\\n font-size: 1.125rem; }\\n.form-link-actions {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-end;\\n font-size: 0.875rem; }\\n.form-link-actions a {\\n line-height: 2; }\\n.form-link-actions .forget-pass {\\n color: hma-color(grey, 60); }\\n.form-link-actions .register-user {\\n color: hma-color(blaze, 80); }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21lZGlhcXVlcmllcy5zY3NzIiwic3JjL2FwcC9jb250cm9scy9yZXNldC1wYXNzd29yZC9yZXNldC1wYXNzd29yZC5jb21wb25lbnQuc2NzcyIsIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21peGlucy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9zdHlsZXMvYmFzZS9fY29sb3JzLnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvc2hhcmVkL3N0eWxlcy9iYXNlL19zZXR0aW5ncy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL2NvbnRyb2xzL3Jlc2V0LXBhc3N3b3JkL3Jlc2V0LXBhc3N3b3JkLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThCQTs7Q0M1QkM7QUMwS0Qsb0NBQUE7QUM1S0E7Ozs7Ozs7Ozs7Q0ZjQztBRStERCxTQUFBO0FBVUEsb0JBQUE7QUFLQSx5QkFBQTtBQUlBLDJEQUFBO0FBRUEsaUJBQUE7QUFvQkEsT0FBQTtBQ25IQSwrQkFBQTtBQWlCQTs7RUhJRTtBR21CRjs7RUhoQkU7QUc4QkY7O0VIM0JFO0FHeUNGOztFSHRDRTtBRytDRjs7RUg1Q0U7QUdrRUY7O0VIL0RFO0FHaUZGOztFSDlFRTtBR29GRjs7RUhqRkU7QUc0RkY7O0VIekZFO0FHZ0dGOztDSDdGQztBR3FHRDs7RUhsR0U7QUd3R0Y7O0VIckdFO0FHOEdGOztDSDNHQztBR3FIRDs7Q0hsSEM7QUcwSEQ7O0VIdkhFO0FHOEhGOztFSDNIRTtBR3NJRixrQkFBQTtBQzFNQTtFQUNFLGFBQWE7RUFDYixZQUFZO0VBQ1osY0FBYyxFQUFBO0FBSGhCO0lBS0ksVUFBVSxFQUFBO0FBSWQ7RUFDRSxXQUFXO0VBQ1gsY0FBYztFQUNkLG1CSDJEdUQ7RUcxRHZELDBCQUEyQjtFQUMzQixnQkFBZ0I7RUFDaEIsa0JBQWtCLEVBQUE7QUFHcEI7RUFDRSxXQUFXO0VBQ1gsV0FBVztFQUNYLGdCSGtEdUQ7RUdqRHZELG1CRlhtQjtFRVluQixtQkhnRHVELEVBQUE7QUc3Q3pEO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixxQkFBcUI7RUFDckIsbUJIeUN1RCxFQUFBO0FHN0N6RDtJQU1JLGNBQWMsRUFBQTtBQU5sQjtJQVNJLDBCQUEyQixFQUFBO0FBVC9CO0lBWUksMkJBQTJCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9jb250cm9scy9yZXNldC1wYXNzd29yZC9yZXNldC1wYXNzd29yZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vICBBdXRob3I6IFJhZmFsIEJyb21pcnNraVxuLy8gIHd3dzogaHR0cDovL3JhZmFsYnJvbWlyc2tpLmNvbS9cbi8vICBnaXRodWI6IGh0dHA6Ly9naXRodWIuY29tL3BhcmFub2lkYS9zYXNzLW1lZGlhcXVlcmllc1xuLy9cbi8vICBMaWNlbnNlZCB1bmRlciBhIE1JVCBMaWNlbnNlXG4vL1xuLy8gIFZlcnNpb246XG4vLyAgMS42LjFcbi8vIC0tLSBnZW5lcmF0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gbXEoJGFyZ3MuLi4pIHtcbiAgJG1lZGlhLXR5cGU6ICdvbmx5IHNjcmVlbic7XG4gICRtZWRpYS10eXBlLWtleTogJ21lZGlhLXR5cGUnO1xuICAkYXJnczoga2V5d29yZHMoJGFyZ3MpO1xuICAkZXhwcjogJyc7XG4gIEBpZiBtYXAtaGFzLWtleSgkYXJncywgJG1lZGlhLXR5cGUta2V5KSB7XG4gICAgJG1lZGlhLXR5cGU6IG1hcC1nZXQoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gICAgJGFyZ3M6IG1hcC1yZW1vdmUoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gIH1cbiAgQGVhY2ggJGtleSxcbiAgJHZhbHVlIGluICRhcmdzIHtcbiAgICBAaWYgJHZhbHVlIHtcbiAgICAgICRleHByOiBcIiN7JGV4cHJ9IGFuZCAoI3ska2V5fTogI3skdmFsdWV9KVwiO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgI3skbWVkaWEtdHlwZX0gI3skZXhwcn0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cblxuLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cblxuQG1peGluIGhkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAje3JvdW5kKCRyYXRpbyo5Nil9ZHBpKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gJG9yaWVudGF0aW9uOiBsYW5kc2NhcGUgfCBwb3J0cmFpdFxuQG1peGluIHRhYmxldCgkb3JpZW50YXRpb246IGZhbHNlKSB7XG4gICRtaW46IDI2OHB4O1xuICAkbWF4OiAxMDI0cHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4LCAkb3JpZW50YXRpb246ICRvcmllbnRhdGlvbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIHNtYWxsIGRlc2t0b3AgLSAxMDI1IDwtPiAxMjgwXG5AbWl4aW4gc21hbGwtZGVza3RvcCgpIHtcbiAgJG1pbjogMTAyNXB4O1xuICAkbWF4OiAxMjgwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gbWVkaXVtIGRlc2t0b3AgLSAxMjgxIDwtPiAxNDQwXG5AbWl4aW4gbWVkaXVtLWRlc2t0b3AoKSB7XG4gICRtaW46IDEyODFweDtcbiAgJG1heDogMTQ0MHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIGxhcmdlIGRlc2t0b3AgLSAxNDQxIDwtPiAxNjAwXG5AbWl4aW4gbGFyZ2UtZGVza3RvcCgpIHtcbiAgJG1pbjogMTQ0MXB4O1xuICAkbWF4OiAxNjAwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8geGxhcmdlIGRlc2t0b3AgLSAxNjAxIC0+IGluZmluaXR5XG5AbWl4aW4geGxhcmdlLWRlc2t0b3AoKSB7XG4gICRtaW46IDE2MDFweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBkZXNrdG9wIG92ZXJsYXlcbkBtaXhpbiBkZXNrdG9wLW92ZXJsYXkoKSB7XG4gICAgJG1pbjogMjY4cHg7XG4gICAgJG1heDogOTI2cHg7XG4gICAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cbi8qIEZpcmVmb3ggc3BlY2lmaWMgc3R5bGVzIGdvIGhlcmUgKi9cbi8qXG5DT01NT04gQ09MT1IgTkFNRVNcblxuVGhlc2UgY29sb3JzIGFyZSBtYXBwZWQgdG8gdGhlIG5hbWVzIGZyb20gdGhlIG9mZmljaWFsIGNvbG9ycy5cbkluc3RlYWQgb2YgaGF2aW5nIG5hbWVzIGxpa2UgYGNydXNoYCBvciBgYmxhemVgLCBkZXZlbG9wZXJzIHdpbGwgdXNlIHRoZWlyIGNvbW1vbiwgbm9uLW1hcmtldGl6ZWQgbmFtZS5cbmVnLiAkcmVkOiBjcnVzaFxuICAgICRvcmFuZ2U6IGJsYXplXG5cblRoZW4sIHVzZSB0aGUgYGhyYS1jb2xvcmAgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb2xvclxuZWcuIGNvbG9yOiBocmEtY29sb3IoJHJlZClcbiovXG4vKiAqKioqICovXG4vKiAqIENoYXJ0cyBDb2xvcnMgKi9cbi8qIGluZm8gdGV4dCBiYWNrZ3JvdW5kICovXG4vKiBVc2UgZm9sbG93aW5nIGNsYXNzZXMgZm9yIGFlc3RoZXRpY3Mgb25seSAtIE5ldyBVSSBLSVQgKi9cbi8qIENvbG9yIE1hcHBpbmcqL1xuLyplbmRzKi9cbi8qIFVzZWQgZm9yIGdyaWRzIGFuZCBtYXJnaW5zICovXG4vKlxuICBmb250IHNpemVzXG4gKi9cbi8qXG4gKiBIZWFkZXIgc2l6ZVxuICovXG4vKlxuICogRGV2aWNlIEdyb3VwIHNldHRpbmdzXG4gKi9cbi8qXG4gKiBCb3JkZXIgc2V0dGluZ3NcbiAqL1xuLypcbiAqIFNoYWRvd3MgZ28gYnkgbGV2ZWxcbiAqL1xuLypcbiAqIFBhZGRpbmcgc2V0dGluZ3NcbiAqL1xuLypcbiAqIElucHV0c1xuICovXG4vKlxuICogVG9vbFRpcHNcbiAqL1xuLypcbiAqIEFjdGlvbiBiYXIgc2l6ZXNcbiAqL1xuLyoqXG4qICBEZXZpY2UgZ3JpZCBzaXplc1xuKi9cbi8qXG4gKiBGb2N1cyBib3JkZXJcbiAqL1xuLypcbiAqIEJvcmRlclxuICovXG4vKlxuICogUG9wLXVwXG4qL1xuLypcbiogU3RhdHVzIE5vdGlmaWNhdGlvblxuKi9cbi8qXG4gIFJvdW5kIGJ1dHRvbiBzaXplc1xuICovXG4vKlxuICogSW1hZ2UgSWNvbiBTaXplc1xuICovXG4vKiogTW9kYWwgc2l6ZXMgKiovXG46aG9zdCB7XG4gIGhlaWdodDogMTAwdmg7XG4gIHdpZHRoOiAxMDB2dztcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgOmhvc3QgI2xvZ28tY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwOyB9XG5cbi5sb2dpbi1mb3JtLXRpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEuODc1cmVtO1xuICBjb2xvcjogaG1hLWNvbG9yKGdyZXksIDgwKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5idG4tbG9naW4ge1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6ICMwMDA7XG4gIGhlaWdodDogMi42MjVyZW07XG4gIGJhY2tncm91bmQ6ICNkZmQyNjk7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07IH1cblxuLmZvcm0tbGluay1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG4gIC5mb3JtLWxpbmstYWN0aW9ucyBhIHtcbiAgICBsaW5lLWhlaWdodDogMjsgfVxuICAuZm9ybS1saW5rLWFjdGlvbnMgLmZvcmdldC1wYXNzIHtcbiAgICBjb2xvcjogaG1hLWNvbG9yKGdyZXksIDYwKTsgfVxuICAuZm9ybS1saW5rLWFjdGlvbnMgLnJlZ2lzdGVyLXVzZXIge1xuICAgIGNvbG9yOiBobWEtY29sb3IoYmxhemUsIDgwKTsgfVxuIiwiQGltcG9ydCAnLi9tZWRpYXF1ZXJpZXMnO1xuXG4vLy8gLyBzdHlsZWd1aWRlOmlnbm9yZTpzdGFydFxuLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZT09bnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKT09JyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG4gIEBpZiAkY291bnQ9PTEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY291bnQge1xuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcbiAgfVxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKT09J3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG4gIC8vIFRoZW4gdGhlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBlbXNcbiAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxZW07XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsIHZhbHVlIHRvIG1hdGNoaW5nIHJlbSB2YWx1ZS4gKkFueSogdmFsdWUgcGFzc2VkLCByZWdhcmRsZXNzIG9mIHVuaXQsIGlzIGFzc3VtZWQgdG8gYmUgYSBwaXhlbCB2YWx1ZS4gQnkgZGVmYXVsdCwgdGhlIGJhc2UgcGl4ZWwgdmFsdWUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHJlbSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciBpbiByZW1zLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGhlIGJhc2UgcGl4ZWwgdmFsdWUuIHJlbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLlxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSAhPSdudW1iZXInIHtcbiAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkrJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0ncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XG4gIH1cbiAgLy8gVHVybiAwcmVtIGludG8gMFxuICBAaWYgJHZhbHVlPT0wcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vLyBBbmltYXRpb24ga2V5ZnJhbWVzIGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRhbmltYXRpb24tbmFtZSAtIE5hbWUgb2YgdGhlIGFuaW1hdGlvbi5cbkBtaXhpbiBrZXlmcmFtZXMoJGFuaW1hdGlvbi1uYW1lKSB7XG4gIEAtd2Via2l0LWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtbW96LWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtbXMta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1vLWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBrZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gQW5pbWF0aW9uIGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHIgLSBjc3MzIGFuaW1hdGlvbiBzcGVjLlxuQG1peGluIGFuaW1hdGlvbigkc3RyKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtbW96LWFuaW1hdGlvbjogI3skc3RyfTtcbiAgLW1zLWFuaW1hdGlvbjogI3skc3RyfTtcbiAgLW8tYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICBhbmltYXRpb246ICN7JHN0cn07XG59XG5cbi8vLyBCb3ggc2hhZG93IGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHIgLSBjc3MzIGJveC1zaGFkb3cgc3BlYy5cbkBtaXhpbiBib3gtc2hhZG93KCRzdHIpIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAjeyRzdHJ9O1xuICAtbW96LWJveC1zaGFkb3c6ICN7JHN0cn07XG4gIC1vLWJveC1zaGFkb3c6ICN7JHN0cn07XG4gIGJveC1zaGFkb3c6ICN7JHN0cn07XG59XG5cbi8vLyBncmFkaWVudCBhdXRvcHJlZml4ZXJcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIGdyYWRpZW50KCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgYmFja2dyb3VuZDogI3skY29sb3IxfTtcbiAgLyogRm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgZ3JhZGllbnRzICovXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBGb3IgU2FmYXJpIDUuMSB0byA2LjAgKi9cbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBGb3IgT3BlcmEgMTEuMSB0byAxMi4wICovXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBGb3IgRmlyZWZveCAzLjYgdG8gMTUgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBTdGFuZGFyZCBzeW50YXggKi9cbn1cblxuQG1peGluIHZlcnRpY2FsLWdyYWRpZW50LWRpdmlkZXIoKXtcbiAgd2lkdGg6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAxcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIGhyYS1jb2xvcigkZ3JleSwgMjApLCAkd2hpdGUpO1xufVxuXG5cbi8vLyBJRSBvbmx5IHF1ZXJ5XG5AbWl4aW4gaWUtb25seSgpIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcbiAgICAvKiBJRTEwKyBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuQG1peGluIGNyZWF0ZS1hbmltYXRpb24oJGFuaS1uYW1lKSB7XG4gIGFuaW1hdGlvbjogJGFuaS1uYW1lIGZvcndhcmRzIDMwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG5cbkBtaXhpbiBjcmVhdGUtdHJhbnNpdGlvbigkcHJvcGVydHktbmFtZSkge1xuICB0cmFuc2l0aW9uOiAkcHJvcGVydHktbmFtZSAzMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuLy8vIEVkZ2Ugb25seSBxdWVyeVxuQG1peGluIGVkZ2Utb25seSgpIHtcbiAgQHN1cHBvcnRzICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgLyogRWRnZSBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuLyogRmlyZWZveCBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuQG1peGluIGZpcmVmb3gtb25seSgpIHtcbiAgQHN1cHBvcnRzICgtbW96LWFwcGVhcmFuY2U6bm9uZSkge1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuXG4vLyBzdHlsZWd1aWRlOmlnbm9yZTplbmQiLCIvKlxuQ09NTU9OIENPTE9SIE5BTUVTXG5cblRoZXNlIGNvbG9ycyBhcmUgbWFwcGVkIHRvIHRoZSBuYW1lcyBmcm9tIHRoZSBvZmZpY2lhbCBjb2xvcnMuXG5JbnN0ZWFkIG9mIGhhdmluZyBuYW1lcyBsaWtlIGBjcnVzaGAgb3IgYGJsYXplYCwgZGV2ZWxvcGVycyB3aWxsIHVzZSB0aGVpciBjb21tb24sIG5vbi1tYXJrZXRpemVkIG5hbWUuXG5lZy4gJHJlZDogY3J1c2hcbiAgICAkb3JhbmdlOiBibGF6ZVxuXG5UaGVuLCB1c2UgdGhlIGBocmEtY29sb3JgIGZ1bmN0aW9uIHRvIGdldCB0aGUgY29sb3JcbmVnLiBjb2xvcjogaHJhLWNvbG9yKCRyZWQpXG4qL1xuXG4kdGhlbWUtZ3JlZW46ICNkZmQyNjk7XG4kdGhlbWUtY29sb3I6ICR0aGVtZS1ncmVlbjtcbiRibHVlOiBibHVlO1xuJGN5YW46IGN5YW47XG4kZ3JleTogZ3JleTtcbiRyZWQ6IGNydXNoO1xuJG9yYW5nZTogYmxhemU7XG4keWVsbG93OiBzdW5zZXQsIDYwO1xuJGdyZWVuOiBzZWFmb2FtO1xuJGxpZ2h0LWdyZWVuOiBzZWF3ZWVkO1xuJGRhcmstZ3JlZW46IG1hcmluZTtcbiRicm93bjogYnJvd247XG4kcHVycGxlOiBwdXJwbGU7XG4kc3Vuc2V0OiBzdW5zZXQ7XG4kcGluazogcGluaztcblxuJG5ld2dyZXk6IG5ld2dyZXk7XG4kbmV3Ymx1ZTogbmV3Ymx1ZTtcbiRuZXdjeWFuOiBuZXdjeWFuO1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gaG1hJ3MgQ29sb3VyIFBhbGV0dGVcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiRjb2xvcnM6IChcbiAgICBibHVlOiAoNTogI2YzZmJmZSwgMTA6ICNlMmY0ZmIsIDIwOiAjYmFlNWY1LCA0MDogIzcxYzhmMSwgNjA6ICMzMmI2ZTksIDgwOiAjMDA5OWQzLCAxMDA6ICMwMDc0YWEsIDEyMDogIzA2NGM3YyksXG4gICAgY3J1c2g6ICg1OiAjZmZmN2Y2LCAxMDogI2ZlZjBlZCwgMjA6ICNmZGRmZGMsIDQwOiAjZmFjMWJhLCA2MDogI2Y0ODI3MiwgODA6ICNmMTYxNGYsIDEwMDogI2UzMjcyMiwgMTEwOiNjMTNmMmIsIDEyMDogI2E3MWUyMiksXG4gICAgY3lhbjogKDU6ICNmMmY5ZjksIDEwOiAjZTZmNGY0LCAyMDogI2NjZWFlYSwgNDA6ICM5YWQ3ZDYsIDYwOiAjNjhjNWM0LCA4MDogIzM2YjFiMCwgMTAwOiAjMDI5ZjlkLCAxMjA6ICMwMjZmNmYpLFxuICAgIGJsYXplOiAoNTogI2ZmZjdmMywgMTA6ICNmZmYxZTksIDIwOiAjZmNlMWQzLCA0MDogI2ZjYzVhNywgNjA6ICNmN2E3N2IsIDgwOiAjZjY4OTRkLCAxMDA6ICNmMjZiMjEsIDEyMDogI2I3M2UyNSksXG4gICAgZ3JleTogKDU6ICNmYWZiZmIsIDEwOiAjZWNlZmYwLCAyMDogI2U0ZTdlOSwgNDA6ICNhOGIyYjcsIDYwOiAjODI4ZDkzLCA4MDogIzVCNjY3MCwgMTAwOiAjM2Q0NjRkLCAxMjA6ICMxNDFlMjUpLFxuICAgIHNlYWZvYW06ICg1OiAjZWZmOWY4LCAxMDogI2U0ZjdmMywgMjA6ICNjZmVkZTgsIDQwOiAjYTVlYWRiLCA2MDogIzYxZDZiOCwgODA6ICMyZmQyYTgsIDEwMDogIzFlYWQ4YSwgMTIwOiAjMGI3MDVkKSxcbiAgICBzZWF3ZWVkOiAoNTogI2Y4ZmJmNiwgMTA6ICNmMmY4ZWQsIDIwOiAjZTNmMGQ5LCA0MDogI2NiZTRiNSwgNjA6ICNiMGQ3OGUsIDgwOiAjOTVjYjZhLCAxMDA6ICM3YWMxNDIsIDEyMDogIzQ5OTE0MiksXG4gICAgbWFyaW5lOiAoNTogI2Y3ZjlmMywgMTA6ICNmMWY0ZTgsIDIwOiAjZTRlYWQyLCA0MDogI2NiZDlhNywgNjA6ICNiZmRiODUsIDgwOiAjYWVkMjU1LCAxMDA6ICM3YWExM2UsIDEyMDogIzRjNzMzNiksXG4gICAgcGViYmxlOiAoNTogI2ZiZmNmYywgMTA6ICNmNWY2ZjYsIDIwOiAjZTllOGU5LCA0MDogI2Q1ZDRkNSwgNjA6ICNhYWFhYWIsIDgwOiAjN2M3YzgxLCAxMDA6ICM1NDUzNTUsIDEyMDogIzI4MjcyYiksXG4gICAgc3Vuc2V0OiAoNTogI2ZmZmRlZSwgMTA6ICNmZmZiZGIsIDIwOiAjZmRmN2I0LCA0MDogI2ZmZjU3ZSwgNjA6ICNmZmYxMDAsIDgwOiAjZmJhZDFjLCAxMDA6ICNmNDdmMWYsIDEyMDogI2M5NTQyOCksXG4gICAgYnJvd246ICg1OiAjZjdmNGYyLCAxMDogI2VhZTRlMSwgMjA6ICNkOGNlY2IsIDQwOiAjYmFhYmE1LCA2MDogIzk2ODM3YywgODA6ICM3NzVkNTMsIDEwMDogIzU5MzgyYywgMTIwOiAjMmYxODBkKSxcbiAgICBwdXJwbGU6ICg1OiAjZjJlZmY3LCAxMDogI2U4ZGZlZiwgMjA6ICNkN2M5ZTMsIDQwOiAjYzFhZWQ1LCA2MDogI2EwODViZSwgODA6ICM3YjYxYWEsIDEwMDogIzY2NGZhMSwgMTIwOiAjNDIyZTg1KSxcbiAgICBwaW5rOiAoNTogI2ZlZjRmOCwgMTA6ICNmY2U3ZWYsIDIwOiAjZmFkYWUxLCA0MDogI2Y0YTJjMiwgNjA6ICNlZDczYTQsIDgwOiAjZTk0NTg2LCAxMDA6ICNlMzE1NjcsIDEyMDogI2FiMWQ0MSksXG5cbiAgICAvLyBOZXcgVUkgS2l0IGNvbG9ycyAtIG5ldyBwcmVmaXggd2lsbCBiZSByZW1vdmVkIG9uY2UgdGhlIG1pZ3JhdGlvbiBpcyBjb21wbGV0ZWRcbiAgICAvLyBJdCBhbHNvIG1ha2VzIHN1cmUgdGhhdCBjb2xvciB2YXJpYWJsZXMgYXJlIHVzZWRcbiAgICBuZXdncmV5OiAoNTogI2ZjZmNmYywgMTA6ICNmN2Y3ZjcsIDIwOiAjZjJmMmYyLCA0MDogI2U5ZTllOSwgNTA6ICNjN2M3YzcsIDYwOiAjYTlhOWE5LCA3MDogIzgwODA4MCwgODA6ICM2YjZiNmIsMTAwOiAjNGI0YjRiLDEyMDojMjkyOTI5KSxcbiAgICBuZXdibHVlOiAoNTogI2YwZjZmYSwgMTA6ICNlMmVlZjUsIDIwOiAjYjhkNWU3LCA0MDogIzhlYmJkNywgNTA6ICM2OWExYzcsIDU1OiAjNGY4ZmJkLCA2NTogIzM4N2ViMywgNzA6ICMyZjcyYTgsIDgwOiAjMjU2Mjk3LCAxMDA6ICMxZDUyODUsIDEyMDogIzEwMzc2NiksXG4gICAgbmV3Y3lhbjogKDU6ICNmMGY2ZmEsIDEwOiAjZTJlZWY1LCAyMDogI2I4ZDVlNywgNDA6ICM4ZWJiZDcsIDUwOiAjNjlhMWM3LCA1NTogIzRmOGZiZCwgNjU6ICMzODdlYjMsIDEwMDogIzJmNzJhOCwgMTIwOiAjMjU2Mjk3LCAxNDA6ICMxZDUyODUsIDE2MDogIzEwMzc2NiksXG4pO1xuXG5AZnVuY3Rpb24gaHJhLWNvbG9yKCRjb2xvciwgJHZhbHVlOiAxMDApIHtcbiAgICAkc2VsZWN0ZWRDb2xvcjogJGNvbG9yO1xuXG4gICAgQGlmICh0eXBlLW9mKCRjb2xvcikgPT0gJ2xpc3QnKSB7XG4gICAgICAgICRzZWxlY3RlZENvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgICAgICAgJHZhbHVlOiBudGgoJGNvbG9yLCAyKTtcbiAgICB9XG5cbiAgICAkY29sb3ItbWFwOiBtYXAtZ2V0KCRjb2xvcnMsICRzZWxlY3RlZENvbG9yKTtcbiAgICBAaWYgKCRjb2xvci1tYXAgPT0gbnVsbCkge1xuICAgICAgICBAZXJyb3IgJHNlbGVjdGVkQ29sb3IgKyAnIGlzIG5vdCBwYXJ0IG9mIHRoZSBjb2xvciBwYWxldHRlJztcbiAgICB9XG4gICAgQHJldHVybiBtYXAtZ2V0KCRjb2xvci1tYXAsICR2YWx1ZSk7XG59XG5cbiRibGFjazogaHJhLWNvbG9yKCRncmV5LCAxMjApO1xuJHdoaXRlOiByZ2IoMjU1LCAyNTUsIDI1NSk7XG4kY29sb3ItZ3JheS10cmFuc3BhcmVudDogdHJhbnNwYXJlbnRpemUoaHJhLWNvbG9yKCRncmV5KSwgMC44KTtcbiRob3Zlci1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCAyMCk7XG5cblxuLyogKioqKiAqL1xuJHN1Y2Nlc3MtY29sb3I6IGhyYS1jb2xvcigkZ3JlZW4pO1xuJHdhcm5pbmctY29sb3I6IGhyYS1jb2xvcigkeWVsbG93KTtcbiRhbGVydC1jb2xvcjogaHJhLWNvbG9yKCRyZWQpO1xuJGNvbG9yLWludmFsaWQ6IGhyYS1jb2xvcigkcmVkKTtcbiRkaXNhYmxlZC1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCAxMCk7XG4kZGlzYWJsZWQtYm9yZGVyOiBocmEtY29sb3IoJGdyZXksIDQwKTtcbiRjb2xvci1ocmEtYW5jaG9yOiBocmEtY29sb3IoJGJsdWUpO1xuJGRpc2FibGVkLWZvcmUtY29sb3I6IGhyYS1jb2xvcigkZ3JleSwgNDApO1xuXG4vKiAqIENoYXJ0cyBDb2xvcnMgKi9cbiRzdGFja2VkLXRvb2x0aXAtY2lyY2xlLWJnOiAjM2Y0MDQyO1xuJGNoYXJ0LXRvb2x0aXAtY2lyY2xlOiAjZmY4OTRjO1xuJGRvbnV0LWNvdW50OiAjZmY2YjU3O1xuXG4vKiBpbmZvIHRleHQgYmFja2dyb3VuZCAqL1xuJGluZm8tYmFja2dyb3VuZDogI2ZmZmRlNjtcblxuXG4vKiBVc2UgZm9sbG93aW5nIGNsYXNzZXMgZm9yIGFlc3RoZXRpY3Mgb25seSAtIE5ldyBVSSBLSVQgKi9cbi8vIFN0YW5kYXJkaXNlIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mIGRpcmVjdCBjb2xvcnNcbi8qIENvbG9yIE1hcHBpbmcqL1xuJHByaW1hcnktYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDcwKTtcbiRwcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCAxMDApO1xuJHByaW1hcnktdGV4dDokd2hpdGU7XG5cbiRkZWxldGUtYmFja2dyb3VuZDogaHJhLWNvbG9yKCRyZWQsIDExMCk7XG5cbiRzZWNvbmRhcnktdGV4dDpocmEtY29sb3IoJG5ld2JsdWUsIDU1KTtcbiRzZWNvbmRhcnktYmFja2dyb3VuZDokd2hpdGU7XG4kc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCA1KTtcbiRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2dyZXksIDUwKTtcbiRzZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQ6JHNlY29uZGFyeS10ZXh0O1xuXG4kZmxhdC1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA4MCk7XG4kZmxhdC1ob3ZlcjogaHJhLWNvbG9yKCRuZXdncmV5LCAxMDApO1xuJGZsYXQtZGlzYWJsZWQ6IGhyYS1jb2xvcigkbmV3Z3JleSwgNzApO1xuXG4kYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ6IGhyYS1jb2xvcigkbmV3Ymx1ZSwgODApO1xuJGFjdGlvbi1kaXNhYmxlZDogaHJhLWNvbG9yKCRuZXdncmV5LCA1NSk7XG4kYWN0aW9uLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCA1MCk7XG4vKmVuZHMqL1xuXG4kYnV0dG9uLXByaW1hcnktdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWJhY2tncm91bmQ7XG4kYnV0dG9uLXByaW1hcnktaG92ZXItYmFja2dyb3VuZC1jb2xvcjokcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1wcmltYXJ5LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRidXR0b24tZGVsZXRlLWJhY2tncm91bmQtY29sb3I6ICRkZWxldGUtYmFja2dyb3VuZDtcbiRidXR0b24tcHJpbWFyeS1kaXNhYmxlZC1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcblxuLy8gU2Vjb25kYXJ5IGJ1dHRvbnMgYW5kIHNlY29uZGFyeSBhY3Rpb24gYnV0dG9ucyBzaGFyZSBjb2xvcnMgXG4kYnV0dG9uLXNlY29uZGFyeS1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiRidXR0b24tc2Vjb25kYXJ5LXRleHQtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiRidXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWhvdmVyLXRleHQtY29sb3I6ICRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLXNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuXG4kYnV0dG9uLWZsYXQtYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4kYnV0dG9uLWZsYXQtY29sb3I6ICRmbGF0LWNvbG9yO1xuJGJ1dHRvbi1mbGF0LWhvdmVyLWNvbG9yOiRmbGF0LWhvdmVyO1xuJGJ1dHRvbi1mbGF0LWRpc2FibGVkLWNvbG9yOiAkZmxhdC1kaXNhYmxlZDtcblxuJGJ1dHRvbi1hY3Rpb24tYmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24tdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1hY3Rpb24taG92ZXItYmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24taG92ZXItdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1hY3Rpb24tZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24tZGlzYWJsZWQtdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1hY3Rpb24tZGVsZXRlLWJhY2tncm91bmQtY29sb3I6JGRlbGV0ZS1iYWNrZ3JvdW5kO1xuXG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1kaXNhYmxlZC1jb2xvcjogJGFjdGlvbi1kaXNhYmxlZDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuXG4kdW5zZWxlY3RlZC1jaG9pY2UtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRzZWxlY3RlZC1jaG9pY2UtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcblxuJHJhZGlvLWxhYmVsLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kdG9nZ2xlLW9uLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiR0b2dnbGUtb2YtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJHRvZ2dsZS1oZWFkLWNvbG9yOiAkd2hpdGU7XG5cbiRpbnB1dC10ZXh0LWxhYmVsLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDEyMCk7XG4kaW5wdXQtdGV4dC1ib3JkZXItY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgNDApO1xuJGlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgNjApO1xuJGlucHV0LXRleHQtYWN0aXZlLWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA4MCk7XG4kaW5wdXQtdGV4dC1hY3RpdmUtdGV4dC1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCAxMjApO1xuJGlucHV0LXRleHQtZXJyb3ItYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJHJlZCwgMTEwKTtcbiRpbnB1dC10ZXh0LWRpc2FibGVkLWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA1MCk7XG4kaW5wdXQtdGV4dC1lcnJvci1tZXNzYWdlLWNvbG9yOiAkaW5wdXQtdGV4dC1lcnJvci1ib3JkZXItY29sb3I7XG4kaW5wdXQtdGV4dC1kaXNhYmxlZC1jb2xvcjogJGlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I7XG4kaW5wdXQtdGV4dC1sYWJlbC1kaXNhYmxlZC1jb2xvcjogJGlucHV0LXRleHQtYm9yZGVyLWNvbG9yO1xuJGlucHV0LXRleHQtZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I7IiwiQGltcG9ydCAnbWl4aW5zJztcbkBpbXBvcnQgJ2NvbG9ycyc7XG5cbi8qIFVzZWQgZm9yIGdyaWRzIGFuZCBtYXJnaW5zICovXG5cbiRzbWFsbC1zaXplOiA0ICFkZWZhdWx0O1xuJGxhcmdlLXNpemU6IDEyICFkZWZhdWx0O1xuJHNtYWxsLXNxdWFyZTogcmVtLWNhbGMoJHNtYWxsLXNpemUpICFkZWZhdWx0O1xuJGxhcmdlLXNxdWFyZTogcmVtLWNhbGMoJGxhcmdlLXNpemUpICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWdyYXk6IHRyYW5zcGFyZW50aXplKGhyYS1jb2xvcigkZ3JleSwgNDApLCAwLjgpO1xuJHRyYW5zcGFyZW50LXdoaXRlOiB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNik7XG4kYW5pbWF0aW9uLXRpbWluZzogMC4yNXM7XG4kcmFkLWdyYWQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGNlbnRlciwgdHJhbnNwYXJlbnRpemUoaHJhLWNvbG9yKCRncmV5KSwgMC41KSA4MCUsIHRyYW5zcGFyZW50aXplKCRibGFjaywgMC41KSAxMDAlKTtcbiRsaW5lYXItZ3JhZDogcmdiYSgkYmxhY2ssIDAuNyk7XG5cbiRzY3JvbGwtYmFyLXdpZHRoOiAkc21hbGwtc3F1YXJlICogMjtcbiRzY3JvbGwtYmFyLXdpZHRoLWZpcmVmb3g6IHJlbS1jYWxjKDE3KTtcbiRzY3JvbGwtYmFyLXdpZHRoLWVkZ2U6IHJlbS1jYWxjKDE3KTtcbiRzY3JvbGwtYmFyLXdpZHRoLWllOiByZW0tY2FsYygxNyk7XG5cbi8qXG4gIGZvbnQgc2l6ZXNcbiAqL1xuJGljb24tZm9udC1zaXplLXNtYWxsOiAkc21hbGwtc3F1YXJlICogMyAhZGVmYXVsdDsgLy8gMTJweFxuJGljb24tZm9udC1zaXplLW1lZGl1bTogJHNtYWxsLXNxdWFyZSAqIDQgIWRlZmF1bHQ7IC8vIDE2cHhcbiRpY29uLWZvbnQtc2l6ZS1yZWd1bGFyOiAkc21hbGwtc3F1YXJlICogNSAhZGVmYXVsdDsgLy8gMjBweFxuJGljb24tZm9udC1zaXplLWxhcmdlOiAkc21hbGwtc3F1YXJlICogNjsgLy8gMjRweFxuJGljb24tZm9udC1zaXplLXgtbGFyZ2U6ICRzbWFsbC1zcXVhcmUgKiA3OyAvLyAyOHB4XG4kaWNvbi1mb250LXNpemUtcGxhY2Vob2xkZXI6ICRsYXJnZS1zcXVhcmUgKiA3O1xuJGZvbnQtc2l6ZTogJGljb24tZm9udC1zaXplLW1lZGl1bSAhZGVmYXVsdDsgLy8gMTNweFxuJGZvbnQtc2l6ZS1tZWRpdW06ICRpY29uLWZvbnQtc2l6ZS1tZWRpdW07IC8vMTZweFxuJGZvbnQtc2l6ZS1sYXJnZTogJGljb24tZm9udC1zaXplLXJlZ3VsYXI7XG4kZm9udC1zaXplLXgtbGFyZ2U6ICRpY29uLWZvbnQtc2l6ZS14LWxhcmdlO1xuJGZvbnQtc2l6ZS1oZWFkZXI6IDE0cHg7XG5cblxuJGZvbnQtd2VpZ2h0LWxpZ2h0OiAzMDA7IC8vIFNvdXJjZSBTYW5zIFBybyBMaWdodFxuJGZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDsgLy8gU291cmNlIFNhbnMgUHJvIExpZ2h0XG4kZm9udC13ZWlnaHQtc2VtaS1ib2xkOiA2MDA7IC8vIFNvdXJjZSBTYW5zIFBybyBTZW1pIEJvbGRcbiRmb250LXdlaWdodC1ib2xkOiA3MDA7IC8vIFNvdXJjZSBTYW5zIFBybyBCb2xkXG5cblxuXG4vKlxuICogSGVhZGVyIHNpemVcbiAqL1xuXG4kaGVhZGVyLWhlaWdodDogcmVtLWNhbGMoNTIpICFkZWZhdWx0O1xuJGhlYWRlci10ZXh0LWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDggIWRlZmF1bHQ7IC8vMzJweFxuJHN1Yi1uYXYtaGVpZ2h0OiAwcmVtICFkZWZhdWx0OyAvLyAwcHhcbiRzZWFyY2gtYmFyLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDE1ICFkZWZhdWx0O1xuLy8kcGFnaW5hdGlvbi1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAyNSAhZGVmYXVsdDtcbiRjaGFydHMtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogNzQgIWRlZmF1bHQ7XG4kbWFpbi1oZWFkZXItaGVpZ2h0OiAkaGVhZGVyLWhlaWdodCskc3ViLW5hdi1oZWlnaHQgIWRlZmF1bHQ7XG4kdmlydHVhbC1ncm91cC1pbmRpY2F0b3ItaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogNztcbiRoZWFkZXItc2lkZS1tYXJnaW46IHJlbS1jYWxjKDI0KTtcblxuLypcbiAqIERldmljZSBHcm91cCBzZXR0aW5nc1xuICovXG5cbiRkZXZpY2UtZ3JvdXAtcGFkZGluZy1sZWZ0OiAkc21hbGwtc3F1YXJlICogNjtcbiRkZXZpY2UtZ3JvdXAtaXRlbXMtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogOTtcbiRkZXZpY2UtZ3JvdXAtd2lkdGg6ICRsYXJnZS1zcXVhcmUgKiAyODtcbiRkZXZpY2UtZ3JvdXAtbWluLXdpZHRoOiAkc21hbGwtc3F1YXJlICogNTU7XG4kZGV2aWNlLWdyb3VwLW1heC13aWR0aDogJHNtYWxsLXNxdWFyZSAqIDE0MDtcbiRkZXZpY2UtZ3JvdXAtbWFyZ2luLXRvcDogJHNlYXJjaC1iYXItaGVpZ2h0O1xuJGRldmljZS1ncm91cC1idXR0b24td2lkdGg6ICRsYXJnZS1zcXVhcmUgKiAyMTtcbiRkZXZpY2UtZ3JvdXAtYnV0dG9uLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDExO1xuJGRldmljZS1ncm91cC1idXR0b24tYm9yZGVyOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCAyMCk7XG5cbi8qXG4gKiBCb3JkZXIgc2V0dGluZ3NcbiAqL1xuXG4kYm9yZGVyLWJhc2U6IDFweCBzb2xpZCByZ2IoMjA0LCAyMDQsIDIwNCk7XG4kYm9yZGVyLXJhZGl1cy1zbWFsbDogM3B4O1xuJGJvcmRlci1yYWRpdXMtYmFzZTogNHB4O1xuJGJvcmRlci1yYWRpdXMtbGFyZ2U6IDZweDtcblxuLypcbiAqIFNoYWRvd3MgZ28gYnkgbGV2ZWxcbiAqL1xuXG4kc2hhZG93OiAwIDNweCA5cHggcmdiYSgwLCAwLCAwLCAuNSk7XG4kc2hhZG93LTE6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4kc2hhZG93LXNtYWxsOiAwIDFweCA2cHggcmdiYSgwLCAwLCAwLCAwLjI0KTtcbiRzaGFkb3ctaGVhZGVyOiAwcHggMXB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctc2VhcmNoLWhlYWRlcjogOHB4IDFweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWxpZ2h0OiAxcHggMXB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4kc2hhZG93LWxpZ2h0LWJvdHRvbS1vbmx5OiAwcHggMXB4IDhweCByZ2JhKCRibGFjaywgMC4xMyk7XG4kc2hhZG93LWFib3ZlOiAwIC0xcHggMTNweCAycHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1hYm92ZS1sZWZ0OiAtNnB4IDBweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWJlbG93OiAwcHggOXB4IDhweCAtNXB4IHJnYmEoMTU4LCAxNTgsIDE1OCwgMC4yNSk7XG4kc2hhZG93LWRyb3Bkb3duOiAwIDFweCAxM3B4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctZGlhbG9nOiAwIDhweCAyMHB4IDZweCByZ2JhKCRibGFjaywgMC42KTtcbiRzaGFkb3ctZGlhbG9nLXN1ZmZpeDogMHB4IDE2cHggMjBweCAzcHggcmdiYSgkYmxhY2ssIDAuNik7XG4kc2hhZG93LWxheW91dDogNnB4IDBweCA5cHggMHB4IHJnYmEoJGJsYWNrLCAwLjIpO1xuJHNoYWRvdy1zYXZlZC1zZWFyY2hlczogNHB4IDRweCA4cHggLTJweCByZ2JhKDY3LDcwLDc0LC4xMyk7XG4kc2hhZG93LWNoYXJ0LWNhcmQ6IDAgNnB4IDE2cHggcmdiYSgyMCwzMCwzNywwLjA4KTtcbiRzaGFkb3ctY29uZmlnLWNhcmQ6IDAgMCAyNHB4IDAgcmdiYSgyMCwzMCwzNywwLjEpO1xuXG4vKlxuICogUGFkZGluZyBzZXR0aW5nc1xuICovXG5cbiRib2R5LXBhZGRpbmc6ICRsYXJnZS1zcXVhcmUgKiAyO1xuJHBhZGRpbmctc21hbGw6ICRsYXJnZS1zcXVhcmU7XG4kYmFzZS1wYWRkaW5nOiAkc21hbGwtc3F1YXJlICogNDsgLy8gMTZweFxuJGhhbGYtYmFzZS1wYWRkaW5nOiAkYmFzZS1wYWRkaW5nIC8gMjtcbiRtb2RhbC1wYWRkaW5nOiAkYmFzZS1wYWRkaW5nO1xuJGxheW91dC1wYWRkaW5nOiAoJGJhc2UtcGFkZGluZyAqIDIpICgkYm9keS1wYWRkaW5nICogMikgKCRiYXNlLXBhZGRpbmcgKiAyKSAoJGJvZHktcGFkZGluZyAqIDIpO1xuJHBhZGRpbmctYmFzZS12ZXJ0aWNhbDogNnB4O1xuJHBhZGRpbmctYmFzZS1ob3Jpem9udGFsOiAkc21hbGwtc3F1YXJlICogMztcbiRwYWRkaW5nLWxhcmdlLXZlcnRpY2FsOiAxMHB4O1xuJHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDogICRzbWFsbC1zcXVhcmUgKiA0O1xuJHBhZGRpbmctbWVkaXVtLXZlcnRpY2FsOiAxNHB4O1xuJHBhZGRpbmctc21hbGwtdmVydGljYWw6IDVweDtcbiRwYWRkaW5nLXNtYWxsLWhvcml6b250YWw6IDEwcHg7XG5cbi8qXG4gKiBJbnB1dHNcbiAqL1xuJGlucHV0LXBhZGRpbmc6ICRzbWFsbC1zcXVhcmUgJHNtYWxsLXNxdWFyZSAqIDI7XG4kaW5wdXQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogODtcblxuLypcbiAqIFRvb2xUaXBzXG4gKi9cblxuLy8gVG9vbHRpcHNcbiR0b29sdGlwLW1heC13aWR0aDogMjUwcHggIWRlZmF1bHQ7XG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCkgIWRlZmF1bHQ7XG4kdG9vbHRpcC10ZXh0LWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuJHRvb2x0aXAtZGVsYXk6IDAuNHMgIWRlZmF1bHQ7XG4kdG9vbHRpcC1kdXJhdGlvbjogMC4xcyAhZGVmYXVsdDtcblxuLypcbiAqIEFjdGlvbiBiYXIgc2l6ZXNcbiAqL1xuXG4kZGV2aWNlLWFjdGlvbi1iYXItaGVpZ2h0OiAkbGFyZ2Utc3F1YXJlICogNTtcbiRjb3VudC1jb250YWluZXItcGFkZGluZzogKCRsYXJnZS1zcXVhcmUgKiAyKSAoJHNtYWxsLXNxdWFyZSAqIDQpICgkbGFyZ2Utc3F1YXJlICogMikgKCRzbWFsbC1zcXVhcmUgKiA0KTtcblxuLyoqXG4qICBEZXZpY2UgZ3JpZCBzaXplc1xuKi9cblxuJHJvdy1hYm92ZS1ncmlkLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDE0O1xuJGNoZWNrLWNlbGwtcGFkZGluZzogMCAwIDAgJHNtYWxsLXNxdWFyZSoyO1xuJGRldmljZS1ncmlkLW1pbi1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3MTtcblxuLypcbiAqIEZvY3VzIGJvcmRlclxuICovXG5cbiRocmEtZm9jdXMtb3V0bGluZTogMnB4IHNvbGlkIGhyYS1jb2xvcigkY3lhbik7XG5cbi8qXG4gKiBCb3JkZXJcbiAqL1xuXG4kaHJhLWJvcmRlcjogMXB4IHNvbGlkIGhyYS1jb2xvcigkZ3JleSwgMjApO1xuJGhyYS1ib3JkZXItZXJyb3I6IDFweCBzb2xpZCBocmEtY29sb3IoJHJlZCk7XG4kaHJhLWJvcmRlci1pbnB1dC1kaXNhYmxlZDogMXB4IHNvbGlkIGhyYS1jb2xvcigkZ3JleSwgNDApO1xuXG5cbi8qXG4gKiBQb3AtdXBcbiovXG4kaHJhLXBvcHVwLWJlYWstc2l6ZTogJHNtYWxsLXNxdWFyZSozO1xuJGhyYS1wb3B1cC1iZWFrLWJvdHRvbS1jZW50ZXI6IGNhbGMoNTAlIC0gKDEuMjVyZW0gLyAyKSk7XG4kcG9wLXVwLWZvb3Rlci1oZWlnaHQ6ICRsYXJnZS1zcXVhcmUgKiA1O1xuJHBvcC11cC10aXRsZS1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxMztcbiRwb3AtdXAtdGl0bGUtbWFqb3ItaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTQ7XG4vLyBzdHlsZWd1aWRlOmlnbm9yZTplbmRcblxuLypcbiogU3RhdHVzIE5vdGlmaWNhdGlvblxuKi9cbiRocmEtc3RhdHVzLW5vdGlmaWNhdGlvbi13aWR0aDogJHNtYWxsLXNxdWFyZSAqIDgzO1xuJGhyYS1zdGF0dXMtbm90aWZpY2F0aW9uLXRvcDogJHNtYWxsLXNxdWFyZSAqIDE0O1xuJGhyYS1zdGF0dXMtbm90aWZpY2F0aW9uLWJvdHRvbTogJHNtYWxsLXNxdWFyZSAqIDE1O1xuXG5cbi8qXG4gIFJvdW5kIGJ1dHRvbiBzaXplc1xuICovXG4gJHJvdW5kLXNtYWxsOiAkc21hbGwtc3F1YXJlICogNztcbiAkcm91bmQtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogODtcbiAkcm91bmQtbGFyZ2U6ICRzbWFsbC1zcXVhcmUgKiA5O1xuXG4vKlxuICogSW1hZ2UgSWNvbiBTaXplc1xuICovXG5cbiRpbWctaWNvbi1zaXplLXNtYWxsOiAkc21hbGwtc3F1YXJlICogODtcbiRpbWctaWNvbi1zaXplLW1lZGl1bTogJHNtYWxsLXNxdWFyZSAqIDEwO1xuXG5cbiRiZXppZXI6IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG5cblxuLyoqIE1vZGFsIHNpemVzICoqL1xuJG1vZGFsLXRpdGxlLWhlaWdodDogcmVtLWNhbGMoNTIpO1xuJG1vZGFsLWZvb3Rlci1oZWlnaHQ6IHJlbS1jYWxjKDYwKTtcbiIsIkBpbXBvcnQgXCIuLi8uLi9zaGFyZWQvc3R5bGVzL2Jhc2Uvc2V0dGluZ3NcIjtcbjpob3N0IHtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBkaXNwbGF5OiBibG9jaztcbiAgI2xvZ28tY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi5sb2dpbi1mb3JtLXRpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IHJlbS1jYWxjKDMwKTtcbiAgY29sb3I6IGhtYS1jb2xvcigkZ3JleSwgODApO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5idG4tbG9naW4ge1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6ICMwMDA7XG4gIGhlaWdodDogcmVtLWNhbGMoNDIpO1xuICBiYWNrZ3JvdW5kOiAkdGhlbWUtZ3JlZW47XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xufVxuXG4uZm9ybS1saW5rLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICBhIHtcbiAgICBsaW5lLWhlaWdodDogMjtcbiAgfVxuICAuZm9yZ2V0LXBhc3Mge1xuICAgIGNvbG9yOiBobWEtY29sb3IoJGdyZXksIDYwKTtcbiAgfVxuICAucmVnaXN0ZXItdXNlciB7XG4gICAgY29sb3I6IGhtYS1jb2xvcihibGF6ZSwgODApO1xuICB9XG59XG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { first } from 'rxjs/operators';\nimport { MustMatch } from 'src/app/helpers/must-match.validators';\nimport { AuthenticationService } from 'src/app/services/authentication.service';\n\n@Component({\n templateUrl: './reset-password.component.html',\n styleUrls: ['./reset-password.component.scss']\n})\nexport class ResetPasswordComponent implements OnInit {\n resetPasswordForm: FormGroup;\n loading = false;\n submitted = false;\n errorMessage: string[] = [];\n\n private _token: string;\n private _userId: string;\n constructor(\n private formBuilder: FormBuilder,\n private route: ActivatedRoute,\n private router: Router,\n private authenticationService: AuthenticationService,\n ) { \n this.route.queryParams.subscribe(\n params => {\n this._token = params['token'];\n this._userId = params['id'];\n });\n }\n\n ngOnInit() {\n this.resetPasswordForm = this.formBuilder.group({\n newPassword: ['', [Validators.required, Validators.minLength(6)]],\n confirmPassword: ['', Validators.required],\n token: this._token,\n userId: this._userId\n }, {\n validator: MustMatch('newPassword', 'confirmPassword')\n });\n }\n\n // convenience getter for easy access to form fields\n get f() { return this.resetPasswordForm.controls; }\n\n onSubmit() {\n this.submitted = true;\n\n // stop here if form is invalid\n if (this.resetPasswordForm.invalid) {\n return;\n }\n\n this.errorMessage = [];\n this.loading = true;\n this.authenticationService.resetPassword(this.resetPasswordForm.value)\n .pipe(first())\n .subscribe(\n () => {\n this.router.navigate(['/']);\n },\n error => {\n const _this = this;\n if (error.error instanceof Array) {\n error.error.map(err => _this.errorMessage.push(err.value));\n } else if (typeof error.error === 'string') {\n this.errorMessage.push(error.error);\n } else {\n this.errorMessage.push(error);\n }\n this.loading = false;\n });\n }\n}\n","export default \"/*\\nHigh DPI screens (retina macbooks, highresolution laptops, etc)\\n*/\\n/* Firefox specific styles go here */\\n/*\\nCOMMON COLOR NAMES\\n\\nThese colors are mapped to the names from the official colors.\\nInstead of having names like `crush` or `blaze`, developers will use their common, non-marketized name.\\neg. $red: crush\\n $orange: blaze\\n\\nThen, use the `hra-color` function to get the color\\neg. color: hra-color($red)\\n*/\\n/* **** */\\n/* * Charts Colors */\\n/* info text background */\\n/* Use following classes for aesthetics only - New UI KIT */\\n/* Color Mapping*/\\n/*ends*/\\n/* Used for grids and margins */\\n/*\\n font sizes\\n */\\n/*\\n * Header size\\n */\\n/*\\n * Device Group settings\\n */\\n/*\\n * Border settings\\n */\\n/*\\n * Shadows go by level\\n */\\n/*\\n * Padding settings\\n */\\n/*\\n * Inputs\\n */\\n/*\\n * ToolTips\\n */\\n/*\\n * Action bar sizes\\n */\\n/**\\n* Device grid sizes\\n*/\\n/*\\n * Focus border\\n */\\n/*\\n * Border\\n */\\n/*\\n * Pop-up\\n*/\\n/*\\n* Status Notification\\n*/\\n/*\\n Round button sizes\\n */\\n/*\\n * Image Icon Sizes\\n */\\n/** Modal sizes **/\\n:host {\\n height: 100vh;\\n width: 100vw;\\n display: block; }\\n:host #logo-container {\\n padding: 0 !important; }\\n.login-form-title {\\n width: 100%;\\n display: block;\\n font-size: 1.875rem;\\n color: hma-color(grey, 80);\\n line-height: 1.2;\\n text-align: center; }\\n.btn-login {\\n width: 100%;\\n color: #000;\\n height: 2.625rem;\\n background: #dfd269;\\n font-size: 1.125rem; }\\n.form-link-actions {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-end;\\n font-size: 0.875rem; }\\n.form-link-actions a {\\n line-height: 2; }\\n.form-link-actions .forget-pass {\\n color: hma-color(grey, 60); }\\n.form-link-actions .register-user {\\n color: hma-color(blaze, 80); }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21lZGlhcXVlcmllcy5zY3NzIiwic3JjL2FwcC9jb250cm9scy9zZXQtcGFzc3dvcmQvc2V0LXBhc3N3b3JkLmNvbXBvbmVudC5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9zdHlsZXMvYmFzZS9fbWl4aW5zLnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvc2hhcmVkL3N0eWxlcy9iYXNlL19jb2xvcnMuc2NzcyIsIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX3NldHRpbmdzLnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvY29udHJvbHMvc2V0LXBhc3N3b3JkL3NldC1wYXNzd29yZC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4QkE7O0NDNUJDO0FDMEtELG9DQUFBO0FDNUtBOzs7Ozs7Ozs7O0NGY0M7QUUrREQsU0FBQTtBQVVBLG9CQUFBO0FBS0EseUJBQUE7QUFJQSwyREFBQTtBQUVBLGlCQUFBO0FBb0JBLE9BQUE7QUNuSEEsK0JBQUE7QUFpQkE7O0VISUU7QUdtQkY7O0VIaEJFO0FHOEJGOztFSDNCRTtBR3lDRjs7RUh0Q0U7QUcrQ0Y7O0VINUNFO0FHa0VGOztFSC9ERTtBR2lGRjs7RUg5RUU7QUdvRkY7O0VIakZFO0FHNEZGOztFSHpGRTtBR2dHRjs7Q0g3RkM7QUdxR0Q7O0VIbEdFO0FHd0dGOztFSHJHRTtBRzhHRjs7Q0gzR0M7QUdxSEQ7O0NIbEhDO0FHMEhEOztFSHZIRTtBRzhIRjs7RUgzSEU7QUdzSUYsa0JBQUE7QUN6TUE7RUFDRSxhQUFhO0VBQ2IsWUFBWTtFQUNaLGNBQWMsRUFBQTtBQUhoQjtJQUtJLHFCQUFvQixFQUFBO0FBSXhCO0VBQ0UsV0FBVztFQUNYLGNBQWM7RUFDZCxtQkgwRHVEO0VHekR2RCwwQkFBMkI7RUFDM0IsZ0JBQWdCO0VBQ2hCLGtCQUFrQixFQUFBO0FBR3BCO0VBQ0UsV0FBVztFQUNYLFdBQVc7RUFDWCxnQkhpRHVEO0VHaER2RCxtQkZabUI7RUVhbkIsbUJIK0N1RCxFQUFBO0FHNUN6RDtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIscUJBQXFCO0VBQ3JCLG1CSHdDdUQsRUFBQTtBRzVDekQ7SUFNSSxjQUFjLEVBQUE7QUFObEI7SUFTSSwwQkFBMkIsRUFBQTtBQVQvQjtJQVlJLDJCQUEyQixFQUFBIiwiZmlsZSI6InNyYy9hcHAvY29udHJvbHMvc2V0LXBhc3N3b3JkL3NldC1wYXNzd29yZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vICBBdXRob3I6IFJhZmFsIEJyb21pcnNraVxuLy8gIHd3dzogaHR0cDovL3JhZmFsYnJvbWlyc2tpLmNvbS9cbi8vICBnaXRodWI6IGh0dHA6Ly9naXRodWIuY29tL3BhcmFub2lkYS9zYXNzLW1lZGlhcXVlcmllc1xuLy9cbi8vICBMaWNlbnNlZCB1bmRlciBhIE1JVCBMaWNlbnNlXG4vL1xuLy8gIFZlcnNpb246XG4vLyAgMS42LjFcbi8vIC0tLSBnZW5lcmF0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gbXEoJGFyZ3MuLi4pIHtcbiAgJG1lZGlhLXR5cGU6ICdvbmx5IHNjcmVlbic7XG4gICRtZWRpYS10eXBlLWtleTogJ21lZGlhLXR5cGUnO1xuICAkYXJnczoga2V5d29yZHMoJGFyZ3MpO1xuICAkZXhwcjogJyc7XG4gIEBpZiBtYXAtaGFzLWtleSgkYXJncywgJG1lZGlhLXR5cGUta2V5KSB7XG4gICAgJG1lZGlhLXR5cGU6IG1hcC1nZXQoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gICAgJGFyZ3M6IG1hcC1yZW1vdmUoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gIH1cbiAgQGVhY2ggJGtleSxcbiAgJHZhbHVlIGluICRhcmdzIHtcbiAgICBAaWYgJHZhbHVlIHtcbiAgICAgICRleHByOiBcIiN7JGV4cHJ9IGFuZCAoI3ska2V5fTogI3skdmFsdWV9KVwiO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgI3skbWVkaWEtdHlwZX0gI3skZXhwcn0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cblxuLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cblxuQG1peGluIGhkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAje3JvdW5kKCRyYXRpbyo5Nil9ZHBpKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gJG9yaWVudGF0aW9uOiBsYW5kc2NhcGUgfCBwb3J0cmFpdFxuQG1peGluIHRhYmxldCgkb3JpZW50YXRpb246IGZhbHNlKSB7XG4gICRtaW46IDI2OHB4O1xuICAkbWF4OiAxMDI0cHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4LCAkb3JpZW50YXRpb246ICRvcmllbnRhdGlvbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIHNtYWxsIGRlc2t0b3AgLSAxMDI1IDwtPiAxMjgwXG5AbWl4aW4gc21hbGwtZGVza3RvcCgpIHtcbiAgJG1pbjogMTAyNXB4O1xuICAkbWF4OiAxMjgwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gbWVkaXVtIGRlc2t0b3AgLSAxMjgxIDwtPiAxNDQwXG5AbWl4aW4gbWVkaXVtLWRlc2t0b3AoKSB7XG4gICRtaW46IDEyODFweDtcbiAgJG1heDogMTQ0MHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIGxhcmdlIGRlc2t0b3AgLSAxNDQxIDwtPiAxNjAwXG5AbWl4aW4gbGFyZ2UtZGVza3RvcCgpIHtcbiAgJG1pbjogMTQ0MXB4O1xuICAkbWF4OiAxNjAwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8geGxhcmdlIGRlc2t0b3AgLSAxNjAxIC0+IGluZmluaXR5XG5AbWl4aW4geGxhcmdlLWRlc2t0b3AoKSB7XG4gICRtaW46IDE2MDFweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBkZXNrdG9wIG92ZXJsYXlcbkBtaXhpbiBkZXNrdG9wLW92ZXJsYXkoKSB7XG4gICAgJG1pbjogMjY4cHg7XG4gICAgJG1heDogOTI2cHg7XG4gICAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cbi8qIEZpcmVmb3ggc3BlY2lmaWMgc3R5bGVzIGdvIGhlcmUgKi9cbi8qXG5DT01NT04gQ09MT1IgTkFNRVNcblxuVGhlc2UgY29sb3JzIGFyZSBtYXBwZWQgdG8gdGhlIG5hbWVzIGZyb20gdGhlIG9mZmljaWFsIGNvbG9ycy5cbkluc3RlYWQgb2YgaGF2aW5nIG5hbWVzIGxpa2UgYGNydXNoYCBvciBgYmxhemVgLCBkZXZlbG9wZXJzIHdpbGwgdXNlIHRoZWlyIGNvbW1vbiwgbm9uLW1hcmtldGl6ZWQgbmFtZS5cbmVnLiAkcmVkOiBjcnVzaFxuICAgICRvcmFuZ2U6IGJsYXplXG5cblRoZW4sIHVzZSB0aGUgYGhyYS1jb2xvcmAgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb2xvclxuZWcuIGNvbG9yOiBocmEtY29sb3IoJHJlZClcbiovXG4vKiAqKioqICovXG4vKiAqIENoYXJ0cyBDb2xvcnMgKi9cbi8qIGluZm8gdGV4dCBiYWNrZ3JvdW5kICovXG4vKiBVc2UgZm9sbG93aW5nIGNsYXNzZXMgZm9yIGFlc3RoZXRpY3Mgb25seSAtIE5ldyBVSSBLSVQgKi9cbi8qIENvbG9yIE1hcHBpbmcqL1xuLyplbmRzKi9cbi8qIFVzZWQgZm9yIGdyaWRzIGFuZCBtYXJnaW5zICovXG4vKlxuICBmb250IHNpemVzXG4gKi9cbi8qXG4gKiBIZWFkZXIgc2l6ZVxuICovXG4vKlxuICogRGV2aWNlIEdyb3VwIHNldHRpbmdzXG4gKi9cbi8qXG4gKiBCb3JkZXIgc2V0dGluZ3NcbiAqL1xuLypcbiAqIFNoYWRvd3MgZ28gYnkgbGV2ZWxcbiAqL1xuLypcbiAqIFBhZGRpbmcgc2V0dGluZ3NcbiAqL1xuLypcbiAqIElucHV0c1xuICovXG4vKlxuICogVG9vbFRpcHNcbiAqL1xuLypcbiAqIEFjdGlvbiBiYXIgc2l6ZXNcbiAqL1xuLyoqXG4qICBEZXZpY2UgZ3JpZCBzaXplc1xuKi9cbi8qXG4gKiBGb2N1cyBib3JkZXJcbiAqL1xuLypcbiAqIEJvcmRlclxuICovXG4vKlxuICogUG9wLXVwXG4qL1xuLypcbiogU3RhdHVzIE5vdGlmaWNhdGlvblxuKi9cbi8qXG4gIFJvdW5kIGJ1dHRvbiBzaXplc1xuICovXG4vKlxuICogSW1hZ2UgSWNvbiBTaXplc1xuICovXG4vKiogTW9kYWwgc2l6ZXMgKiovXG46aG9zdCB7XG4gIGhlaWdodDogMTAwdmg7XG4gIHdpZHRoOiAxMDB2dztcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgOmhvc3QgI2xvZ28tY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IH1cblxuLmxvZ2luLWZvcm0tdGl0bGUge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS44NzVyZW07XG4gIGNvbG9yOiBobWEtY29sb3IoZ3JleSwgODApO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLmJ0bi1sb2dpbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogIzAwMDtcbiAgaGVpZ2h0OiAyLjYyNXJlbTtcbiAgYmFja2dyb3VuZDogI2RmZDI2OTtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTsgfVxuXG4uZm9ybS1saW5rLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07IH1cbiAgLmZvcm0tbGluay1hY3Rpb25zIGEge1xuICAgIGxpbmUtaGVpZ2h0OiAyOyB9XG4gIC5mb3JtLWxpbmstYWN0aW9ucyAuZm9yZ2V0LXBhc3Mge1xuICAgIGNvbG9yOiBobWEtY29sb3IoZ3JleSwgNjApOyB9XG4gIC5mb3JtLWxpbmstYWN0aW9ucyAucmVnaXN0ZXItdXNlciB7XG4gICAgY29sb3I6IGhtYS1jb2xvcihibGF6ZSwgODApOyB9XG4iLCJAaW1wb3J0ICcuL21lZGlhcXVlcmllcyc7XG5cbi8vLyAvIHN0eWxlZ3VpZGU6aWdub3JlOnN0YXJ0XG4vLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2Vcbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcbi8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIFRoZSBiYXNlIHZhbHVlIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBgcmVtYC4gSWYgeW91J3JlIHVzaW5nIEZvdW5kYXRpb24gb3V0IG9mIHRoZSBib3gsIHRoaXMgaXMgMTZweC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgYG51bGxgLCB0aGUgZnVuY3Rpb24gd2lsbCByZWZlcmVuY2UgdGhlIGAkYmFzZS1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlPT1udWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpPT0nJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cbiAgQGlmICRjb3VudD09MSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XG59XG5cbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXG5AZnVuY3Rpb24gLXpmLWJwLXRvLWVtKCR2YWx1ZSkge1xuICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICBAaWYgdW5pdCgkdmFsdWUpPT0ncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9J251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSsnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW1cbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWU9PTByZW0ge1xuICAgICR2YWx1ZTogMDtcbiAgfVxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIEFuaW1hdGlvbiBrZXlmcmFtZXMgYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGFuaW1hdGlvbi1uYW1lIC0gTmFtZSBvZiB0aGUgYW5pbWF0aW9uLlxuQG1peGluIGtleWZyYW1lcygkYW5pbWF0aW9uLW5hbWUpIHtcbiAgQC13ZWJraXQta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1tb3ota2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1tcy1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW8ta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBBbmltYXRpb24gYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0ciAtIGNzczMgYW5pbWF0aW9uIHNwZWMuXG5AbWl4aW4gYW5pbWF0aW9uKCRzdHIpIHtcbiAgLXdlYmtpdC1hbmltYXRpb246ICN7JHN0cn07XG4gIC1tb3otYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtbXMtYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtby1hbmltYXRpb246ICN7JHN0cn07XG4gIGFuaW1hdGlvbjogI3skc3RyfTtcbn1cblxuLy8vIEJveCBzaGFkb3cgYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0ciAtIGNzczMgYm94LXNoYWRvdyBzcGVjLlxuQG1peGluIGJveC1zaGFkb3coJHN0cikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICN7JHN0cn07XG4gIC1tb3otYm94LXNoYWRvdzogI3skc3RyfTtcbiAgLW8tYm94LXNoYWRvdzogI3skc3RyfTtcbiAgYm94LXNoYWRvdzogI3skc3RyfTtcbn1cblxuLy8vIGdyYWRpZW50IGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gZ3JhZGllbnQoJGNvbG9yMSwgJGNvbG9yMikge1xuICBiYWNrZ3JvdW5kOiAjeyRjb2xvcjF9O1xuICAvKiBGb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBncmFkaWVudHMgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBTYWZhcmkgNS4xIHRvIDYuMCAqL1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBPcGVyYSAxMS4xIHRvIDEyLjAgKi9cbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBGaXJlZm94IDMuNiB0byAxNSAqL1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIFN0YW5kYXJkIHN5bnRheCAqL1xufVxuXG5AbWl4aW4gdmVydGljYWwtZ3JhZGllbnQtZGl2aWRlcigpe1xuICB3aWR0aDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6IDFweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgaHJhLWNvbG9yKCRncmV5LCAyMCksICR3aGl0ZSk7XG59XG5cblxuLy8vIElFIG9ubHkgcXVlcnlcbkBtaXhpbiBpZS1vbmx5KCkge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuICAgIC8qIElFMTArIHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG5AbWl4aW4gY3JlYXRlLWFuaW1hdGlvbigkYW5pLW5hbWUpIHtcbiAgYW5pbWF0aW9uOiAkYW5pLW5hbWUgZm9yd2FyZHMgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cblxuQG1peGluIGNyZWF0ZS10cmFuc2l0aW9uKCRwcm9wZXJ0eS1uYW1lKSB7XG4gIHRyYW5zaXRpb246ICRwcm9wZXJ0eS1uYW1lIDMwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG4vLy8gRWRnZSBvbmx5IHF1ZXJ5XG5AbWl4aW4gZWRnZS1vbmx5KCkge1xuICBAc3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAvKiBFZGdlIHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG4vKiBGaXJlZm94IHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG5AbWl4aW4gZmlyZWZveC1vbmx5KCkge1xuICBAc3VwcG9ydHMgKC1tb3otYXBwZWFyYW5jZTpub25lKSB7XG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG5cbi8vIHN0eWxlZ3VpZGU6aWdub3JlOmVuZCIsIi8qXG5DT01NT04gQ09MT1IgTkFNRVNcblxuVGhlc2UgY29sb3JzIGFyZSBtYXBwZWQgdG8gdGhlIG5hbWVzIGZyb20gdGhlIG9mZmljaWFsIGNvbG9ycy5cbkluc3RlYWQgb2YgaGF2aW5nIG5hbWVzIGxpa2UgYGNydXNoYCBvciBgYmxhemVgLCBkZXZlbG9wZXJzIHdpbGwgdXNlIHRoZWlyIGNvbW1vbiwgbm9uLW1hcmtldGl6ZWQgbmFtZS5cbmVnLiAkcmVkOiBjcnVzaFxuICAgICRvcmFuZ2U6IGJsYXplXG5cblRoZW4sIHVzZSB0aGUgYGhyYS1jb2xvcmAgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb2xvclxuZWcuIGNvbG9yOiBocmEtY29sb3IoJHJlZClcbiovXG5cbiR0aGVtZS1ncmVlbjogI2RmZDI2OTtcbiR0aGVtZS1jb2xvcjogJHRoZW1lLWdyZWVuO1xuJGJsdWU6IGJsdWU7XG4kY3lhbjogY3lhbjtcbiRncmV5OiBncmV5O1xuJHJlZDogY3J1c2g7XG4kb3JhbmdlOiBibGF6ZTtcbiR5ZWxsb3c6IHN1bnNldCwgNjA7XG4kZ3JlZW46IHNlYWZvYW07XG4kbGlnaHQtZ3JlZW46IHNlYXdlZWQ7XG4kZGFyay1ncmVlbjogbWFyaW5lO1xuJGJyb3duOiBicm93bjtcbiRwdXJwbGU6IHB1cnBsZTtcbiRzdW5zZXQ6IHN1bnNldDtcbiRwaW5rOiBwaW5rO1xuXG4kbmV3Z3JleTogbmV3Z3JleTtcbiRuZXdibHVlOiBuZXdibHVlO1xuJG5ld2N5YW46IG5ld2N5YW47XG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBobWEncyBDb2xvdXIgUGFsZXR0ZVxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuJGNvbG9yczogKFxuICAgIGJsdWU6ICg1OiAjZjNmYmZlLCAxMDogI2UyZjRmYiwgMjA6ICNiYWU1ZjUsIDQwOiAjNzFjOGYxLCA2MDogIzMyYjZlOSwgODA6ICMwMDk5ZDMsIDEwMDogIzAwNzRhYSwgMTIwOiAjMDY0YzdjKSxcbiAgICBjcnVzaDogKDU6ICNmZmY3ZjYsIDEwOiAjZmVmMGVkLCAyMDogI2ZkZGZkYywgNDA6ICNmYWMxYmEsIDYwOiAjZjQ4MjcyLCA4MDogI2YxNjE0ZiwgMTAwOiAjZTMyNzIyLCAxMTA6I2MxM2YyYiwgMTIwOiAjYTcxZTIyKSxcbiAgICBjeWFuOiAoNTogI2YyZjlmOSwgMTA6ICNlNmY0ZjQsIDIwOiAjY2NlYWVhLCA0MDogIzlhZDdkNiwgNjA6ICM2OGM1YzQsIDgwOiAjMzZiMWIwLCAxMDA6ICMwMjlmOWQsIDEyMDogIzAyNmY2ZiksXG4gICAgYmxhemU6ICg1OiAjZmZmN2YzLCAxMDogI2ZmZjFlOSwgMjA6ICNmY2UxZDMsIDQwOiAjZmNjNWE3LCA2MDogI2Y3YTc3YiwgODA6ICNmNjg5NGQsIDEwMDogI2YyNmIyMSwgMTIwOiAjYjczZTI1KSxcbiAgICBncmV5OiAoNTogI2ZhZmJmYiwgMTA6ICNlY2VmZjAsIDIwOiAjZTRlN2U5LCA0MDogI2E4YjJiNywgNjA6ICM4MjhkOTMsIDgwOiAjNUI2NjcwLCAxMDA6ICMzZDQ2NGQsIDEyMDogIzE0MWUyNSksXG4gICAgc2VhZm9hbTogKDU6ICNlZmY5ZjgsIDEwOiAjZTRmN2YzLCAyMDogI2NmZWRlOCwgNDA6ICNhNWVhZGIsIDYwOiAjNjFkNmI4LCA4MDogIzJmZDJhOCwgMTAwOiAjMWVhZDhhLCAxMjA6ICMwYjcwNWQpLFxuICAgIHNlYXdlZWQ6ICg1OiAjZjhmYmY2LCAxMDogI2YyZjhlZCwgMjA6ICNlM2YwZDksIDQwOiAjY2JlNGI1LCA2MDogI2IwZDc4ZSwgODA6ICM5NWNiNmEsIDEwMDogIzdhYzE0MiwgMTIwOiAjNDk5MTQyKSxcbiAgICBtYXJpbmU6ICg1OiAjZjdmOWYzLCAxMDogI2YxZjRlOCwgMjA6ICNlNGVhZDIsIDQwOiAjY2JkOWE3LCA2MDogI2JmZGI4NSwgODA6ICNhZWQyNTUsIDEwMDogIzdhYTEzZSwgMTIwOiAjNGM3MzM2KSxcbiAgICBwZWJibGU6ICg1OiAjZmJmY2ZjLCAxMDogI2Y1ZjZmNiwgMjA6ICNlOWU4ZTksIDQwOiAjZDVkNGQ1LCA2MDogI2FhYWFhYiwgODA6ICM3YzdjODEsIDEwMDogIzU0NTM1NSwgMTIwOiAjMjgyNzJiKSxcbiAgICBzdW5zZXQ6ICg1OiAjZmZmZGVlLCAxMDogI2ZmZmJkYiwgMjA6ICNmZGY3YjQsIDQwOiAjZmZmNTdlLCA2MDogI2ZmZjEwMCwgODA6ICNmYmFkMWMsIDEwMDogI2Y0N2YxZiwgMTIwOiAjYzk1NDI4KSxcbiAgICBicm93bjogKDU6ICNmN2Y0ZjIsIDEwOiAjZWFlNGUxLCAyMDogI2Q4Y2VjYiwgNDA6ICNiYWFiYTUsIDYwOiAjOTY4MzdjLCA4MDogIzc3NWQ1MywgMTAwOiAjNTkzODJjLCAxMjA6ICMyZjE4MGQpLFxuICAgIHB1cnBsZTogKDU6ICNmMmVmZjcsIDEwOiAjZThkZmVmLCAyMDogI2Q3YzllMywgNDA6ICNjMWFlZDUsIDYwOiAjYTA4NWJlLCA4MDogIzdiNjFhYSwgMTAwOiAjNjY0ZmExLCAxMjA6ICM0MjJlODUpLFxuICAgIHBpbms6ICg1OiAjZmVmNGY4LCAxMDogI2ZjZTdlZiwgMjA6ICNmYWRhZTEsIDQwOiAjZjRhMmMyLCA2MDogI2VkNzNhNCwgODA6ICNlOTQ1ODYsIDEwMDogI2UzMTU2NywgMTIwOiAjYWIxZDQxKSxcblxuICAgIC8vIE5ldyBVSSBLaXQgY29sb3JzIC0gbmV3IHByZWZpeCB3aWxsIGJlIHJlbW92ZWQgb25jZSB0aGUgbWlncmF0aW9uIGlzIGNvbXBsZXRlZFxuICAgIC8vIEl0IGFsc28gbWFrZXMgc3VyZSB0aGF0IGNvbG9yIHZhcmlhYmxlcyBhcmUgdXNlZFxuICAgIG5ld2dyZXk6ICg1OiAjZmNmY2ZjLCAxMDogI2Y3ZjdmNywgMjA6ICNmMmYyZjIsIDQwOiAjZTllOWU5LCA1MDogI2M3YzdjNywgNjA6ICNhOWE5YTksIDcwOiAjODA4MDgwLCA4MDogIzZiNmI2YiwxMDA6ICM0YjRiNGIsMTIwOiMyOTI5MjkpLFxuICAgIG5ld2JsdWU6ICg1OiAjZjBmNmZhLCAxMDogI2UyZWVmNSwgMjA6ICNiOGQ1ZTcsIDQwOiAjOGViYmQ3LCA1MDogIzY5YTFjNywgNTU6ICM0ZjhmYmQsIDY1OiAjMzg3ZWIzLCA3MDogIzJmNzJhOCwgODA6ICMyNTYyOTcsIDEwMDogIzFkNTI4NSwgMTIwOiAjMTAzNzY2KSxcbiAgICBuZXdjeWFuOiAoNTogI2YwZjZmYSwgMTA6ICNlMmVlZjUsIDIwOiAjYjhkNWU3LCA0MDogIzhlYmJkNywgNTA6ICM2OWExYzcsIDU1OiAjNGY4ZmJkLCA2NTogIzM4N2ViMywgMTAwOiAjMmY3MmE4LCAxMjA6ICMyNTYyOTcsIDE0MDogIzFkNTI4NSwgMTYwOiAjMTAzNzY2KSxcbik7XG5cbkBmdW5jdGlvbiBocmEtY29sb3IoJGNvbG9yLCAkdmFsdWU6IDEwMCkge1xuICAgICRzZWxlY3RlZENvbG9yOiAkY29sb3I7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGNvbG9yKSA9PSAnbGlzdCcpIHtcbiAgICAgICAgJHNlbGVjdGVkQ29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAgICAgICAkdmFsdWU6IG50aCgkY29sb3IsIDIpO1xuICAgIH1cblxuICAgICRjb2xvci1tYXA6IG1hcC1nZXQoJGNvbG9ycywgJHNlbGVjdGVkQ29sb3IpO1xuICAgIEBpZiAoJGNvbG9yLW1hcCA9PSBudWxsKSB7XG4gICAgICAgIEBlcnJvciAkc2VsZWN0ZWRDb2xvciArICcgaXMgbm90IHBhcnQgb2YgdGhlIGNvbG9yIHBhbGV0dGUnO1xuICAgIH1cbiAgICBAcmV0dXJuIG1hcC1nZXQoJGNvbG9yLW1hcCwgJHZhbHVlKTtcbn1cblxuJGJsYWNrOiBocmEtY29sb3IoJGdyZXksIDEyMCk7XG4kd2hpdGU6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiRjb2xvci1ncmF5LXRyYW5zcGFyZW50OiB0cmFuc3BhcmVudGl6ZShocmEtY29sb3IoJGdyZXkpLCAwLjgpO1xuJGhvdmVyLWNvbG9yOiBocmEtY29sb3IoJGdyZXksIDIwKTtcblxuXG4vKiAqKioqICovXG4kc3VjY2Vzcy1jb2xvcjogaHJhLWNvbG9yKCRncmVlbik7XG4kd2FybmluZy1jb2xvcjogaHJhLWNvbG9yKCR5ZWxsb3cpO1xuJGFsZXJ0LWNvbG9yOiBocmEtY29sb3IoJHJlZCk7XG4kY29sb3ItaW52YWxpZDogaHJhLWNvbG9yKCRyZWQpO1xuJGRpc2FibGVkLWNvbG9yOiBocmEtY29sb3IoJGdyZXksIDEwKTtcbiRkaXNhYmxlZC1ib3JkZXI6IGhyYS1jb2xvcigkZ3JleSwgNDApO1xuJGNvbG9yLWhyYS1hbmNob3I6IGhyYS1jb2xvcigkYmx1ZSk7XG4kZGlzYWJsZWQtZm9yZS1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCA0MCk7XG5cbi8qICogQ2hhcnRzIENvbG9ycyAqL1xuJHN0YWNrZWQtdG9vbHRpcC1jaXJjbGUtYmc6ICMzZjQwNDI7XG4kY2hhcnQtdG9vbHRpcC1jaXJjbGU6ICNmZjg5NGM7XG4kZG9udXQtY291bnQ6ICNmZjZiNTc7XG5cbi8qIGluZm8gdGV4dCBiYWNrZ3JvdW5kICovXG4kaW5mby1iYWNrZ3JvdW5kOiAjZmZmZGU2O1xuXG5cbi8qIFVzZSBmb2xsb3dpbmcgY2xhc3NlcyBmb3IgYWVzdGhldGljcyBvbmx5IC0gTmV3IFVJIEtJVCAqL1xuLy8gU3RhbmRhcmRpc2UgdmFyaWFibGVzIHNob3VsZCBiZSB1c2VkIGluc3RlYWQgb2YgZGlyZWN0IGNvbG9yc1xuLyogQ29sb3IgTWFwcGluZyovXG4kcHJpbWFyeS1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Ymx1ZSwgNzApO1xuJHByaW1hcnktaG92ZXItYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDEwMCk7XG4kcHJpbWFyeS10ZXh0OiR3aGl0ZTtcblxuJGRlbGV0ZS1iYWNrZ3JvdW5kOiBocmEtY29sb3IoJHJlZCwgMTEwKTtcblxuJHNlY29uZGFyeS10ZXh0OmhyYS1jb2xvcigkbmV3Ymx1ZSwgNTUpO1xuJHNlY29uZGFyeS1iYWNrZ3JvdW5kOiR3aGl0ZTtcbiRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDUpO1xuJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Z3JleSwgNTApO1xuJHNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZDokc2Vjb25kYXJ5LXRleHQ7XG5cbiRmbGF0LWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDgwKTtcbiRmbGF0LWhvdmVyOiBocmEtY29sb3IoJG5ld2dyZXksIDEwMCk7XG4kZmxhdC1kaXNhYmxlZDogaHJhLWNvbG9yKCRuZXdncmV5LCA3MCk7XG5cbiRhY3Rpb24taG92ZXItYmFja2dyb3VuZDogaHJhLWNvbG9yKCRuZXdibHVlLCA4MCk7XG4kYWN0aW9uLWRpc2FibGVkOiBocmEtY29sb3IoJG5ld2dyZXksIDU1KTtcbiRhY3Rpb24tYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDUwKTtcbi8qZW5kcyovXG5cbiRidXR0b24tcHJpbWFyeS10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktYmFja2dyb3VuZDtcbiRidXR0b24tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiRwcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLXByaW1hcnktZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1kZWxldGUtYmFja2dyb3VuZC1jb2xvcjogJGRlbGV0ZS1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1wcmltYXJ5LWRpc2FibGVkLWJvcmRlci1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuXG4vLyBTZWNvbmRhcnkgYnV0dG9ucyBhbmQgc2Vjb25kYXJ5IGFjdGlvbiBidXR0b25zIHNoYXJlIGNvbG9ycyBcbiRidXR0b24tc2Vjb25kYXJ5LWJvcmRlci1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1zZWNvbmRhcnktdGV4dC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItdGV4dC1jb2xvcjogJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1zZWNvbmRhcnktZGlzYWJsZWQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG5cbiRidXR0b24tZmxhdC1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiRidXR0b24tZmxhdC1jb2xvcjogJGZsYXQtY29sb3I7XG4kYnV0dG9uLWZsYXQtaG92ZXItY29sb3I6JGZsYXQtaG92ZXI7XG4kYnV0dG9uLWZsYXQtZGlzYWJsZWQtY29sb3I6ICRmbGF0LWRpc2FibGVkO1xuXG4kYnV0dG9uLWFjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1ob3Zlci10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1kaXNhYmxlZC10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1kZWxldGUtYmFja2dyb3VuZC1jb2xvcjokZGVsZXRlLWJhY2tncm91bmQ7XG5cbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWRpc2FibGVkLWNvbG9yOiAkYWN0aW9uLWRpc2FibGVkO1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG5cbiR1bnNlbGVjdGVkLWNob2ljZS1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJHNlbGVjdGVkLWNob2ljZS1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuXG4kcmFkaW8tbGFiZWwtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiR0b2dnbGUtb24tYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJHRvZ2dsZS1vZi1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kdG9nZ2xlLWhlYWQtY29sb3I6ICR3aGl0ZTtcblxuJGlucHV0LXRleHQtbGFiZWwtY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgMTIwKTtcbiRpbnB1dC10ZXh0LWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA0MCk7XG4kaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA2MCk7XG4kaW5wdXQtdGV4dC1hY3RpdmUtYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDgwKTtcbiRpbnB1dC10ZXh0LWFjdGl2ZS10ZXh0LWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDEyMCk7XG4kaW5wdXQtdGV4dC1lcnJvci1ib3JkZXItY29sb3I6IGhyYS1jb2xvcigkcmVkLCAxMTApO1xuJGlucHV0LXRleHQtZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDUwKTtcbiRpbnB1dC10ZXh0LWVycm9yLW1lc3NhZ2UtY29sb3I6ICRpbnB1dC10ZXh0LWVycm9yLWJvcmRlci1jb2xvcjtcbiRpbnB1dC10ZXh0LWRpc2FibGVkLWNvbG9yOiAkaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjtcbiRpbnB1dC10ZXh0LWxhYmVsLWRpc2FibGVkLWNvbG9yOiAkaW5wdXQtdGV4dC1ib3JkZXItY29sb3I7XG4kaW5wdXQtdGV4dC1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjsiLCJAaW1wb3J0ICdtaXhpbnMnO1xuQGltcG9ydCAnY29sb3JzJztcblxuLyogVXNlZCBmb3IgZ3JpZHMgYW5kIG1hcmdpbnMgKi9cblxuJHNtYWxsLXNpemU6IDQgIWRlZmF1bHQ7XG4kbGFyZ2Utc2l6ZTogMTIgIWRlZmF1bHQ7XG4kc21hbGwtc3F1YXJlOiByZW0tY2FsYygkc21hbGwtc2l6ZSkgIWRlZmF1bHQ7XG4kbGFyZ2Utc3F1YXJlOiByZW0tY2FsYygkbGFyZ2Utc2l6ZSkgIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtZ3JheTogdHJhbnNwYXJlbnRpemUoaHJhLWNvbG9yKCRncmV5LCA0MCksIDAuOCk7XG4kdHJhbnNwYXJlbnQtd2hpdGU6IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KTtcbiRhbmltYXRpb24tdGltaW5nOiAwLjI1cztcbiRyYWQtZ3JhZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyLCB0cmFuc3BhcmVudGl6ZShocmEtY29sb3IoJGdyZXkpLCAwLjUpIDgwJSwgdHJhbnNwYXJlbnRpemUoJGJsYWNrLCAwLjUpIDEwMCUpO1xuJGxpbmVhci1ncmFkOiByZ2JhKCRibGFjaywgMC43KTtcblxuJHNjcm9sbC1iYXItd2lkdGg6ICRzbWFsbC1zcXVhcmUgKiAyO1xuJHNjcm9sbC1iYXItd2lkdGgtZmlyZWZveDogcmVtLWNhbGMoMTcpO1xuJHNjcm9sbC1iYXItd2lkdGgtZWRnZTogcmVtLWNhbGMoMTcpO1xuJHNjcm9sbC1iYXItd2lkdGgtaWU6IHJlbS1jYWxjKDE3KTtcblxuLypcbiAgZm9udCBzaXplc1xuICovXG4kaWNvbi1mb250LXNpemUtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiAzICFkZWZhdWx0OyAvLyAxMnB4XG4kaWNvbi1mb250LXNpemUtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogNCAhZGVmYXVsdDsgLy8gMTZweFxuJGljb24tZm9udC1zaXplLXJlZ3VsYXI6ICRzbWFsbC1zcXVhcmUgKiA1ICFkZWZhdWx0OyAvLyAyMHB4XG4kaWNvbi1mb250LXNpemUtbGFyZ2U6ICRzbWFsbC1zcXVhcmUgKiA2OyAvLyAyNHB4XG4kaWNvbi1mb250LXNpemUteC1sYXJnZTogJHNtYWxsLXNxdWFyZSAqIDc7IC8vIDI4cHhcbiRpY29uLWZvbnQtc2l6ZS1wbGFjZWhvbGRlcjogJGxhcmdlLXNxdWFyZSAqIDc7XG4kZm9udC1zaXplOiAkaWNvbi1mb250LXNpemUtbWVkaXVtICFkZWZhdWx0OyAvLyAxM3B4XG4kZm9udC1zaXplLW1lZGl1bTogJGljb24tZm9udC1zaXplLW1lZGl1bTsgLy8xNnB4XG4kZm9udC1zaXplLWxhcmdlOiAkaWNvbi1mb250LXNpemUtcmVndWxhcjtcbiRmb250LXNpemUteC1sYXJnZTogJGljb24tZm9udC1zaXplLXgtbGFyZ2U7XG4kZm9udC1zaXplLWhlYWRlcjogMTRweDtcblxuXG4kZm9udC13ZWlnaHQtbGlnaHQ6IDMwMDsgLy8gU291cmNlIFNhbnMgUHJvIExpZ2h0XG4kZm9udC13ZWlnaHQtcmVndWxhcjogNDAwOyAvLyBTb3VyY2UgU2FucyBQcm8gTGlnaHRcbiRmb250LXdlaWdodC1zZW1pLWJvbGQ6IDYwMDsgLy8gU291cmNlIFNhbnMgUHJvIFNlbWkgQm9sZFxuJGZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDsgLy8gU291cmNlIFNhbnMgUHJvIEJvbGRcblxuXG5cbi8qXG4gKiBIZWFkZXIgc2l6ZVxuICovXG5cbiRoZWFkZXItaGVpZ2h0OiByZW0tY2FsYyg1MikgIWRlZmF1bHQ7XG4kaGVhZGVyLXRleHQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogOCAhZGVmYXVsdDsgLy8zMnB4XG4kc3ViLW5hdi1oZWlnaHQ6IDByZW0gIWRlZmF1bHQ7IC8vIDBweFxuJHNlYXJjaC1iYXItaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTUgIWRlZmF1bHQ7XG4vLyRwYWdpbmF0aW9uLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDI1ICFkZWZhdWx0O1xuJGNoYXJ0cy1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3NCAhZGVmYXVsdDtcbiRtYWluLWhlYWRlci1oZWlnaHQ6ICRoZWFkZXItaGVpZ2h0KyRzdWItbmF2LWhlaWdodCAhZGVmYXVsdDtcbiR2aXJ0dWFsLWdyb3VwLWluZGljYXRvci1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3O1xuJGhlYWRlci1zaWRlLW1hcmdpbjogcmVtLWNhbGMoMjQpO1xuXG4vKlxuICogRGV2aWNlIEdyb3VwIHNldHRpbmdzXG4gKi9cblxuJGRldmljZS1ncm91cC1wYWRkaW5nLWxlZnQ6ICRzbWFsbC1zcXVhcmUgKiA2O1xuJGRldmljZS1ncm91cC1pdGVtcy1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA5O1xuJGRldmljZS1ncm91cC13aWR0aDogJGxhcmdlLXNxdWFyZSAqIDI4O1xuJGRldmljZS1ncm91cC1taW4td2lkdGg6ICRzbWFsbC1zcXVhcmUgKiA1NTtcbiRkZXZpY2UtZ3JvdXAtbWF4LXdpZHRoOiAkc21hbGwtc3F1YXJlICogMTQwO1xuJGRldmljZS1ncm91cC1tYXJnaW4tdG9wOiAkc2VhcmNoLWJhci1oZWlnaHQ7XG4kZGV2aWNlLWdyb3VwLWJ1dHRvbi13aWR0aDogJGxhcmdlLXNxdWFyZSAqIDIxO1xuJGRldmljZS1ncm91cC1idXR0b24taGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTE7XG4kZGV2aWNlLWdyb3VwLWJ1dHRvbi1ib3JkZXI6IDFweCBzb2xpZCBocmEtY29sb3IoJGdyZXksIDIwKTtcblxuLypcbiAqIEJvcmRlciBzZXR0aW5nc1xuICovXG5cbiRib3JkZXItYmFzZTogMXB4IHNvbGlkIHJnYigyMDQsIDIwNCwgMjA0KTtcbiRib3JkZXItcmFkaXVzLXNtYWxsOiAzcHg7XG4kYm9yZGVyLXJhZGl1cy1iYXNlOiA0cHg7XG4kYm9yZGVyLXJhZGl1cy1sYXJnZTogNnB4O1xuXG4vKlxuICogU2hhZG93cyBnbyBieSBsZXZlbFxuICovXG5cbiRzaGFkb3c6IDAgM3B4IDlweCByZ2JhKDAsIDAsIDAsIC41KTtcbiRzaGFkb3ctMTogMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiRzaGFkb3ctc21hbGw6IDAgMXB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xuJHNoYWRvdy1oZWFkZXI6IDBweCAxcHggMTNweCAycHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1zZWFyY2gtaGVhZGVyOiA4cHggMXB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctbGlnaHQ6IDFweCAxcHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiRzaGFkb3ctbGlnaHQtYm90dG9tLW9ubHk6IDBweCAxcHggOHB4IHJnYmEoJGJsYWNrLCAwLjEzKTtcbiRzaGFkb3ctYWJvdmU6IDAgLTFweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWFib3ZlLWxlZnQ6IC02cHggMHB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctYmVsb3c6IDBweCA5cHggOHB4IC01cHggcmdiYSgxNTgsIDE1OCwgMTU4LCAwLjI1KTtcbiRzaGFkb3ctZHJvcGRvd246IDAgMXB4IDEzcHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1kaWFsb2c6IDAgOHB4IDIwcHggNnB4IHJnYmEoJGJsYWNrLCAwLjYpO1xuJHNoYWRvdy1kaWFsb2ctc3VmZml4OiAwcHggMTZweCAyMHB4IDNweCByZ2JhKCRibGFjaywgMC42KTtcbiRzaGFkb3ctbGF5b3V0OiA2cHggMHB4IDlweCAwcHggcmdiYSgkYmxhY2ssIDAuMik7XG4kc2hhZG93LXNhdmVkLXNlYXJjaGVzOiA0cHggNHB4IDhweCAtMnB4IHJnYmEoNjcsNzAsNzQsLjEzKTtcbiRzaGFkb3ctY2hhcnQtY2FyZDogMCA2cHggMTZweCByZ2JhKDIwLDMwLDM3LDAuMDgpO1xuJHNoYWRvdy1jb25maWctY2FyZDogMCAwIDI0cHggMCByZ2JhKDIwLDMwLDM3LDAuMSk7XG5cbi8qXG4gKiBQYWRkaW5nIHNldHRpbmdzXG4gKi9cblxuJGJvZHktcGFkZGluZzogJGxhcmdlLXNxdWFyZSAqIDI7XG4kcGFkZGluZy1zbWFsbDogJGxhcmdlLXNxdWFyZTtcbiRiYXNlLXBhZGRpbmc6ICRzbWFsbC1zcXVhcmUgKiA0OyAvLyAxNnB4XG4kaGFsZi1iYXNlLXBhZGRpbmc6ICRiYXNlLXBhZGRpbmcgLyAyO1xuJG1vZGFsLXBhZGRpbmc6ICRiYXNlLXBhZGRpbmc7XG4kbGF5b3V0LXBhZGRpbmc6ICgkYmFzZS1wYWRkaW5nICogMikgKCRib2R5LXBhZGRpbmcgKiAyKSAoJGJhc2UtcGFkZGluZyAqIDIpICgkYm9keS1wYWRkaW5nICogMik7XG4kcGFkZGluZy1iYXNlLXZlcnRpY2FsOiA2cHg7XG4kcGFkZGluZy1iYXNlLWhvcml6b250YWw6ICRzbWFsbC1zcXVhcmUgKiAzO1xuJHBhZGRpbmctbGFyZ2UtdmVydGljYWw6IDEwcHg7XG4kcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsOiAgJHNtYWxsLXNxdWFyZSAqIDQ7XG4kcGFkZGluZy1tZWRpdW0tdmVydGljYWw6IDE0cHg7XG4kcGFkZGluZy1zbWFsbC12ZXJ0aWNhbDogNXB4O1xuJHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDogMTBweDtcblxuLypcbiAqIElucHV0c1xuICovXG4kaW5wdXQtcGFkZGluZzogJHNtYWxsLXNxdWFyZSAkc21hbGwtc3F1YXJlICogMjtcbiRpbnB1dC1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA4O1xuXG4vKlxuICogVG9vbFRpcHNcbiAqL1xuXG4vLyBUb29sdGlwc1xuJHRvb2x0aXAtbWF4LXdpZHRoOiAyNTBweCAhZGVmYXVsdDtcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KSAhZGVmYXVsdDtcbiR0b29sdGlwLXRleHQtY29sb3I6ICNmZmYgIWRlZmF1bHQ7XG4kdG9vbHRpcC1kZWxheTogMC40cyAhZGVmYXVsdDtcbiR0b29sdGlwLWR1cmF0aW9uOiAwLjFzICFkZWZhdWx0O1xuXG4vKlxuICogQWN0aW9uIGJhciBzaXplc1xuICovXG5cbiRkZXZpY2UtYWN0aW9uLWJhci1oZWlnaHQ6ICRsYXJnZS1zcXVhcmUgKiA1O1xuJGNvdW50LWNvbnRhaW5lci1wYWRkaW5nOiAoJGxhcmdlLXNxdWFyZSAqIDIpICgkc21hbGwtc3F1YXJlICogNCkgKCRsYXJnZS1zcXVhcmUgKiAyKSAoJHNtYWxsLXNxdWFyZSAqIDQpO1xuXG4vKipcbiogIERldmljZSBncmlkIHNpemVzXG4qL1xuXG4kcm93LWFib3ZlLWdyaWQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTQ7XG4kY2hlY2stY2VsbC1wYWRkaW5nOiAwIDAgMCAkc21hbGwtc3F1YXJlKjI7XG4kZGV2aWNlLWdyaWQtbWluLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDcxO1xuXG4vKlxuICogRm9jdXMgYm9yZGVyXG4gKi9cblxuJGhyYS1mb2N1cy1vdXRsaW5lOiAycHggc29saWQgaHJhLWNvbG9yKCRjeWFuKTtcblxuLypcbiAqIEJvcmRlclxuICovXG5cbiRocmEtYm9yZGVyOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCAyMCk7XG4kaHJhLWJvcmRlci1lcnJvcjogMXB4IHNvbGlkIGhyYS1jb2xvcigkcmVkKTtcbiRocmEtYm9yZGVyLWlucHV0LWRpc2FibGVkOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCA0MCk7XG5cblxuLypcbiAqIFBvcC11cFxuKi9cbiRocmEtcG9wdXAtYmVhay1zaXplOiAkc21hbGwtc3F1YXJlKjM7XG4kaHJhLXBvcHVwLWJlYWstYm90dG9tLWNlbnRlcjogY2FsYyg1MCUgLSAoMS4yNXJlbSAvIDIpKTtcbiRwb3AtdXAtZm9vdGVyLWhlaWdodDogJGxhcmdlLXNxdWFyZSAqIDU7XG4kcG9wLXVwLXRpdGxlLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDEzO1xuJHBvcC11cC10aXRsZS1tYWpvci1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxNDtcbi8vIHN0eWxlZ3VpZGU6aWdub3JlOmVuZFxuXG4vKlxuKiBTdGF0dXMgTm90aWZpY2F0aW9uXG4qL1xuJGhyYS1zdGF0dXMtbm90aWZpY2F0aW9uLXdpZHRoOiAkc21hbGwtc3F1YXJlICogODM7XG4kaHJhLXN0YXR1cy1ub3RpZmljYXRpb24tdG9wOiAkc21hbGwtc3F1YXJlICogMTQ7XG4kaHJhLXN0YXR1cy1ub3RpZmljYXRpb24tYm90dG9tOiAkc21hbGwtc3F1YXJlICogMTU7XG5cblxuLypcbiAgUm91bmQgYnV0dG9uIHNpemVzXG4gKi9cbiAkcm91bmQtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiA3O1xuICRyb3VuZC1tZWRpdW06ICRzbWFsbC1zcXVhcmUgKiA4O1xuICRyb3VuZC1sYXJnZTogJHNtYWxsLXNxdWFyZSAqIDk7XG5cbi8qXG4gKiBJbWFnZSBJY29uIFNpemVzXG4gKi9cblxuJGltZy1pY29uLXNpemUtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiA4O1xuJGltZy1pY29uLXNpemUtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogMTA7XG5cblxuJGJlemllcjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcblxuXG4vKiogTW9kYWwgc2l6ZXMgKiovXG4kbW9kYWwtdGl0bGUtaGVpZ2h0OiByZW0tY2FsYyg1Mik7XG4kbW9kYWwtZm9vdGVyLWhlaWdodDogcmVtLWNhbGMoNjApO1xuIiwiQGltcG9ydCBcIi4uLy4uL3NoYXJlZC9zdHlsZXMvYmFzZS9zZXR0aW5nc1wiO1xuXG46aG9zdCB7XG4gIGhlaWdodDogMTAwdmg7XG4gIHdpZHRoOiAxMDB2dztcbiAgZGlzcGxheTogYmxvY2s7XG4gICNsb2dvLWNvbnRhaW5lcntcbiAgICBwYWRkaW5nOiAwIWltcG9ydGFudDtcbiAgfVxufVxuXG4ubG9naW4tZm9ybS10aXRsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiByZW0tY2FsYygzMCk7XG4gIGNvbG9yOiBobWEtY29sb3IoJGdyZXksIDgwKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYnRuLWxvZ2luIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiAjMDAwO1xuICBoZWlnaHQ6IHJlbS1jYWxjKDQyKTtcbiAgYmFja2dyb3VuZDogJHRoZW1lLWdyZWVuO1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbn1cblxuLmZvcm0tbGluay1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgYSB7XG4gICAgbGluZS1oZWlnaHQ6IDI7XG4gIH1cbiAgLmZvcmdldC1wYXNzIHtcbiAgICBjb2xvcjogaG1hLWNvbG9yKCRncmV5LCA2MCk7XG4gIH1cbiAgLnJlZ2lzdGVyLXVzZXIge1xuICAgIGNvbG9yOiBobWEtY29sb3IoYmxhemUsIDgwKTtcbiAgfVxufVxuIl19 */\"","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { first } from 'rxjs/operators';\nimport { AuthenticationService } from 'src/app/services/authentication.service';\nimport { MustMatch } from 'src/app/helpers/must-match.validators';\n\n@Component({\n templateUrl: './set-password.component.html',\n styleUrls: ['./set-password.component.scss']\n})\nexport class SetPasswordComponent implements OnInit {\n forgotPasswordForm: FormGroup;\n loading = false;\n submitted = false;\n returnUrl: string;\n successMessage: string[] = [];\n errorMessage: string[] = [];\n\n constructor(\n private formBuilder: FormBuilder,\n private router: Router,\n private authenticationService: AuthenticationService) {\n // redirect to home if already logged in\n if (this.authenticationService.currentUserValue) {\n this.router.navigate(['/']);\n }\n }\n\n ngOnInit() {\n this.forgotPasswordForm = this.formBuilder.group({\n username: ['', [Validators.required, Validators.email]],\n lastName: ['', [Validators.required]],\n dob: ['', [Validators.required]],\n password: ['', [Validators.required, Validators.minLength(6)]],\n confirmPassword: ['', Validators.required],\n }, {\n validator: MustMatch('password', 'confirmPassword')\n });\n }\n\n // convenience getter for easy access to form fields\n get f() { return this.forgotPasswordForm.controls; }\n\n onSubmit() {\n this.submitted = true;\n\n // stop here if form is invalid\n if (this.forgotPasswordForm.invalid) {\n return;\n }\n\n this.successMessage = [];\n this.errorMessage = [];\n this.loading = true;\n this.authenticationService.setPassword(this.forgotPasswordForm.value)\n .pipe(first())\n .subscribe(\n (): void => {\n this.loading = false;\n this.router.navigate(['/']);\n // this.successMessage.push('Check you registered email, password reset link is sent.');\n },\n error => {\n const _this = this;\n if (error.error instanceof Array) {\n error.error.map(err => _this.errorMessage.push(err.value));\n } else if (typeof error.error === 'string') {\n this.errorMessage.push(error.error);\n } else {\n this.errorMessage.push(error);\n }\n this.loading = false;\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FormControl, FormGroup, Validators, ValidatorFn } from '@angular/forms';\nimport { DynamicControlBase, ValidatorList } from './dynamic-control.base';\n\n\n@Injectable()\nexport class DynamicControlService {\n constructor() { }\n\n toFormGroup(questions: DynamicControlBase[], isDisabled: boolean) {\n const form: FormGroup = new FormGroup({});\n return this.getFormGroup(questions, form, isDisabled);\n }\n\n getFormGroup(questions: DynamicControlBase[], formGroup: FormGroup, isDisabled: boolean) {\n questions.forEach(question => {\n if (question.controlType === 'array') {\n const form: FormGroup = new FormGroup({});\n formGroup.addControl(question.key, this.getFormGroup(question.value as DynamicControlBase[], form, isDisabled));\n return formGroup;\n }\n\n const control = !!question.validators && question.validators.length > 0\n ? new FormControl({ value: question.value || '', disabled: isDisabled }, Validators.compose(this.getValidators(question.validators)))\n : new FormControl({ value: question.value || '', disabled: isDisabled });\n\n formGroup.addControl(question.key, control);\n });\n\n return formGroup;\n }\n\n getValidators(validators: ValidatorList[]): ValidatorFn[] {\n const validations: ValidatorFn[] = [];\n validators.forEach(function (item) {\n validations.push(item.validator);\n });\n\n return validations;\n }\n}\n","import { Validators, ValidatorFn } from '@angular/forms';\n\nexport class DynamicControlBase {\n value: T;\n key: string;\n label: string;\n validators: ValidatorList[];\n order: number;\n controlType: string;\n options: { key: string, value: string }[];\n showLabelInLine: boolean;\n labelClassName: string;\n controlClassName: string;\n containerClassName?: string;\n\n constructor(\n controlType?: string,\n key?: string,\n value?: T,\n label?: string,\n validators?: ValidatorList[],\n order?: number,\n options?: { key: string, value: string }[],\n showLabelInLine?: boolean,\n containerClassName?: string,\n labelClassName?: string,\n controlClassName?: string\n ) {\n this.value = value;\n this.key = key || '';\n this.label = label || '';\n this.validators = validators;\n this.order = order === undefined ? 1 : order;\n this.controlType = controlType || '';\n this.options = options || [];\n this.containerClassName = !!containerClassName ? containerClassName : 'col-md-12';\n this.labelClassName = labelClassName;\n this.controlClassName = controlClassName;\n this.showLabelInLine = showLabelInLine;\n\n if (!this.showLabelInLine) {\n if (!!this.labelClassName) {\n this.labelClassName += ' w-100';\n } else {\n this.labelClassName = 'w-100';\n }\n }\n }\n}\n\nexport class ValidatorList {\n validator: ValidatorFn;\n errorMessage: string;\n}\n","export default \"/*\\nHigh DPI screens (retina macbooks, highresolution laptops, etc)\\n*/\\n/* Firefox specific styles go here */\\n/*\\nCOMMON COLOR NAMES\\n\\nThese colors are mapped to the names from the official colors.\\nInstead of having names like `crush` or `blaze`, developers will use their common, non-marketized name.\\neg. $red: crush\\n $orange: blaze\\n\\nThen, use the `hra-color` function to get the color\\neg. color: hra-color($red)\\n*/\\n/* **** */\\n/* * Charts Colors */\\n/* info text background */\\n/* Use following classes for aesthetics only - New UI KIT */\\n/* Color Mapping*/\\n/*ends*/\\n/* Used for grids and margins */\\n/*\\n font sizes\\n */\\n/*\\n * Header size\\n */\\n/*\\n * Device Group settings\\n */\\n/*\\n * Border settings\\n */\\n/*\\n * Shadows go by level\\n */\\n/*\\n * Padding settings\\n */\\n/*\\n * Inputs\\n */\\n/*\\n * ToolTips\\n */\\n/*\\n * Action bar sizes\\n */\\n/**\\n* Device grid sizes\\n*/\\n/*\\n * Focus border\\n */\\n/*\\n * Border\\n */\\n/*\\n * Pop-up\\n*/\\n/*\\n* Status Notification\\n*/\\n/*\\n Round button sizes\\n */\\n/*\\n * Image Icon Sizes\\n */\\n/** Modal sizes **/\\n.form-control {\\n border-radius: 0% !important; }\\n.section {\\n font-weight: bold !important; }\\n.sub-section {\\n font-weight: 600 !important;\\n margin-bottom: 0 !important; }\\nlabel {\\n margin-right: 0.5rem !important; }\\n.text-right.is-invalid .invalid-feedback {\\n color: green; }\\n.text-right.is-invalid .invalid-feedback li {\\n right: 35px;\\n top: 25px; }\\n.hidden {\\n display: none; }\\n.form-group label {\\n font-weight: normal; }\\n.slider {\\n -webkit-appearance: none;\\n width: 100%;\\n outline: none;\\n opacity: 1;\\n transition: opacity 0.2s; }\\n.slider:hover {\\n opacity: 1; }\\n.slider::-webkit-slider-thumb {\\n -webkit-appearance: none;\\n appearance: none;\\n background: #dfd269;\\n cursor: pointer; }\\ninput[type=\\\"range\\\"] {\\n -webkit-appearance: none;\\n /* Hides the slider so that custom slider can be made */\\n width: 100%;\\n /* Specific width is required for Firefox. */\\n background: transparent;\\n /* Otherwise white in Chrome */ }\\n.slider::-moz-range-thumb {\\n background: #dfd269;\\n cursor: pointer; }\\n.custom-range {\\n height: 1rem !important; }\\ninput[type=\\\"range\\\"]::-webkit-slider-runnable-track {\\n cursor: pointer;\\n background: #88bed2; }\\n.form-group {\\n margin-top: 0 !important; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21lZGlhcXVlcmllcy5zY3NzIiwic3JjL2FwcC9kYXRhLWRyaXZlbi9keW5hbWljLWZvcm0tYnVpbGRlci9keW5hbWljLWZvcm0tYnVpbGRlci5jb21wb25lbnQuc2NzcyIsIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21peGlucy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9zdHlsZXMvYmFzZS9fY29sb3JzLnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvc2hhcmVkL3N0eWxlcy9iYXNlL19zZXR0aW5ncy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL2RhdGEtZHJpdmVuL2R5bmFtaWMtZm9ybS1idWlsZGVyL2R5bmFtaWMtZm9ybS1idWlsZGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThCQTs7Q0M1QkM7QUMwS0Qsb0NBQUE7QUM1S0E7Ozs7Ozs7Ozs7Q0ZjQztBRStERCxTQUFBO0FBVUEsb0JBQUE7QUFLQSx5QkFBQTtBQUlBLDJEQUFBO0FBRUEsaUJBQUE7QUFvQkEsT0FBQTtBQ25IQSwrQkFBQTtBQWlCQTs7RUhJRTtBR21CRjs7RUhoQkU7QUc4QkY7O0VIM0JFO0FHeUNGOztFSHRDRTtBRytDRjs7RUg1Q0U7QUdrRUY7O0VIL0RFO0FHaUZGOztFSDlFRTtBR29GRjs7RUhqRkU7QUc0RkY7O0VIekZFO0FHZ0dGOztDSDdGQztBR3FHRDs7RUhsR0U7QUd3R0Y7O0VIckdFO0FHOEdGOztDSDNHQztBR3FIRDs7Q0hsSEM7QUcwSEQ7O0VIdkhFO0FHOEhGOztFSDNIRTtBR3NJRixrQkFBQTtBQ3pNQTtFQUNFLDRCQUE0QixFQUFBO0FBRzlCO0VBQ0UsNEJBQTRCLEVBQUE7QUFHOUI7RUFDRSwyQkFBMkI7RUFDM0IsMkJBQTJCLEVBQUE7QUFHN0I7RUFDRSwrQkFBK0IsRUFBQTtBQU9qQztFQUVJLFlBQVksRUFBQTtBQUZoQjtJQUlNLFdBQVc7SUFDWCxTQUFTLEVBQUE7QUFLZjtFQUNFLGFBQWEsRUFBQTtBQUdmO0VBQ0UsbUJBQW1CLEVBQUE7QUFHckI7RUFDRSx3QkFBd0I7RUFDeEIsV0FBVztFQUNYLGFBQWE7RUFDYixVQUFVO0VBRVYsd0JBQXdCLEVBQUE7QUFHMUI7RUFDRSxVQUFVLEVBQUE7QUFHWjtFQUNFLHdCQUF3QjtFQUN4QixnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGVBQWUsRUFBQTtBQUdqQjtFQUNFLHdCQUF3QjtFQUFFLHVEQUFBO0VBQzFCLFdBQVc7RUFBRSw0Q0FBQTtFQUNiLHVCQUF1QjtFQUFFLDhCQUFBLEVBQStCO0FBRzFEO0VBQ0UsbUJBQW1CO0VBQ25CLGVBQWUsRUFBQTtBQUdqQjtFQUNFLHVCQUF1QixFQUFBO0FBR3pCO0VBQ0UsZUFBZTtFQUNmLG1CQUFtQixFQUFBO0FBR3JCO0VBQ0Usd0JBQXVCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9kYXRhLWRyaXZlbi9keW5hbWljLWZvcm0tYnVpbGRlci9keW5hbWljLWZvcm0tYnVpbGRlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vICBBdXRob3I6IFJhZmFsIEJyb21pcnNraVxuLy8gIHd3dzogaHR0cDovL3JhZmFsYnJvbWlyc2tpLmNvbS9cbi8vICBnaXRodWI6IGh0dHA6Ly9naXRodWIuY29tL3BhcmFub2lkYS9zYXNzLW1lZGlhcXVlcmllc1xuLy9cbi8vICBMaWNlbnNlZCB1bmRlciBhIE1JVCBMaWNlbnNlXG4vL1xuLy8gIFZlcnNpb246XG4vLyAgMS42LjFcbi8vIC0tLSBnZW5lcmF0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gbXEoJGFyZ3MuLi4pIHtcbiAgJG1lZGlhLXR5cGU6ICdvbmx5IHNjcmVlbic7XG4gICRtZWRpYS10eXBlLWtleTogJ21lZGlhLXR5cGUnO1xuICAkYXJnczoga2V5d29yZHMoJGFyZ3MpO1xuICAkZXhwcjogJyc7XG4gIEBpZiBtYXAtaGFzLWtleSgkYXJncywgJG1lZGlhLXR5cGUta2V5KSB7XG4gICAgJG1lZGlhLXR5cGU6IG1hcC1nZXQoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gICAgJGFyZ3M6IG1hcC1yZW1vdmUoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gIH1cbiAgQGVhY2ggJGtleSxcbiAgJHZhbHVlIGluICRhcmdzIHtcbiAgICBAaWYgJHZhbHVlIHtcbiAgICAgICRleHByOiBcIiN7JGV4cHJ9IGFuZCAoI3ska2V5fTogI3skdmFsdWV9KVwiO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgI3skbWVkaWEtdHlwZX0gI3skZXhwcn0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cblxuLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cblxuQG1peGluIGhkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAje3JvdW5kKCRyYXRpbyo5Nil9ZHBpKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gJG9yaWVudGF0aW9uOiBsYW5kc2NhcGUgfCBwb3J0cmFpdFxuQG1peGluIHRhYmxldCgkb3JpZW50YXRpb246IGZhbHNlKSB7XG4gICRtaW46IDI2OHB4O1xuICAkbWF4OiAxMDI0cHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4LCAkb3JpZW50YXRpb246ICRvcmllbnRhdGlvbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIHNtYWxsIGRlc2t0b3AgLSAxMDI1IDwtPiAxMjgwXG5AbWl4aW4gc21hbGwtZGVza3RvcCgpIHtcbiAgJG1pbjogMTAyNXB4O1xuICAkbWF4OiAxMjgwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gbWVkaXVtIGRlc2t0b3AgLSAxMjgxIDwtPiAxNDQwXG5AbWl4aW4gbWVkaXVtLWRlc2t0b3AoKSB7XG4gICRtaW46IDEyODFweDtcbiAgJG1heDogMTQ0MHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIGxhcmdlIGRlc2t0b3AgLSAxNDQxIDwtPiAxNjAwXG5AbWl4aW4gbGFyZ2UtZGVza3RvcCgpIHtcbiAgJG1pbjogMTQ0MXB4O1xuICAkbWF4OiAxNjAwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8geGxhcmdlIGRlc2t0b3AgLSAxNjAxIC0+IGluZmluaXR5XG5AbWl4aW4geGxhcmdlLWRlc2t0b3AoKSB7XG4gICRtaW46IDE2MDFweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBkZXNrdG9wIG92ZXJsYXlcbkBtaXhpbiBkZXNrdG9wLW92ZXJsYXkoKSB7XG4gICAgJG1pbjogMjY4cHg7XG4gICAgJG1heDogOTI2cHg7XG4gICAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cbi8qIEZpcmVmb3ggc3BlY2lmaWMgc3R5bGVzIGdvIGhlcmUgKi9cbi8qXG5DT01NT04gQ09MT1IgTkFNRVNcblxuVGhlc2UgY29sb3JzIGFyZSBtYXBwZWQgdG8gdGhlIG5hbWVzIGZyb20gdGhlIG9mZmljaWFsIGNvbG9ycy5cbkluc3RlYWQgb2YgaGF2aW5nIG5hbWVzIGxpa2UgYGNydXNoYCBvciBgYmxhemVgLCBkZXZlbG9wZXJzIHdpbGwgdXNlIHRoZWlyIGNvbW1vbiwgbm9uLW1hcmtldGl6ZWQgbmFtZS5cbmVnLiAkcmVkOiBjcnVzaFxuICAgICRvcmFuZ2U6IGJsYXplXG5cblRoZW4sIHVzZSB0aGUgYGhyYS1jb2xvcmAgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb2xvclxuZWcuIGNvbG9yOiBocmEtY29sb3IoJHJlZClcbiovXG4vKiAqKioqICovXG4vKiAqIENoYXJ0cyBDb2xvcnMgKi9cbi8qIGluZm8gdGV4dCBiYWNrZ3JvdW5kICovXG4vKiBVc2UgZm9sbG93aW5nIGNsYXNzZXMgZm9yIGFlc3RoZXRpY3Mgb25seSAtIE5ldyBVSSBLSVQgKi9cbi8qIENvbG9yIE1hcHBpbmcqL1xuLyplbmRzKi9cbi8qIFVzZWQgZm9yIGdyaWRzIGFuZCBtYXJnaW5zICovXG4vKlxuICBmb250IHNpemVzXG4gKi9cbi8qXG4gKiBIZWFkZXIgc2l6ZVxuICovXG4vKlxuICogRGV2aWNlIEdyb3VwIHNldHRpbmdzXG4gKi9cbi8qXG4gKiBCb3JkZXIgc2V0dGluZ3NcbiAqL1xuLypcbiAqIFNoYWRvd3MgZ28gYnkgbGV2ZWxcbiAqL1xuLypcbiAqIFBhZGRpbmcgc2V0dGluZ3NcbiAqL1xuLypcbiAqIElucHV0c1xuICovXG4vKlxuICogVG9vbFRpcHNcbiAqL1xuLypcbiAqIEFjdGlvbiBiYXIgc2l6ZXNcbiAqL1xuLyoqXG4qICBEZXZpY2UgZ3JpZCBzaXplc1xuKi9cbi8qXG4gKiBGb2N1cyBib3JkZXJcbiAqL1xuLypcbiAqIEJvcmRlclxuICovXG4vKlxuICogUG9wLXVwXG4qL1xuLypcbiogU3RhdHVzIE5vdGlmaWNhdGlvblxuKi9cbi8qXG4gIFJvdW5kIGJ1dHRvbiBzaXplc1xuICovXG4vKlxuICogSW1hZ2UgSWNvbiBTaXplc1xuICovXG4vKiogTW9kYWwgc2l6ZXMgKiovXG4uZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyLXJhZGl1czogMCUgIWltcG9ydGFudDsgfVxuXG4uc2VjdGlvbiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7IH1cblxuLnN1Yi1zZWN0aW9uIHtcbiAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cblxubGFiZWwge1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XG5cbi50ZXh0LXJpZ2h0LmlzLWludmFsaWQgLmludmFsaWQtZmVlZGJhY2sge1xuICBjb2xvcjogZ3JlZW47IH1cbiAgLnRleHQtcmlnaHQuaXMtaW52YWxpZCAuaW52YWxpZC1mZWVkYmFjayBsaSB7XG4gICAgcmlnaHQ6IDM1cHg7XG4gICAgdG9wOiAyNXB4OyB9XG5cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5mb3JtLWdyb3VwIGxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG4uc2xpZGVyIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgb3V0bGluZTogbm9uZTtcbiAgb3BhY2l0eTogMTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjJzO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7IH1cblxuLnNsaWRlcjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNsaWRlcjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNkZmQyNjk7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG5pbnB1dFt0eXBlPVwicmFuZ2VcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC8qIEhpZGVzIHRoZSBzbGlkZXIgc28gdGhhdCBjdXN0b20gc2xpZGVyIGNhbiBiZSBtYWRlICovXG4gIHdpZHRoOiAxMDAlO1xuICAvKiBTcGVjaWZpYyB3aWR0aCBpcyByZXF1aXJlZCBmb3IgRmlyZWZveC4gKi9cbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIC8qIE90aGVyd2lzZSB3aGl0ZSBpbiBDaHJvbWUgKi8gfVxuXG4uc2xpZGVyOjotbW96LXJhbmdlLXRodW1iIHtcbiAgYmFja2dyb3VuZDogI2RmZDI2OTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5jdXN0b20tcmFuZ2Uge1xuICBoZWlnaHQ6IDFyZW0gIWltcG9ydGFudDsgfVxuXG5pbnB1dFt0eXBlPVwicmFuZ2VcIl06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiAjODhiZWQyOyB9XG5cbi5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OyB9XG4iLCJAaW1wb3J0ICcuL21lZGlhcXVlcmllcyc7XG5cbi8vLyAvIHN0eWxlZ3VpZGU6aWdub3JlOnN0YXJ0XG4vLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2Vcbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcbi8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIFRoZSBiYXNlIHZhbHVlIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBgcmVtYC4gSWYgeW91J3JlIHVzaW5nIEZvdW5kYXRpb24gb3V0IG9mIHRoZSBib3gsIHRoaXMgaXMgMTZweC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgYG51bGxgLCB0aGUgZnVuY3Rpb24gd2lsbCByZWZlcmVuY2UgdGhlIGAkYmFzZS1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlPT1udWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpPT0nJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cbiAgQGlmICRjb3VudD09MSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XG59XG5cbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXG5AZnVuY3Rpb24gLXpmLWJwLXRvLWVtKCR2YWx1ZSkge1xuICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICBAaWYgdW5pdCgkdmFsdWUpPT0ncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9J251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSsnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW1cbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWU9PTByZW0ge1xuICAgICR2YWx1ZTogMDtcbiAgfVxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIEFuaW1hdGlvbiBrZXlmcmFtZXMgYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGFuaW1hdGlvbi1uYW1lIC0gTmFtZSBvZiB0aGUgYW5pbWF0aW9uLlxuQG1peGluIGtleWZyYW1lcygkYW5pbWF0aW9uLW5hbWUpIHtcbiAgQC13ZWJraXQta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1tb3ota2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1tcy1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW8ta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBBbmltYXRpb24gYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0ciAtIGNzczMgYW5pbWF0aW9uIHNwZWMuXG5AbWl4aW4gYW5pbWF0aW9uKCRzdHIpIHtcbiAgLXdlYmtpdC1hbmltYXRpb246ICN7JHN0cn07XG4gIC1tb3otYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtbXMtYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtby1hbmltYXRpb246ICN7JHN0cn07XG4gIGFuaW1hdGlvbjogI3skc3RyfTtcbn1cblxuLy8vIEJveCBzaGFkb3cgYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0ciAtIGNzczMgYm94LXNoYWRvdyBzcGVjLlxuQG1peGluIGJveC1zaGFkb3coJHN0cikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICN7JHN0cn07XG4gIC1tb3otYm94LXNoYWRvdzogI3skc3RyfTtcbiAgLW8tYm94LXNoYWRvdzogI3skc3RyfTtcbiAgYm94LXNoYWRvdzogI3skc3RyfTtcbn1cblxuLy8vIGdyYWRpZW50IGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gZ3JhZGllbnQoJGNvbG9yMSwgJGNvbG9yMikge1xuICBiYWNrZ3JvdW5kOiAjeyRjb2xvcjF9O1xuICAvKiBGb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBncmFkaWVudHMgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBTYWZhcmkgNS4xIHRvIDYuMCAqL1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBPcGVyYSAxMS4xIHRvIDEyLjAgKi9cbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBGaXJlZm94IDMuNiB0byAxNSAqL1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIFN0YW5kYXJkIHN5bnRheCAqL1xufVxuXG5AbWl4aW4gdmVydGljYWwtZ3JhZGllbnQtZGl2aWRlcigpe1xuICB3aWR0aDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6IDFweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgaHJhLWNvbG9yKCRncmV5LCAyMCksICR3aGl0ZSk7XG59XG5cblxuLy8vIElFIG9ubHkgcXVlcnlcbkBtaXhpbiBpZS1vbmx5KCkge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuICAgIC8qIElFMTArIHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG5AbWl4aW4gY3JlYXRlLWFuaW1hdGlvbigkYW5pLW5hbWUpIHtcbiAgYW5pbWF0aW9uOiAkYW5pLW5hbWUgZm9yd2FyZHMgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cblxuQG1peGluIGNyZWF0ZS10cmFuc2l0aW9uKCRwcm9wZXJ0eS1uYW1lKSB7XG4gIHRyYW5zaXRpb246ICRwcm9wZXJ0eS1uYW1lIDMwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG4vLy8gRWRnZSBvbmx5IHF1ZXJ5XG5AbWl4aW4gZWRnZS1vbmx5KCkge1xuICBAc3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAvKiBFZGdlIHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG4vKiBGaXJlZm94IHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG5AbWl4aW4gZmlyZWZveC1vbmx5KCkge1xuICBAc3VwcG9ydHMgKC1tb3otYXBwZWFyYW5jZTpub25lKSB7XG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG5cbi8vIHN0eWxlZ3VpZGU6aWdub3JlOmVuZCIsIi8qXG5DT01NT04gQ09MT1IgTkFNRVNcblxuVGhlc2UgY29sb3JzIGFyZSBtYXBwZWQgdG8gdGhlIG5hbWVzIGZyb20gdGhlIG9mZmljaWFsIGNvbG9ycy5cbkluc3RlYWQgb2YgaGF2aW5nIG5hbWVzIGxpa2UgYGNydXNoYCBvciBgYmxhemVgLCBkZXZlbG9wZXJzIHdpbGwgdXNlIHRoZWlyIGNvbW1vbiwgbm9uLW1hcmtldGl6ZWQgbmFtZS5cbmVnLiAkcmVkOiBjcnVzaFxuICAgICRvcmFuZ2U6IGJsYXplXG5cblRoZW4sIHVzZSB0aGUgYGhyYS1jb2xvcmAgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb2xvclxuZWcuIGNvbG9yOiBocmEtY29sb3IoJHJlZClcbiovXG5cbiR0aGVtZS1ncmVlbjogI2RmZDI2OTtcbiR0aGVtZS1jb2xvcjogJHRoZW1lLWdyZWVuO1xuJGJsdWU6IGJsdWU7XG4kY3lhbjogY3lhbjtcbiRncmV5OiBncmV5O1xuJHJlZDogY3J1c2g7XG4kb3JhbmdlOiBibGF6ZTtcbiR5ZWxsb3c6IHN1bnNldCwgNjA7XG4kZ3JlZW46IHNlYWZvYW07XG4kbGlnaHQtZ3JlZW46IHNlYXdlZWQ7XG4kZGFyay1ncmVlbjogbWFyaW5lO1xuJGJyb3duOiBicm93bjtcbiRwdXJwbGU6IHB1cnBsZTtcbiRzdW5zZXQ6IHN1bnNldDtcbiRwaW5rOiBwaW5rO1xuXG4kbmV3Z3JleTogbmV3Z3JleTtcbiRuZXdibHVlOiBuZXdibHVlO1xuJG5ld2N5YW46IG5ld2N5YW47XG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBobWEncyBDb2xvdXIgUGFsZXR0ZVxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuJGNvbG9yczogKFxuICAgIGJsdWU6ICg1OiAjZjNmYmZlLCAxMDogI2UyZjRmYiwgMjA6ICNiYWU1ZjUsIDQwOiAjNzFjOGYxLCA2MDogIzMyYjZlOSwgODA6ICMwMDk5ZDMsIDEwMDogIzAwNzRhYSwgMTIwOiAjMDY0YzdjKSxcbiAgICBjcnVzaDogKDU6ICNmZmY3ZjYsIDEwOiAjZmVmMGVkLCAyMDogI2ZkZGZkYywgNDA6ICNmYWMxYmEsIDYwOiAjZjQ4MjcyLCA4MDogI2YxNjE0ZiwgMTAwOiAjZTMyNzIyLCAxMTA6I2MxM2YyYiwgMTIwOiAjYTcxZTIyKSxcbiAgICBjeWFuOiAoNTogI2YyZjlmOSwgMTA6ICNlNmY0ZjQsIDIwOiAjY2NlYWVhLCA0MDogIzlhZDdkNiwgNjA6ICM2OGM1YzQsIDgwOiAjMzZiMWIwLCAxMDA6ICMwMjlmOWQsIDEyMDogIzAyNmY2ZiksXG4gICAgYmxhemU6ICg1OiAjZmZmN2YzLCAxMDogI2ZmZjFlOSwgMjA6ICNmY2UxZDMsIDQwOiAjZmNjNWE3LCA2MDogI2Y3YTc3YiwgODA6ICNmNjg5NGQsIDEwMDogI2YyNmIyMSwgMTIwOiAjYjczZTI1KSxcbiAgICBncmV5OiAoNTogI2ZhZmJmYiwgMTA6ICNlY2VmZjAsIDIwOiAjZTRlN2U5LCA0MDogI2E4YjJiNywgNjA6ICM4MjhkOTMsIDgwOiAjNUI2NjcwLCAxMDA6ICMzZDQ2NGQsIDEyMDogIzE0MWUyNSksXG4gICAgc2VhZm9hbTogKDU6ICNlZmY5ZjgsIDEwOiAjZTRmN2YzLCAyMDogI2NmZWRlOCwgNDA6ICNhNWVhZGIsIDYwOiAjNjFkNmI4LCA4MDogIzJmZDJhOCwgMTAwOiAjMWVhZDhhLCAxMjA6ICMwYjcwNWQpLFxuICAgIHNlYXdlZWQ6ICg1OiAjZjhmYmY2LCAxMDogI2YyZjhlZCwgMjA6ICNlM2YwZDksIDQwOiAjY2JlNGI1LCA2MDogI2IwZDc4ZSwgODA6ICM5NWNiNmEsIDEwMDogIzdhYzE0MiwgMTIwOiAjNDk5MTQyKSxcbiAgICBtYXJpbmU6ICg1OiAjZjdmOWYzLCAxMDogI2YxZjRlOCwgMjA6ICNlNGVhZDIsIDQwOiAjY2JkOWE3LCA2MDogI2JmZGI4NSwgODA6ICNhZWQyNTUsIDEwMDogIzdhYTEzZSwgMTIwOiAjNGM3MzM2KSxcbiAgICBwZWJibGU6ICg1OiAjZmJmY2ZjLCAxMDogI2Y1ZjZmNiwgMjA6ICNlOWU4ZTksIDQwOiAjZDVkNGQ1LCA2MDogI2FhYWFhYiwgODA6ICM3YzdjODEsIDEwMDogIzU0NTM1NSwgMTIwOiAjMjgyNzJiKSxcbiAgICBzdW5zZXQ6ICg1OiAjZmZmZGVlLCAxMDogI2ZmZmJkYiwgMjA6ICNmZGY3YjQsIDQwOiAjZmZmNTdlLCA2MDogI2ZmZjEwMCwgODA6ICNmYmFkMWMsIDEwMDogI2Y0N2YxZiwgMTIwOiAjYzk1NDI4KSxcbiAgICBicm93bjogKDU6ICNmN2Y0ZjIsIDEwOiAjZWFlNGUxLCAyMDogI2Q4Y2VjYiwgNDA6ICNiYWFiYTUsIDYwOiAjOTY4MzdjLCA4MDogIzc3NWQ1MywgMTAwOiAjNTkzODJjLCAxMjA6ICMyZjE4MGQpLFxuICAgIHB1cnBsZTogKDU6ICNmMmVmZjcsIDEwOiAjZThkZmVmLCAyMDogI2Q3YzllMywgNDA6ICNjMWFlZDUsIDYwOiAjYTA4NWJlLCA4MDogIzdiNjFhYSwgMTAwOiAjNjY0ZmExLCAxMjA6ICM0MjJlODUpLFxuICAgIHBpbms6ICg1OiAjZmVmNGY4LCAxMDogI2ZjZTdlZiwgMjA6ICNmYWRhZTEsIDQwOiAjZjRhMmMyLCA2MDogI2VkNzNhNCwgODA6ICNlOTQ1ODYsIDEwMDogI2UzMTU2NywgMTIwOiAjYWIxZDQxKSxcblxuICAgIC8vIE5ldyBVSSBLaXQgY29sb3JzIC0gbmV3IHByZWZpeCB3aWxsIGJlIHJlbW92ZWQgb25jZSB0aGUgbWlncmF0aW9uIGlzIGNvbXBsZXRlZFxuICAgIC8vIEl0IGFsc28gbWFrZXMgc3VyZSB0aGF0IGNvbG9yIHZhcmlhYmxlcyBhcmUgdXNlZFxuICAgIG5ld2dyZXk6ICg1OiAjZmNmY2ZjLCAxMDogI2Y3ZjdmNywgMjA6ICNmMmYyZjIsIDQwOiAjZTllOWU5LCA1MDogI2M3YzdjNywgNjA6ICNhOWE5YTksIDcwOiAjODA4MDgwLCA4MDogIzZiNmI2YiwxMDA6ICM0YjRiNGIsMTIwOiMyOTI5MjkpLFxuICAgIG5ld2JsdWU6ICg1OiAjZjBmNmZhLCAxMDogI2UyZWVmNSwgMjA6ICNiOGQ1ZTcsIDQwOiAjOGViYmQ3LCA1MDogIzY5YTFjNywgNTU6ICM0ZjhmYmQsIDY1OiAjMzg3ZWIzLCA3MDogIzJmNzJhOCwgODA6ICMyNTYyOTcsIDEwMDogIzFkNTI4NSwgMTIwOiAjMTAzNzY2KSxcbiAgICBuZXdjeWFuOiAoNTogI2YwZjZmYSwgMTA6ICNlMmVlZjUsIDIwOiAjYjhkNWU3LCA0MDogIzhlYmJkNywgNTA6ICM2OWExYzcsIDU1OiAjNGY4ZmJkLCA2NTogIzM4N2ViMywgMTAwOiAjMmY3MmE4LCAxMjA6ICMyNTYyOTcsIDE0MDogIzFkNTI4NSwgMTYwOiAjMTAzNzY2KSxcbik7XG5cbkBmdW5jdGlvbiBocmEtY29sb3IoJGNvbG9yLCAkdmFsdWU6IDEwMCkge1xuICAgICRzZWxlY3RlZENvbG9yOiAkY29sb3I7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGNvbG9yKSA9PSAnbGlzdCcpIHtcbiAgICAgICAgJHNlbGVjdGVkQ29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAgICAgICAkdmFsdWU6IG50aCgkY29sb3IsIDIpO1xuICAgIH1cblxuICAgICRjb2xvci1tYXA6IG1hcC1nZXQoJGNvbG9ycywgJHNlbGVjdGVkQ29sb3IpO1xuICAgIEBpZiAoJGNvbG9yLW1hcCA9PSBudWxsKSB7XG4gICAgICAgIEBlcnJvciAkc2VsZWN0ZWRDb2xvciArICcgaXMgbm90IHBhcnQgb2YgdGhlIGNvbG9yIHBhbGV0dGUnO1xuICAgIH1cbiAgICBAcmV0dXJuIG1hcC1nZXQoJGNvbG9yLW1hcCwgJHZhbHVlKTtcbn1cblxuJGJsYWNrOiBocmEtY29sb3IoJGdyZXksIDEyMCk7XG4kd2hpdGU6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiRjb2xvci1ncmF5LXRyYW5zcGFyZW50OiB0cmFuc3BhcmVudGl6ZShocmEtY29sb3IoJGdyZXkpLCAwLjgpO1xuJGhvdmVyLWNvbG9yOiBocmEtY29sb3IoJGdyZXksIDIwKTtcblxuXG4vKiAqKioqICovXG4kc3VjY2Vzcy1jb2xvcjogaHJhLWNvbG9yKCRncmVlbik7XG4kd2FybmluZy1jb2xvcjogaHJhLWNvbG9yKCR5ZWxsb3cpO1xuJGFsZXJ0LWNvbG9yOiBocmEtY29sb3IoJHJlZCk7XG4kY29sb3ItaW52YWxpZDogaHJhLWNvbG9yKCRyZWQpO1xuJGRpc2FibGVkLWNvbG9yOiBocmEtY29sb3IoJGdyZXksIDEwKTtcbiRkaXNhYmxlZC1ib3JkZXI6IGhyYS1jb2xvcigkZ3JleSwgNDApO1xuJGNvbG9yLWhyYS1hbmNob3I6IGhyYS1jb2xvcigkYmx1ZSk7XG4kZGlzYWJsZWQtZm9yZS1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCA0MCk7XG5cbi8qICogQ2hhcnRzIENvbG9ycyAqL1xuJHN0YWNrZWQtdG9vbHRpcC1jaXJjbGUtYmc6ICMzZjQwNDI7XG4kY2hhcnQtdG9vbHRpcC1jaXJjbGU6ICNmZjg5NGM7XG4kZG9udXQtY291bnQ6ICNmZjZiNTc7XG5cbi8qIGluZm8gdGV4dCBiYWNrZ3JvdW5kICovXG4kaW5mby1iYWNrZ3JvdW5kOiAjZmZmZGU2O1xuXG5cbi8qIFVzZSBmb2xsb3dpbmcgY2xhc3NlcyBmb3IgYWVzdGhldGljcyBvbmx5IC0gTmV3IFVJIEtJVCAqL1xuLy8gU3RhbmRhcmRpc2UgdmFyaWFibGVzIHNob3VsZCBiZSB1c2VkIGluc3RlYWQgb2YgZGlyZWN0IGNvbG9yc1xuLyogQ29sb3IgTWFwcGluZyovXG4kcHJpbWFyeS1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Ymx1ZSwgNzApO1xuJHByaW1hcnktaG92ZXItYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDEwMCk7XG4kcHJpbWFyeS10ZXh0OiR3aGl0ZTtcblxuJGRlbGV0ZS1iYWNrZ3JvdW5kOiBocmEtY29sb3IoJHJlZCwgMTEwKTtcblxuJHNlY29uZGFyeS10ZXh0OmhyYS1jb2xvcigkbmV3Ymx1ZSwgNTUpO1xuJHNlY29uZGFyeS1iYWNrZ3JvdW5kOiR3aGl0ZTtcbiRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDUpO1xuJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Z3JleSwgNTApO1xuJHNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZDokc2Vjb25kYXJ5LXRleHQ7XG5cbiRmbGF0LWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDgwKTtcbiRmbGF0LWhvdmVyOiBocmEtY29sb3IoJG5ld2dyZXksIDEwMCk7XG4kZmxhdC1kaXNhYmxlZDogaHJhLWNvbG9yKCRuZXdncmV5LCA3MCk7XG5cbiRhY3Rpb24taG92ZXItYmFja2dyb3VuZDogaHJhLWNvbG9yKCRuZXdibHVlLCA4MCk7XG4kYWN0aW9uLWRpc2FibGVkOiBocmEtY29sb3IoJG5ld2dyZXksIDU1KTtcbiRhY3Rpb24tYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDUwKTtcbi8qZW5kcyovXG5cbiRidXR0b24tcHJpbWFyeS10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktYmFja2dyb3VuZDtcbiRidXR0b24tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiRwcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLXByaW1hcnktZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1kZWxldGUtYmFja2dyb3VuZC1jb2xvcjogJGRlbGV0ZS1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1wcmltYXJ5LWRpc2FibGVkLWJvcmRlci1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuXG4vLyBTZWNvbmRhcnkgYnV0dG9ucyBhbmQgc2Vjb25kYXJ5IGFjdGlvbiBidXR0b25zIHNoYXJlIGNvbG9ycyBcbiRidXR0b24tc2Vjb25kYXJ5LWJvcmRlci1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1zZWNvbmRhcnktdGV4dC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItdGV4dC1jb2xvcjogJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1zZWNvbmRhcnktZGlzYWJsZWQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG5cbiRidXR0b24tZmxhdC1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiRidXR0b24tZmxhdC1jb2xvcjogJGZsYXQtY29sb3I7XG4kYnV0dG9uLWZsYXQtaG92ZXItY29sb3I6JGZsYXQtaG92ZXI7XG4kYnV0dG9uLWZsYXQtZGlzYWJsZWQtY29sb3I6ICRmbGF0LWRpc2FibGVkO1xuXG4kYnV0dG9uLWFjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1ob3Zlci10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1kaXNhYmxlZC10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1kZWxldGUtYmFja2dyb3VuZC1jb2xvcjokZGVsZXRlLWJhY2tncm91bmQ7XG5cbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWRpc2FibGVkLWNvbG9yOiAkYWN0aW9uLWRpc2FibGVkO1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG5cbiR1bnNlbGVjdGVkLWNob2ljZS1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJHNlbGVjdGVkLWNob2ljZS1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuXG4kcmFkaW8tbGFiZWwtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiR0b2dnbGUtb24tYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJHRvZ2dsZS1vZi1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kdG9nZ2xlLWhlYWQtY29sb3I6ICR3aGl0ZTtcblxuJGlucHV0LXRleHQtbGFiZWwtY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgMTIwKTtcbiRpbnB1dC10ZXh0LWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA0MCk7XG4kaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA2MCk7XG4kaW5wdXQtdGV4dC1hY3RpdmUtYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDgwKTtcbiRpbnB1dC10ZXh0LWFjdGl2ZS10ZXh0LWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDEyMCk7XG4kaW5wdXQtdGV4dC1lcnJvci1ib3JkZXItY29sb3I6IGhyYS1jb2xvcigkcmVkLCAxMTApO1xuJGlucHV0LXRleHQtZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDUwKTtcbiRpbnB1dC10ZXh0LWVycm9yLW1lc3NhZ2UtY29sb3I6ICRpbnB1dC10ZXh0LWVycm9yLWJvcmRlci1jb2xvcjtcbiRpbnB1dC10ZXh0LWRpc2FibGVkLWNvbG9yOiAkaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjtcbiRpbnB1dC10ZXh0LWxhYmVsLWRpc2FibGVkLWNvbG9yOiAkaW5wdXQtdGV4dC1ib3JkZXItY29sb3I7XG4kaW5wdXQtdGV4dC1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjsiLCJAaW1wb3J0ICdtaXhpbnMnO1xuQGltcG9ydCAnY29sb3JzJztcblxuLyogVXNlZCBmb3IgZ3JpZHMgYW5kIG1hcmdpbnMgKi9cblxuJHNtYWxsLXNpemU6IDQgIWRlZmF1bHQ7XG4kbGFyZ2Utc2l6ZTogMTIgIWRlZmF1bHQ7XG4kc21hbGwtc3F1YXJlOiByZW0tY2FsYygkc21hbGwtc2l6ZSkgIWRlZmF1bHQ7XG4kbGFyZ2Utc3F1YXJlOiByZW0tY2FsYygkbGFyZ2Utc2l6ZSkgIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtZ3JheTogdHJhbnNwYXJlbnRpemUoaHJhLWNvbG9yKCRncmV5LCA0MCksIDAuOCk7XG4kdHJhbnNwYXJlbnQtd2hpdGU6IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KTtcbiRhbmltYXRpb24tdGltaW5nOiAwLjI1cztcbiRyYWQtZ3JhZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyLCB0cmFuc3BhcmVudGl6ZShocmEtY29sb3IoJGdyZXkpLCAwLjUpIDgwJSwgdHJhbnNwYXJlbnRpemUoJGJsYWNrLCAwLjUpIDEwMCUpO1xuJGxpbmVhci1ncmFkOiByZ2JhKCRibGFjaywgMC43KTtcblxuJHNjcm9sbC1iYXItd2lkdGg6ICRzbWFsbC1zcXVhcmUgKiAyO1xuJHNjcm9sbC1iYXItd2lkdGgtZmlyZWZveDogcmVtLWNhbGMoMTcpO1xuJHNjcm9sbC1iYXItd2lkdGgtZWRnZTogcmVtLWNhbGMoMTcpO1xuJHNjcm9sbC1iYXItd2lkdGgtaWU6IHJlbS1jYWxjKDE3KTtcblxuLypcbiAgZm9udCBzaXplc1xuICovXG4kaWNvbi1mb250LXNpemUtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiAzICFkZWZhdWx0OyAvLyAxMnB4XG4kaWNvbi1mb250LXNpemUtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogNCAhZGVmYXVsdDsgLy8gMTZweFxuJGljb24tZm9udC1zaXplLXJlZ3VsYXI6ICRzbWFsbC1zcXVhcmUgKiA1ICFkZWZhdWx0OyAvLyAyMHB4XG4kaWNvbi1mb250LXNpemUtbGFyZ2U6ICRzbWFsbC1zcXVhcmUgKiA2OyAvLyAyNHB4XG4kaWNvbi1mb250LXNpemUteC1sYXJnZTogJHNtYWxsLXNxdWFyZSAqIDc7IC8vIDI4cHhcbiRpY29uLWZvbnQtc2l6ZS1wbGFjZWhvbGRlcjogJGxhcmdlLXNxdWFyZSAqIDc7XG4kZm9udC1zaXplOiAkaWNvbi1mb250LXNpemUtbWVkaXVtICFkZWZhdWx0OyAvLyAxM3B4XG4kZm9udC1zaXplLW1lZGl1bTogJGljb24tZm9udC1zaXplLW1lZGl1bTsgLy8xNnB4XG4kZm9udC1zaXplLWxhcmdlOiAkaWNvbi1mb250LXNpemUtcmVndWxhcjtcbiRmb250LXNpemUteC1sYXJnZTogJGljb24tZm9udC1zaXplLXgtbGFyZ2U7XG4kZm9udC1zaXplLWhlYWRlcjogMTRweDtcblxuXG4kZm9udC13ZWlnaHQtbGlnaHQ6IDMwMDsgLy8gU291cmNlIFNhbnMgUHJvIExpZ2h0XG4kZm9udC13ZWlnaHQtcmVndWxhcjogNDAwOyAvLyBTb3VyY2UgU2FucyBQcm8gTGlnaHRcbiRmb250LXdlaWdodC1zZW1pLWJvbGQ6IDYwMDsgLy8gU291cmNlIFNhbnMgUHJvIFNlbWkgQm9sZFxuJGZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDsgLy8gU291cmNlIFNhbnMgUHJvIEJvbGRcblxuXG5cbi8qXG4gKiBIZWFkZXIgc2l6ZVxuICovXG5cbiRoZWFkZXItaGVpZ2h0OiByZW0tY2FsYyg1MikgIWRlZmF1bHQ7XG4kaGVhZGVyLXRleHQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogOCAhZGVmYXVsdDsgLy8zMnB4XG4kc3ViLW5hdi1oZWlnaHQ6IDByZW0gIWRlZmF1bHQ7IC8vIDBweFxuJHNlYXJjaC1iYXItaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTUgIWRlZmF1bHQ7XG4vLyRwYWdpbmF0aW9uLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDI1ICFkZWZhdWx0O1xuJGNoYXJ0cy1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3NCAhZGVmYXVsdDtcbiRtYWluLWhlYWRlci1oZWlnaHQ6ICRoZWFkZXItaGVpZ2h0KyRzdWItbmF2LWhlaWdodCAhZGVmYXVsdDtcbiR2aXJ0dWFsLWdyb3VwLWluZGljYXRvci1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3O1xuJGhlYWRlci1zaWRlLW1hcmdpbjogcmVtLWNhbGMoMjQpO1xuXG4vKlxuICogRGV2aWNlIEdyb3VwIHNldHRpbmdzXG4gKi9cblxuJGRldmljZS1ncm91cC1wYWRkaW5nLWxlZnQ6ICRzbWFsbC1zcXVhcmUgKiA2O1xuJGRldmljZS1ncm91cC1pdGVtcy1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA5O1xuJGRldmljZS1ncm91cC13aWR0aDogJGxhcmdlLXNxdWFyZSAqIDI4O1xuJGRldmljZS1ncm91cC1taW4td2lkdGg6ICRzbWFsbC1zcXVhcmUgKiA1NTtcbiRkZXZpY2UtZ3JvdXAtbWF4LXdpZHRoOiAkc21hbGwtc3F1YXJlICogMTQwO1xuJGRldmljZS1ncm91cC1tYXJnaW4tdG9wOiAkc2VhcmNoLWJhci1oZWlnaHQ7XG4kZGV2aWNlLWdyb3VwLWJ1dHRvbi13aWR0aDogJGxhcmdlLXNxdWFyZSAqIDIxO1xuJGRldmljZS1ncm91cC1idXR0b24taGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTE7XG4kZGV2aWNlLWdyb3VwLWJ1dHRvbi1ib3JkZXI6IDFweCBzb2xpZCBocmEtY29sb3IoJGdyZXksIDIwKTtcblxuLypcbiAqIEJvcmRlciBzZXR0aW5nc1xuICovXG5cbiRib3JkZXItYmFzZTogMXB4IHNvbGlkIHJnYigyMDQsIDIwNCwgMjA0KTtcbiRib3JkZXItcmFkaXVzLXNtYWxsOiAzcHg7XG4kYm9yZGVyLXJhZGl1cy1iYXNlOiA0cHg7XG4kYm9yZGVyLXJhZGl1cy1sYXJnZTogNnB4O1xuXG4vKlxuICogU2hhZG93cyBnbyBieSBsZXZlbFxuICovXG5cbiRzaGFkb3c6IDAgM3B4IDlweCByZ2JhKDAsIDAsIDAsIC41KTtcbiRzaGFkb3ctMTogMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiRzaGFkb3ctc21hbGw6IDAgMXB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xuJHNoYWRvdy1oZWFkZXI6IDBweCAxcHggMTNweCAycHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1zZWFyY2gtaGVhZGVyOiA4cHggMXB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctbGlnaHQ6IDFweCAxcHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiRzaGFkb3ctbGlnaHQtYm90dG9tLW9ubHk6IDBweCAxcHggOHB4IHJnYmEoJGJsYWNrLCAwLjEzKTtcbiRzaGFkb3ctYWJvdmU6IDAgLTFweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWFib3ZlLWxlZnQ6IC02cHggMHB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctYmVsb3c6IDBweCA5cHggOHB4IC01cHggcmdiYSgxNTgsIDE1OCwgMTU4LCAwLjI1KTtcbiRzaGFkb3ctZHJvcGRvd246IDAgMXB4IDEzcHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1kaWFsb2c6IDAgOHB4IDIwcHggNnB4IHJnYmEoJGJsYWNrLCAwLjYpO1xuJHNoYWRvdy1kaWFsb2ctc3VmZml4OiAwcHggMTZweCAyMHB4IDNweCByZ2JhKCRibGFjaywgMC42KTtcbiRzaGFkb3ctbGF5b3V0OiA2cHggMHB4IDlweCAwcHggcmdiYSgkYmxhY2ssIDAuMik7XG4kc2hhZG93LXNhdmVkLXNlYXJjaGVzOiA0cHggNHB4IDhweCAtMnB4IHJnYmEoNjcsNzAsNzQsLjEzKTtcbiRzaGFkb3ctY2hhcnQtY2FyZDogMCA2cHggMTZweCByZ2JhKDIwLDMwLDM3LDAuMDgpO1xuJHNoYWRvdy1jb25maWctY2FyZDogMCAwIDI0cHggMCByZ2JhKDIwLDMwLDM3LDAuMSk7XG5cbi8qXG4gKiBQYWRkaW5nIHNldHRpbmdzXG4gKi9cblxuJGJvZHktcGFkZGluZzogJGxhcmdlLXNxdWFyZSAqIDI7XG4kcGFkZGluZy1zbWFsbDogJGxhcmdlLXNxdWFyZTtcbiRiYXNlLXBhZGRpbmc6ICRzbWFsbC1zcXVhcmUgKiA0OyAvLyAxNnB4XG4kaGFsZi1iYXNlLXBhZGRpbmc6ICRiYXNlLXBhZGRpbmcgLyAyO1xuJG1vZGFsLXBhZGRpbmc6ICRiYXNlLXBhZGRpbmc7XG4kbGF5b3V0LXBhZGRpbmc6ICgkYmFzZS1wYWRkaW5nICogMikgKCRib2R5LXBhZGRpbmcgKiAyKSAoJGJhc2UtcGFkZGluZyAqIDIpICgkYm9keS1wYWRkaW5nICogMik7XG4kcGFkZGluZy1iYXNlLXZlcnRpY2FsOiA2cHg7XG4kcGFkZGluZy1iYXNlLWhvcml6b250YWw6ICRzbWFsbC1zcXVhcmUgKiAzO1xuJHBhZGRpbmctbGFyZ2UtdmVydGljYWw6IDEwcHg7XG4kcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsOiAgJHNtYWxsLXNxdWFyZSAqIDQ7XG4kcGFkZGluZy1tZWRpdW0tdmVydGljYWw6IDE0cHg7XG4kcGFkZGluZy1zbWFsbC12ZXJ0aWNhbDogNXB4O1xuJHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDogMTBweDtcblxuLypcbiAqIElucHV0c1xuICovXG4kaW5wdXQtcGFkZGluZzogJHNtYWxsLXNxdWFyZSAkc21hbGwtc3F1YXJlICogMjtcbiRpbnB1dC1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA4O1xuXG4vKlxuICogVG9vbFRpcHNcbiAqL1xuXG4vLyBUb29sdGlwc1xuJHRvb2x0aXAtbWF4LXdpZHRoOiAyNTBweCAhZGVmYXVsdDtcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KSAhZGVmYXVsdDtcbiR0b29sdGlwLXRleHQtY29sb3I6ICNmZmYgIWRlZmF1bHQ7XG4kdG9vbHRpcC1kZWxheTogMC40cyAhZGVmYXVsdDtcbiR0b29sdGlwLWR1cmF0aW9uOiAwLjFzICFkZWZhdWx0O1xuXG4vKlxuICogQWN0aW9uIGJhciBzaXplc1xuICovXG5cbiRkZXZpY2UtYWN0aW9uLWJhci1oZWlnaHQ6ICRsYXJnZS1zcXVhcmUgKiA1O1xuJGNvdW50LWNvbnRhaW5lci1wYWRkaW5nOiAoJGxhcmdlLXNxdWFyZSAqIDIpICgkc21hbGwtc3F1YXJlICogNCkgKCRsYXJnZS1zcXVhcmUgKiAyKSAoJHNtYWxsLXNxdWFyZSAqIDQpO1xuXG4vKipcbiogIERldmljZSBncmlkIHNpemVzXG4qL1xuXG4kcm93LWFib3ZlLWdyaWQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTQ7XG4kY2hlY2stY2VsbC1wYWRkaW5nOiAwIDAgMCAkc21hbGwtc3F1YXJlKjI7XG4kZGV2aWNlLWdyaWQtbWluLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDcxO1xuXG4vKlxuICogRm9jdXMgYm9yZGVyXG4gKi9cblxuJGhyYS1mb2N1cy1vdXRsaW5lOiAycHggc29saWQgaHJhLWNvbG9yKCRjeWFuKTtcblxuLypcbiAqIEJvcmRlclxuICovXG5cbiRocmEtYm9yZGVyOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCAyMCk7XG4kaHJhLWJvcmRlci1lcnJvcjogMXB4IHNvbGlkIGhyYS1jb2xvcigkcmVkKTtcbiRocmEtYm9yZGVyLWlucHV0LWRpc2FibGVkOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCA0MCk7XG5cblxuLypcbiAqIFBvcC11cFxuKi9cbiRocmEtcG9wdXAtYmVhay1zaXplOiAkc21hbGwtc3F1YXJlKjM7XG4kaHJhLXBvcHVwLWJlYWstYm90dG9tLWNlbnRlcjogY2FsYyg1MCUgLSAoMS4yNXJlbSAvIDIpKTtcbiRwb3AtdXAtZm9vdGVyLWhlaWdodDogJGxhcmdlLXNxdWFyZSAqIDU7XG4kcG9wLXVwLXRpdGxlLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDEzO1xuJHBvcC11cC10aXRsZS1tYWpvci1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxNDtcbi8vIHN0eWxlZ3VpZGU6aWdub3JlOmVuZFxuXG4vKlxuKiBTdGF0dXMgTm90aWZpY2F0aW9uXG4qL1xuJGhyYS1zdGF0dXMtbm90aWZpY2F0aW9uLXdpZHRoOiAkc21hbGwtc3F1YXJlICogODM7XG4kaHJhLXN0YXR1cy1ub3RpZmljYXRpb24tdG9wOiAkc21hbGwtc3F1YXJlICogMTQ7XG4kaHJhLXN0YXR1cy1ub3RpZmljYXRpb24tYm90dG9tOiAkc21hbGwtc3F1YXJlICogMTU7XG5cblxuLypcbiAgUm91bmQgYnV0dG9uIHNpemVzXG4gKi9cbiAkcm91bmQtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiA3O1xuICRyb3VuZC1tZWRpdW06ICRzbWFsbC1zcXVhcmUgKiA4O1xuICRyb3VuZC1sYXJnZTogJHNtYWxsLXNxdWFyZSAqIDk7XG5cbi8qXG4gKiBJbWFnZSBJY29uIFNpemVzXG4gKi9cblxuJGltZy1pY29uLXNpemUtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiA4O1xuJGltZy1pY29uLXNpemUtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogMTA7XG5cblxuJGJlemllcjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcblxuXG4vKiogTW9kYWwgc2l6ZXMgKiovXG4kbW9kYWwtdGl0bGUtaGVpZ2h0OiByZW0tY2FsYyg1Mik7XG4kbW9kYWwtZm9vdGVyLWhlaWdodDogcmVtLWNhbGMoNjApO1xuIiwiQGltcG9ydCBcIi4uLy4uL3NoYXJlZC9zdHlsZXMvYmFzZS9zZXR0aW5nc1wiO1xuXG4uZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyLXJhZGl1czogMCUgIWltcG9ydGFudDtcbn1cblxuLnNlY3Rpb24ge1xuICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50O1xufVxuXG4uc3ViLXNlY3Rpb24ge1xuICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxubGFiZWwge1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4vLyAuZm9ybS1jaGVjay1pbmxpbmUgLmZvcm0tY2hlY2staW5wdXQge1xuLy8gICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuLy8gfVxuXG4udGV4dC1yaWdodC5pcy1pbnZhbGlkIHtcbiAgLmludmFsaWQtZmVlZGJhY2sge1xuICAgIGNvbG9yOiBncmVlbjtcbiAgICBsaSB7XG4gICAgICByaWdodDogMzVweDtcbiAgICAgIHRvcDogMjVweDtcbiAgICB9XG4gIH1cbn1cblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5mb3JtLWdyb3VwIGxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLnNsaWRlciB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG9wYWNpdHk6IDE7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4ycztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xufVxuXG4uc2xpZGVyOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLnNsaWRlcjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNkZmQyNjk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvKiBIaWRlcyB0aGUgc2xpZGVyIHNvIHRoYXQgY3VzdG9tIHNsaWRlciBjYW4gYmUgbWFkZSAqL1xuICB3aWR0aDogMTAwJTsgLyogU3BlY2lmaWMgd2lkdGggaXMgcmVxdWlyZWQgZm9yIEZpcmVmb3guICovXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyAvKiBPdGhlcndpc2Ugd2hpdGUgaW4gQ2hyb21lICovXG59XG5cbi5zbGlkZXI6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICBiYWNrZ3JvdW5kOiAjZGZkMjY5O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jdXN0b20tcmFuZ2Uge1xuICBoZWlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbn1cblxuaW5wdXRbdHlwZT1cInJhbmdlXCJdOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogIzg4YmVkMjtcbn1cblxuLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tdG9wOiAwIWltcG9ydGFudDtcbn1cbiJdfQ== */\"","import { Component, Input, ComponentFactoryResolver } from '@angular/core';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { DynamicControlBase } from '../dynamic-control.base';\n\n@Component({\n selector: 'app-dynamic-form-builder',\n templateUrl: './dynamic-form-builder.component.html',\n styleUrls: ['./dynamic-form-builder.component.scss']\n})\nexport class DynamicFormBuilderComponent {\n @Input() question: DynamicControlBase;\n @Input() form: FormGroup;\n\n get isValid() {\n return this.form.controls[this.question.key] instanceof FormControl ? this.form.controls[this.question.key].valid : true;\n }\n\n shouldShowErrors(): boolean {\n const control = this.form.controls[this.question.key];\n const isCOntrol = control instanceof FormControl;\n const reult = control && isCOntrol && (\n this.form.controls[this.question.key].errors\n && (this.form.controls[this.question.key].dirty || this.form.controls[this.question.key].touched));\n return reult;\n }\n\n getValue() {\n const control = this.form.controls[this.question.key];\n return !!control ? control.value : '';\n }\n\n getSubForm(formKey: string) {\n const form = this.form.controls[formKey];\n return form instanceof FormGroup ? form : null;\n }\n\n listOfErrors() {\n return Object.keys(this.form.controls[this.question.key].errors)\n .map(field => this.getMessage(field, this.form.controls[this.question.key].errors[field]));\n }\n\n private getMessage(type: string, params: any) {\n const currentValidator = this.question.validators.filter(field => {\n return field.validator['name'] === type;\n });\n\n return !!currentValidator && currentValidator.length > 0 ? currentValidator[0].errorMessage : '';\n }\n}\n","export default \".form-control {\\n border-radius: 0% !important; }\\n\\n.section {\\n font-weight: bold !important; }\\n\\n.sub-section {\\n font-weight: 600 !important;\\n margin-bottom: 0 !important; }\\n\\nlabel {\\n margin-right: 0.5rem !important; }\\n\\n.text-right .invalid-feedback li {\\n right: 35px;\\n top: 25px; }\\n\\n.hidden {\\n display: none; }\\n\\n.form-group label {\\n font-weight: normal; }\\n\\n.form-group {\\n margin-top: 0 !important; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9kYXRhLWRyaXZlbi9keW5hbWljLWZvcm0vZHluYW1pYy1mb3JtLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsNEJBQTRCLEVBQUE7O0FBRzlCO0VBQ0UsNEJBQTRCLEVBQUE7O0FBRzlCO0VBQ0UsMkJBQTJCO0VBQzNCLDJCQUEyQixFQUFBOztBQUc3QjtFQUNFLCtCQUErQixFQUFBOztBQU9qQztFQUdNLFdBQVc7RUFDWCxTQUFTLEVBQUE7O0FBS2Y7RUFDRSxhQUFhLEVBQUE7O0FBR2Y7RUFDRSxtQkFBbUIsRUFBQTs7QUFHckI7RUFDRSx3QkFBdUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL2RhdGEtZHJpdmVuL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyLXJhZGl1czogMCUgIWltcG9ydGFudDtcbn1cblxuLnNlY3Rpb24ge1xuICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50O1xufVxuXG4uc3ViLXNlY3Rpb24ge1xuICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxubGFiZWwge1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4vLyAuZm9ybS1jaGVjay1pbmxpbmUgLmZvcm0tY2hlY2staW5wdXQge1xuLy8gICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbi8vIH1cblxuLnRleHQtcmlnaHQge1xuICAuaW52YWxpZC1mZWVkYmFjayB7XG4gICAgbGkge1xuICAgICAgcmlnaHQ6IDM1cHg7XG4gICAgICB0b3A6IDI1cHg7XG4gICAgfVxuICB9XG59XG5cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZm9ybS1ncm91cCBsYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLXRvcDogMCFpbXBvcnRhbnQ7XG59XG5cbiJdfQ== */\"","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { DynamicControlBase } from '../dynamic-control.base';\n\n@Component({\n selector: 'app-dynamic-form',\n templateUrl: './dynamic-form.component.html',\n styleUrls: ['./dynamic-form.component.scss']\n})\n\nexport class DynamicFormComponent {\n\n @Input()\n questions: DynamicControlBase[] = [];\n\n @Input()\n form: FormGroup;\n\n constructor() { }\n}\n","import { Injectable } from '@angular/core';\n\nimport { of } from 'rxjs';\nimport { DynamicControlBase } from './dynamic-control.base';\nimport { Validators } from '@angular/forms';\n\n@Injectable()\nexport class QuestionService {\n\n private sectionClassName = 'section';\n private subSectionClassName = 'sub-section';\n\n private yesNoOptions = [{ key: 'Yes', value: 'Yes' }, { key: 'No', value: 'No' }];\n\n private ratingOptions = [{ key: '0', value: '0' }, { key: '1', value: '1' }, { key: '2', value: '2' }, { key: '3', value: '3' }];\n\n private rangeOptions = [{ key: 'minValue', value: '0' }, { key: 'maxValue', value: '3' }, { key: 'step', value: '1' }];\n\n private agreeDisAgreeOptions = [{ key: 'Agree', value: 'Agree' }, { key: 'Disagree', value: 'Disagree' }];\n\n private compareOptions = [{ key: 'less than', value: 'less than' }, { key: 'more than', value: 'more than' }, { key: 'the same amount', value: 'the same amount' }];\n\n private dayBasisOptions = [{ key: 'Never', value: 'Never' }, { key: 'Sometimes', value: 'Sometimes' }, { key: 'Often', value: 'Often' }, { key: 'Very often', value: 'Very often' }, { key: 'Every day', value: 'Every day' }];\n\n private stressOptions = [{ key: 'Not Very Likely', value: 'Not Very Likely' }, { key: 'Somewhat Likely', value: 'Somewhat Likely' }, { key: 'Likely', value: 'Likely' }, { key: 'Somewhat Unlikely', value: 'Somewhat Unlikely' }, { key: 'Very Likely', value: 'Very Likely' }];\n\n private stressManagementOptions = [{ key: 'Not difficult at all', value: 'Not difficult at all' }, { key: 'Somewhat difficult', value: 'Somewhat difficult' }, { key: 'Very difficult', value: 'Very difficult' }, { key: 'Extremely difficult', value: 'Extremely difficult' }];\n\n private motivatedOptions = [{ key: 'Not motivated', value: 'Not motivated' }, { key: 'Somewhat Motivated', value: 'Somewhat Motivated' }, { key: 'Motivated', value: 'Motivated' }, { key: 'Very Motivated', value: 'Very Motivated' }];\n\n private barrierOptions = [{ key: 'Not a barrier at all', value: 'Not a barrier at all' }, { key: 'A barrier somewhat', value: 'A barrier somewhat' }, { key: 'Tends to be a barrier', value: 'Tends to be a barrierYes' }, { key: 'Very much a barrier', value: 'Very much a barrier' }, { key: 'The largest barrier', value: 'The largest barrier' }];\n\n // TODO: get from a remote source of question metadata\n getQuestions(externalId: string) {\n const demographicCharacteristics: DynamicControlBase[] = [\n\n new DynamicControlBase('textbox', 'firstName', '', 'First Name',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1, null, false, 'col-md-4'),\n\n new DynamicControlBase('textbox', 'middleName', '', 'Middle Inital', null, 1, null, false, 'col-md-4'),\n\n new DynamicControlBase('textbox', 'lastName', '', 'Last Name',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1, null, false, 'col-md-4'),\n\n new DynamicControlBase('number', 'age', '', 'Age',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1, null, false, 'col-md-4'),\n\n new DynamicControlBase('textbox', 'gender', '', 'Gender',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1, null, false, 'col-md-4'),\n\n \n new DynamicControlBase('textbox', 'ethnicity', '', 'Ethnicity',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1, null, false, 'col-md-4'),\n\n new DynamicControlBase('textbox', 'externalId', externalId, 'Employee Id',\n (!!externalId ? null : [{ validator: Validators.required, errorMessage: 'This field is required' }]), 1, null, false, (!!externalId ? 'hidden' : 'col-md-4'))\n ];\n\n const medicalHealthCare = [\n new DynamicControlBase('textarea', 'previousHealthConcerns', '', 'Previous health concerns',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, false),\n\n new DynamicControlBase('textarea', 'currentHealthConcerns', '', 'Current health concerns',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, false),\n\n new DynamicControlBase('textarea', 'healthConcerns', '', 'Health concern(s) I struggle to manage/would like to better manage in the next 6 months',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, false),\n\n new DynamicControlBase('radio', 'visitAnnually', '', 'I see my physician for annual wellness and/or check-up visits',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('radio', 'visitOnSymptoms', '', 'I only see my physician only if I have symptoms',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('radio', 'followRecommendations', '', 'I tend to follow their recommendations',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('radio', 'interestedInPHC', '', 'I would be interested in learning more about preventative medical healthcare',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n ];\n\n const excercise = [\n new DynamicControlBase('radio', 'physicalActivityLevel', '', 'Which is most true about your level of physical activity:',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.dayBasisOptions, true),\n\n new DynamicControlBase('', '', '', 'In the next 6 months:', null, 1, null, false, null, this.subSectionClassName),\n\n new DynamicControlBase('radio', 'excerciseMoreFrequently', '', 'I would like to exercise more frequently:',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('radio', 'excerciseMoreConsistently', '', 'I would like to exercise more consistently:',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('radio', 'excerciseSupportPromotion', '', 'Would you like support promoting exercise into your daily life?',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true)\n ];\n\n const waterHabits = [\n new DynamicControlBase('radio', 'drinkEnoughWater', '', 'I drink enough water:',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.agreeDisAgreeOptions, true),\n\n new DynamicControlBase('radio', 'drinkWaterDay', '', 'I drink water throughout the day:',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.agreeDisAgreeOptions, true),\n\n new DynamicControlBase('radio', 'drinkOtherBeverages', '', 'I drink other beverages ',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.compareOptions, true)\n ];\n\n const caffeine = [\n new DynamicControlBase('radio', 'caffeine8', '', 'I consume approximately 8 oz. of coffee/caffeine in the morning',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('radio', 'caffeine24', '', 'I consume approximately 16-24 oz. of coffee/caffeine in the morning',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('radio', 'caffeineAfter2', '', 'I consume caffeine after 2 pm',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('radio', 'noCaffeine', '', 'I do not consume caffeine ',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true)\n ];\n\n const eatingHabits = [\n new DynamicControlBase('radio', 'balancedDiet', '', 'I eat a healthy and well-balanced diet:',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.dayBasisOptions, true),\n\n new DynamicControlBase('', '', '', 'I would eat healthier if:', null, 1, null, false, null, this.subSectionClassName),\n\n new DynamicControlBase('radio', 'couldAfford', '', 'I could afford to',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.agreeDisAgreeOptions, true),\n\n new DynamicControlBase('radio', 'knewHealthyFoods', '', 'If I knew more about what foods are considered healthy for me',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.agreeDisAgreeOptions, true),\n\n new DynamicControlBase('radio', 'knowPrepareHealthymeals', '', 'If I knew how to prepare healthy meals',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.agreeDisAgreeOptions, true),\n\n new DynamicControlBase[]>('array', 'waterHabits', waterHabits, 'Water:', null, 1, null, false, null, this.subSectionClassName),\n\n new DynamicControlBase[]>('array', 'caffeine', caffeine, 'Caffeine:', null, 1, null, false, null, this.subSectionClassName),\n\n new DynamicControlBase('radio', 'drinkOtherBeverages', '', 'I would like to learn more about how I can improve my eating and other dietary habits ',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n ];\n\n\n const stress = [\n new DynamicControlBase('radio', 'feelStressedOut', '', 'I know when I feel stressed out ',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.stressOptions, true),\n\n new DynamicControlBase('radio', 'knowMyStressors', '', 'I know what my stressors are ',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.stressOptions, true),\n\n new DynamicControlBase('radio', 'knowHowToRelaxMyMind', '', 'I know what to do to relax my mind and body when I feel stressed out',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.stressOptions, true),\n\n new DynamicControlBase('radio', 'learnNewWaysToCopeWithStress', '', 'I would like to learn new ways to cope with stress and relax ',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true)\n ];\n\n const smoking = [\n new DynamicControlBase('radio', 'useTobacco', '', 'I currently use tobacco',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('radio', 'smokeCigarettes', '', 'I smoke cigarettes',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('textbox', 'otherTobaccoProducts', '', 'Other tobacco products',\n null, 1, null, true),\n\n new DynamicControlBase('radio', 'attemptToQuitSmoking', '', 'Number of times I have attempted to quit: ',\n null, 1,\n [{ key: '0-5', value: '0-5' },\n { key: '5-10', value: '5-10' },\n { key: '5-20', value: '5-20' },\n { key: 'more times than I can count', value: 'more times than I can count' }], true),\n\n new DynamicControlBase('checkbox', 'triedWaysForQuitSmoking', '', 'I have tried: ', null, 1,\n [{ key: 'Cold turkey', value: 'Cold turkey' },\n { key: 'Gum', value: 'Gum' },\n { key: 'The patch', value: 'The patch' },\n { key: 'Rxn medication (e.g. Chantix, Bupropion)', value: 'Rxn medication (e.g. Chantix, Bupropion)' },\n { key: 'Support group', value: 'Support group' },\n { key: 'Behavioral health specialist', value: 'Behavioral health specialist' }], false),\n\n new DynamicControlBase('radio', 'motivatedToQuitSmoking', '', 'I am motivated to quit smoking',\n null, 1,\n this.yesNoOptions, true),\n ];\n\n const substanceUse = [\n new DynamicControlBase('radio', 'alcoholicDrinksPerDay', '', 'How many standard drinks containing alcohol do you have on a typical day when drinking?',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n [{ key: '0', value: '0' },\n { key: '1-2', value: '1-2' },\n { key: '3-4', value: '3-4' },\n { key: '5-6', value: '5-6' },\n { key: '7-9', value: '7-9' },\n { key: '10 or more', value: '10 or more' }], true),\n\n new DynamicControlBase('radio', 'alcoholicDrinksFrequency', '', 'How often do you have a drink containing alcohol?',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n [{ key: 'Never', value: 'Never' },\n { key: 'Monthly or less', value: 'Monthly or less' },\n { key: '2-4 times a month', value: '2-4 times a month' },\n { key: '2-3 times a week', value: '2-3 times a week' },\n { key: '4 or more times a week', value: '4 or more times a week' }], true),\n\n new DynamicControlBase('radio', 'concernAboutConsumption', '', 'Do you have any concerns about your current use of alcohol or other substances or concerns regarding a member of your family? ',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.stressOptions, true),\n\n new DynamicControlBase('radio', 'feelGuiltyAfterDrink', '', 'Do you ever feel guilty or remorseful about drinking or using other substances?',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('radio', 'wantToKnowImpact', '', 'Would you be interested in finding out more information about how the use of alcohol or other substances can impact your daily life? ',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase[]>('array', 'smoking', smoking, 'Smoking:', null, 1, null, false, null, this.subSectionClassName)\n ];\n\n const sleep = [\n new DynamicControlBase('radio', 'troubleFallingAsleep', '', 'Do you routinely have trouble falling or staying asleep at your regular bedtime?',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('radio', 'troubleFallingAsleepInDay', '', 'Do you ever have trouble with sleepiness during the daytime that interferes with your daily activities?',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('radio', 'sleepApnea', '', 'Have you ever been diagnosed with Sleep Apnea? If so, do you wear a C-PAP machine every night?',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('', '', '', 'On a scale of 0 – 3, rate how likely you are to doze off or fall asleep in these situations (circle the number that applies to each activity):', null, 1, null, false, null, this.subSectionClassName),\n\n // new DynamicControlBase('range', 'sitttingAndReading', '0', 'Sitting and Reading:',\n // [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n // this.rangeOptions, true),\n\n new DynamicControlBase('radio', 'sitttingAndReading', '', 'Sitting and Reading:',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.ratingOptions, true),\n\n new DynamicControlBase('radio', 'watchingTv', '', 'Watching TV:',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.ratingOptions, true),\n\n new DynamicControlBase('radio', 'sittingInactive', '', 'Sitting inactive in a public place (a theater or a meeting)',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.ratingOptions, true),\n\n new DynamicControlBase('radio', 'lyingDown', '', 'Lying down to rest in the afternoon (when circumstances permit)',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.ratingOptions, true),\n\n new DynamicControlBase('radio', 'sittingAndTalking', '', 'Sitting and talking to someone',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.ratingOptions, true),\n\n new DynamicControlBase('radio', 'sittingQuietlyAfterLunch', '', 'Sitting quietly after lunch without alcohol',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.ratingOptions, true),\n\n new DynamicControlBase('radio', 'inStoppedCar', '', 'In a car, while stopped for a few minutes during traffic',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.ratingOptions, true),\n new DynamicControlBase('radio', 'likeStrategiesToImproveSleep', '', 'Would you like strategies to help you improve your sleep quality and daytime alertness?',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n ];\n\n const stressManagement = [\n new DynamicControlBase('radio', 'concernsAbourStressManagement', '', 'How difficult do concerns regarding nervousness or anxiety, make it for you to do your work, take care of things at home, or get along with other people?',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.stressManagementOptions, true),\n\n new DynamicControlBase('radio', 'addStressManagementServices', '', 'Would you like information or additional tools or services related to relaxation or other techniques to promote concentration and stress management during the day?',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n ];\n\n const financialHealth = [\n new DynamicControlBase('radio', 'financeStress', '', 'Finances stress me out:',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('radio', 'financeBuyUnafforableThings', '', 'I sometimes buy things I can’t afford:',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('radio', 'financeFeelRegretFulafterBuy', '', 'I sometimes buy things and feel regretful afterwards:',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('radio', 'financesBuyWithoutThinking', '', 'I sometimes buy things without thinking it through:',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('radio', 'financeDebt', '', 'The amount of debt I am in weighs on me daily:',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n ];\n\n const socialSupport = [\n new DynamicControlBase('radio', 'havingAddSupport', '', 'Having additional social support would help me improve my health goals?',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('radio', 'moreSupportFromfriends', '', 'Having more support from my friends and family would reduce my stress?',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true),\n\n new DynamicControlBase('radio', 'adequateSupport', '', 'I have an adequate support system?',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.yesNoOptions, true)\n ];\n\n const motivatedRatings = [\n new DynamicControlBase('radio', 'physicalHealth', '', 'Physical Health',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.motivatedOptions, true),\n\n new DynamicControlBase('radio', 'habits', '', 'Exercise/Eating/Water habits',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.motivatedOptions, true),\n\n new DynamicControlBase('radio', 'stressManagement', '', 'Stress management/Anxiety/mood',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.motivatedOptions, true),\n\n new DynamicControlBase('radio', 'substanceTobaccoUse', '', 'Substance use/tobacco',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.motivatedOptions, true),\n\n new DynamicControlBase('radio', 'sleep', '', 'Sleep',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.motivatedOptions, true),\n\n new DynamicControlBase('radio', 'relationships', '', 'Relationships',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.motivatedOptions, true),\n\n new DynamicControlBase('radio', 'financialHealth', '', 'Financial health',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.motivatedOptions, true),\n\n new DynamicControlBase('textbox', 'other', '', 'I have an adequate support system?',\n null, 1, null, true)\n ];\n\n const barrierRatings = [\n new DynamicControlBase('radio', 'Stress', '', 'Stress/anxiety/mood',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.barrierOptions, true),\n\n new DynamicControlBase('radio', 'timeManagement', '', 'Time management',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.barrierOptions, true),\n\n new DynamicControlBase('radio', 'barrierInSleep', '', 'Sleep',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.barrierOptions, true),\n\n new DynamicControlBase('radio', 'dietaryEatingHabits', '', 'Dietary and other eating habits',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.barrierOptions, true),\n\n new DynamicControlBase('radio', 'familyObligations', '', 'Family obligations',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.barrierOptions, true),\n\n new DynamicControlBase('radio', 'religiousReasons', '', 'Religious/spiritual reasons ',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.barrierOptions, true),\n\n new DynamicControlBase('radio', 'lackOfMotivation', '', 'Lack of motivation',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.barrierOptions, true),\n\n new DynamicControlBase('radio', 'financial', '', 'Financial',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.barrierOptions, true),\n\n new DynamicControlBase('radio', 'fatigue', '', 'fatigue/lack of energy',\n [{ validator: Validators.required, errorMessage: 'This field is required' }], 1,\n this.barrierOptions, true),\n\n new DynamicControlBase('textbox', 'other', '', 'I have an adequate support system?',\n null, 1, null, true)\n ];\n\n const ratings = [\n new DynamicControlBase[]>('array', 'motivatedRatings', motivatedRatings, 'Please rank each domain you are motivated to improve in the next 6 months to improve your wellness: ', null, 1, null, false, null, this.subSectionClassName),\n new DynamicControlBase[]>('array', 'barrierRatings', barrierRatings, 'Please rank the following barriers to achieving your health & wellness goals in the next 6 months:', null, 1, null, false, null, this.subSectionClassName),\n ];\n\n const questions: DynamicControlBase[] = [\n new DynamicControlBase[]>('array', 'demographicCharacteristics', demographicCharacteristics, 'Demographic Characteristics:', null, 1, null, false, null, this.sectionClassName),\n new DynamicControlBase[]>('array', 'medicalHealthCare', medicalHealthCare, 'Medical HealthCare:', null, 1, null, false, null, this.sectionClassName),\n new DynamicControlBase[]>('array', 'excercise', excercise, 'Exercise:', null, 1, null, false, null, this.sectionClassName),\n new DynamicControlBase[]>('array', 'eatingHabits', eatingHabits, 'Eating Habits:', null, 1, null, false, null, this.sectionClassName),\n new DynamicControlBase[]>('array', 'stress', stress, 'Stress:', null, 1, null, false, null, this.sectionClassName),\n new DynamicControlBase[]>('array', 'substanceUse', substanceUse, 'Substance Use:', null, 1, null, false, null, this.sectionClassName),\n new DynamicControlBase[]>('array', 'sleep', sleep, 'Sleep:', null, 1, null, false, null, this.sectionClassName),\n new DynamicControlBase[]>('array', 'stressManagement', stressManagement, 'Stress Management:', null, 1, null, false, null, this.sectionClassName),\n new DynamicControlBase[]>('array', 'financialHealth', financialHealth, 'Financial Health:', null, 1, null, false, null, this.sectionClassName),\n new DynamicControlBase[]>('array', 'socialSupport', socialSupport, 'Social Support:', null, 1, null, false, null, this.sectionClassName),\n new DynamicControlBase[]>('array', 'ratings', ratings, 'Based on the above questions:', null, 1, null, false, null, this.sectionClassName),\n ];\n\n return of(questions.sort((a, b) => a.order - b.order));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { AuthenticationService } from '../services/authentication.service';\n\n@Injectable({ providedIn: 'root' })\nexport class AdminAuthGuard implements CanActivate {\n constructor(\n private router: Router,\n private authenticationService: AuthenticationService\n ) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n if (this.authenticationService.isAdmin) {\n return true;\n }\n\n // not logged in so redirect to login page with the return url\n this.router.navigate(['/'], { queryParams: { returnUrl: state.url } });\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { AuthenticationService } from '../services/authentication.service';\n\n@Injectable({ providedIn: 'root' })\nexport class BrokerAuthGuard implements CanActivate {\n constructor(\n private router: Router,\n private authenticationService: AuthenticationService\n ) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n if (this.authenticationService.isAgent) {\n return true;\n }\n\n // not logged in so redirect to login page with the return url\n this.router.navigate(['/'], { queryParams: { returnUrl: state.url } });\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { AuthenticationService } from '../services/authentication.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MemberAuthGuard implements CanActivate {\n constructor(\n private router: Router,\n private authenticationService: AuthenticationService\n ) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n const currentUser = this.authenticationService.currentUserValue;\n if (currentUser) {\n \n if (this.authenticationService.isAgent) {\n this.router.navigate([`/agents/groups`]);\n } else if (this.authenticationService.isAdmin) {\n this.router.navigate([`/admin/groups`]);\n } else if (this.authenticationService.isMember) {\n return true;\n }\n\n return false;\n }\n\n // not logged in so redirect to login page with the return url\n this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { AuthenticationService } from '../services/authentication.service';\n\n@Injectable({ providedIn: 'root' })\nexport class AuthGuard implements CanActivate {\n constructor(\n private router: Router,\n private authenticationService: AuthenticationService\n ) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n const currentUser = this.authenticationService.currentUserValue;\n if (currentUser) {\n return true;\n }\n\n // not logged in so redirect to login page with the return url\n this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { AuthenticationService } from '../services/authentication.service';\n\n@Injectable()\nexport class ErrorInterceptor implements HttpInterceptor {\n constructor(private authenticationService: AuthenticationService) { }\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n return next.handle(request).pipe(catchError(err => {\n \n if (err.status === 401) {\n // auto logout if 401 response returned from api\n this.authenticationService.logout();\n document.location.href = '/';\n }\n\n if(!!err && !!err.error && !!err.error.Message){\n return throwError(err.error.Message);\n }\n\n return throwError(err);\n \n }));\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FormatDate {\n formatDate(date: Date): string {\n const datePipe = new DatePipe('en-US');\n return datePipe.transform(date, 'MM-dd-yyyy') || '';\n }\n}\n","import { environment } from 'src/environments/environment';\n\nexport function getApiUrl(endpoint: string): string {\n return `${environment.apiUrl}${endpoint}`;\n }\n","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { AuthenticationService } from '../services/authentication.service';\nimport { JWTTokenService } from '../services/jwt-token.service';\n\n@Injectable()\nexport class JwtInterceptor implements HttpInterceptor {\n constructor(private authenticationService: AuthenticationService, private jwtService: JWTTokenService) { }\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n // add authorization header with jwt token if available\n const currentUser = this.authenticationService.currentUserValue;\n if (currentUser && currentUser.token) {\n\n request = request.clone({\n setHeaders: {\n Authorization: `Bearer ${currentUser.token}`\n }\n });\n }\n\n return next.handle(request);\n }\n}\n","import { FormGroup } from '@angular/forms';\n\n// custom validator to check that two fields match\nexport function MustMatch(controlName: string, matchingControlName: string) {\n return (formGroup: FormGroup) => {\n const control = formGroup.controls[controlName];\n const matchingControl = formGroup.controls[matchingControlName];\n\n if (matchingControl.errors && !matchingControl.errors.mustMatch) {\n // return if another validator has already found an error on the matchingControl\n return;\n }\n\n // set error on matchingControl if validation fails\n if (control.value !== matchingControl.value) {\n matchingControl.setErrors({ mustMatch: true });\n } else {\n matchingControl.setErrors(null);\n }\n };\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, ValidatorFn } from '@angular/forms';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ValidatorsService {\n constructor() { }\n\n nonNegativeValidator(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n const value = control.value;\n\n if (value !== null && (isNaN(value) || value < 0)) {\n return { 'nonNegative': true };\n }\n\n return null;\n };\n }\n}\n","export class UserToken {\n token: string;\n constructor(token: string) {\n this.token = token;\n }\n}\n","export class VideoWithUserDetails {\n referenceId: string;\n url: string;\n title: string;\n description: string;\n thumbnail: string;\n code: string;\n videoCategories: string;\n durationInSeconds: string;\n completedOn: Date;\n status: number;\n createdDate: Date;\n modifiedDate: Date;\n}\n","export class Claim {\n\n}\n","export class ClaimPayment {\n id: number;\n Name: string;\n periodStartDate: Date;\n periodEndDate: Date;\n claimStartDate: Date;\n claimEndDate: Date;\n paymentDate: Date;\n paymentPercentage: number;\n groupReferenceId: string;\n groupName: string;\n totalAmount: number;\n claimPaymentId: number;\n}\nexport class ClaimLineItem {\n memberId: string;\n claimId: number;\n claimPaymentId: number;\n planId: number;\n paymentAmount: number;\n notes: string;\n}\n","export enum CategoryType {\n Unknown = 0,\n Video,\n VideoCategory,\n HRA,\n Quiz\n}\n","export enum InvoiceStatus {\n New,\n ReadyToSend,\n Sent,\n Paid,\n Cancelled,\n All\n }\n","export enum InvoiceType {\n PremiumFee,\n ThinkWellnessNowFee,\n All\n }","export enum MemberStatus {\n Pending,\n Active,\n Terminated,\n All\n}\n","export enum WellnessProgressReviewStatus {\n Approve = 1,\n Decline = 2\n}\n","export class Group {\n referenceId: string;\n name: string;\n email: string;\n phoneNumber: string;\n companyId: string;\n contactPerson: string;\n externalId: string;\n webSiteUrl: string | null;\n createdDate: Date;\n modifiedDate: Date;\n payPeriod: number;\n id: number | null;\n addressLine1: string | null;\n addressLine2: string | null;\n city: string | null;\n state: string | null;\n zipCode: string | null;\n status: number | null;\n startDate: Date;\n periodId: number | null;\n isActive: boolean | null;\n}\n","import { InvoiceStatus } from \"./enums/invoiceStatus\";\n\nexport class Invoice {\n id: string;\n startDate: Date;\n endDate: Date;\n type: string;\n groupId: string;\n status: InvoiceStatus;\n amount: number;\n number: number;\n groupName: string;\n dueDate:Date;\n \n}\n\n\n","export class Member {\n firstName: string;\n lastName: string;\n email: string;\n dob: Date;\n externalId: string;\n wellnessBenefitAmount: number;\n startDate: Date;\n terminationDate: Date;\n isLyrics: boolean = true;\n monthlyAmount: number;\n yearlyAmount: number;\n premiumAmount: number;\n planId: number;\n isEligibleMedicalReceipts: boolean;\n planStartDate: Date;\n payPeriod: number = 0;\n salaryPerPayPeriod: number;\n //New added fields\n id: number;\n middleName: string | null;\n addressLine1: string | null;\n addressLine2: string | null;\n city: string | null;\n state: string | null;\n zipCode: string | null;\n homeNumber: string | null;\n mobile: string | null;\n secondaryMobile: string | null;\n workNumber: string | null;\n emailAddress: string | null;\n gender: string | null;\n maritalStatus: string | null;\n signaturePath: string | null;\n signatureName: string | null;\n signatureDateTime: string | null;\n ssn: string | null;\n healthInsuranceCompanyName: string | null;\n insurancePolicyNo: string;\n insuranceEffectiveDate: string | null;\n insuranceEndDate: string | null;\n insuranceAddress: string | null;\n preferredPaymentMethod: string | null;\n bankName: string | null;\n bankAddress: string | null;\n accountNumber: string | null;\n routingNumber: string | null;\n isHealthInsurance: boolean = true;\n dependents: any[] | null;\n browserName: string | null;\n browserVersion: string | null;\n groupId: number;\n age: number | null;\n memberStatus: string | null;\n groupReferenceId: string | null;\n groupName: string | null;\n planName: string | null;\n createdDate: Date | null;\n}\n\nexport class MemberWithHraStatus extends Member {\n isHraCompleted: boolean = true;\n isClaimCompletedForCurrentMonth: boolean;\n}\n","export class ModalOptions {\n iconName: string;\n title: string;\n content: string;\n okBtnText: string;\n cancelBtnText: string;\n showCancelButton: boolean;\n allowCloseOnEsc: boolean;\n}\n","export class ApiEndPoints {\n public static readonly login: string = 'Account/Login';\n public static readonly register: string = 'Account/Register';\n public static readonly createUser: string = 'Account/CreateUser';\n public static readonly resource: string = 'Resource/';\n public static readonly faq: string = 'FAQ';\n public static readonly askAQuestion: string = 'Member/askaquestion';\n public static readonly externalAPI: string = 'AccountSummary';\n public static readonly dashboard: string = 'Dashboard';\n public static readonly transaction: string = 'AccountTransactions';\n public static readonly memberSumary: string = 'Member/GetMemberById';\n public static readonly getAllMembers: string = 'Member/Admin/GetMembers';\n public static readonly getMemberAcceptedTCs: string = 'Member/Admin/GetAcceptTCs';\n public static readonly memberSearch: string = 'Member/Admin/MemberSearch';\n public static readonly userSearch: string = 'User/Admin/UserSearch';\n public static readonly getMemberFromIdForAdmin: string = 'Member/Admin/member';\n public static readonly getNotificationsForAdmin: string = 'Member/Admin/member/notifications';\n public static readonly getAcceptedTCbyMemberForAdmin: string = 'Member/Admin/member/acceptedtc';\n\n public static readonly getMember: string = 'Account/GetUserInfo';\n public static readonly askQsn: string = 'Enquiry/GeneralQuestion';\n public static readonly newCard: string = 'Enquiry/RequestNewCard';\n public static readonly getAdd: string = 'Address';\n public static readonly lostCard: string = 'Enquiry/ReportStolenCard';\n public static readonly updateLevel: string = 'Enquiry/UpdateLevel';\n public static readonly updateInfo: string = 'Enquiry/UpdateInfo';\n public static readonly updateTCAccept: string = 'member/updateTermsAndConditions';\n public static readonly getStates: string = 'States';\n public static readonly getSecurityQsn: string = 'SecurityQuestions';\n public static readonly updateSecurityQsn: string = 'Account/UpdateSecurityQuestionWeb';\n public static readonly updatePassword: string = 'Account/ChangePassword';\n public static readonly updateProfile: string = 'Account/ProfileUpdate';\n public static readonly updateProfilePic: string = 'UploadDishImage';\n public static readonly saveCroppedImage: string = 'Account/SaveCroppedImage';\n public static readonly updateEmailByMember: string = 'member/UpdateEmail';\n public static readonly sendContract: string = 'member/SendContract';\n\n public static readonly forgotPassword: string = 'Account/ForgotPassword';\n public static readonly addFaq: string = 'faq/Admin/AddFaq';\n public static readonly getFaqs: string = 'faq/Admin/GetFaqs';\n public static readonly getFaqById: string = 'faq/Admin/GetFaqById';\n public static readonly updateFaq: string = 'faq/Admin/updateFaq';\n public static readonly deleteFaqs: string = 'faq/Admin/DeleteFaq';\n\n public static readonly addResource: string = 'Resource/Admin/AddResource';\n public static readonly getResource: string = 'Resource/Admin/GetResources';\n public static readonly getResourceById: string = 'Resource/Admin/GetResourceById';\n public static readonly updateResource: string = 'Resource/Admin/updateResource';\n public static readonly deleteResource: string = 'Resource/Admin/DeleteResource';\n\n public static readonly updateAdminAsMember: string = 'Account/updateAdminAsMember';\n public static readonly removeAdminAsMember: string = 'Account/removeAdminAsMember';\n public static readonly updateStatus: string = 'Member/admin/updateStatus';\n\n public static readonly getUsers: string = 'User/Admin/Users';\n public static readonly updateAdminUserStatus: string = 'User/admin/updateStatus';\n public static readonly addUser: string = 'User/Admin/CreateAdmin';\n public static readonly editUser: string = 'User/Admin/GetUser';\n public static readonly updateUser: string = 'User/Admin/UpdateAdmin';\n\n public static readonly updateUserPassword: string = 'User/Admin/ChangePassword';\n public static readonly forgetPasswordGetQuestion: string = 'Account/ForgetPasswordGetQuestion';\n public static readonly resetPassword: string = 'Account/ResetPassword';\n public static readonly changePasswordByAdmin: string = 'Account/Admin/ChangePasswordByAdmin';\n\n public static readonly addClaim: string = 'claim/member-claim';\n public static readonly updateClaimByMember: string = 'claim/member-claim';\n public static readonly getClaimById: string = 'claim/member-claim';\n public static readonly getClaimByIdForAdmin: string = 'claim/Admin/GetClaim';\n public static readonly downloadClaim: string = 'claim/download';\n public static readonly updateClaim: string = 'claim/Admin/UpdateClaim';\n public static readonly getAllpatients: string = 'claim/patients';\n public static readonly getMemberClaims: string = 'claim/member-claims';\n public static readonly getAdminClaims: string = 'claim/Admin/GetClaims';\n public static readonly exportAdminClaims: string = 'claim/Admin/export-claims';\n public static readonly getClaimSummery: string = 'claim/Admin/ClaimStatusSummary';\n public static readonly getClaimSubmittedwithDate: string = 'claim/Admin/claimsubmittedwithDate';\n public static readonly getDenyReasons: string = 'DenyReason';\n public static readonly updateClaimStatusByAdmin: string = 'claim/Admin/update-status';\n public static readonly approveClaimByAdmin: string = 'claim/Admin/approve-claim';\n public static readonly underReviewClaimByAdmin: string = 'claim/Admin/under-review-claim';\n public static readonly exportAdminPreApproveClaims: string = 'claim/Admin/export-pre-approve-claims';\n public static readonly getApprovedClaims: string = 'claim/Admin/ApprovedClaims';\n public static readonly exportAdminApproveClaims: string = 'claim/Admin/export-approve-claims';\n public static readonly changeClaimStatusToPaymentFailed: string = 'claim/Admin/claim-status-payment-failed';\n\n public static readonly markClaimCompleted: string = 'claim/Admin/claim-completed';\n\n public static readonly addLead: string = 'lead/add-leads';\n public static readonly updateLead: string = 'lead/update-leads';\n public static readonly updateLeadFromAdmin: string = 'lead/Admin/update-leads';\n public static readonly setupLeadPayment: string = 'lead/setup-lead-payement';\n public static readonly validateLeadPaymentCallback: string = 'lead/validate-lead-payment-callback';\n public static readonly updateLeadPayment: string = 'lead/update-lead-payment';\n public static readonly createLeadUser: string = 'lead/create-lead-user';\n public static readonly getMainLead: string = 'lead/main-lead';\n public static readonly getLeadsFromFamilyIdForAdmin: string = 'lead/Admin';\n public static readonly getLeadByIdForAdmin: string = 'lead/Admin/lead';\n public static readonly updateCompletedSteps: string = 'lead/update-completed-steps';\n public static readonly validateEnrollment: string = 'lead/validate-enrollment';\n public static readonly validateCaptcha: string = 'lead/validate-captcha';\n public static readonly getRecaptchaPublicKey: string = 'lead/get-recaptcha-public-key';\n public static readonly validateEnrollmentFromFamilyId: string = 'lead/validate-enrollment-family';\n public static readonly validateEnrollmentFromLeadId: string = 'leads/VerifyLeadExist';\n public static readonly getLeadById: string = 'leads/GetLeadById';\n public static readonly getAdminLeads: string = 'lead/Admin/leads';\n public static readonly getLeadsForExport: string = 'lead/Admin/export-leads';\n public static readonly deleteLeadFromAdmin: string = 'lead/Admin/lead';\n\n public static readonly getAlertsForMember: string = 'alert/alerts-member';\n\n public static readonly getCityStateFromZipCode: string = 'address/city-state';\n public static readonly validateAddress: string = 'address/validate-address';\n\n public static readonly validateSetupMemberPayment: string = 'payment/validate-setup-memeber-payment';\n public static readonly updateMemberPayment: string = 'payment/update-member-payment';\n public static readonly getStripePublicKey: string = 'payment/stripe-public-key';\n\n public static readonly validateSetupForMember: string = 'payment/setup-payment';\n public static readonly updatePaymentForMember: string = 'payment/update-payment';\n public static readonly getAllBankDetails: string = 'payment/bank-informations';\n public static readonly addNewBankDetails: string = 'payment/add-bank-information';\n public static readonly getBanksForMemberFromAdmin: string = 'payment/admin/bank-information';\n public static readonly addBankForMemberFromAdmin: string = 'payment/admin/bank-information/member';\n public static readonly validateRoutingNumber: string = 'enroll/validate-routing-number';\n public static readonly updateBankDetailsForClaim: string = 'payment/bank-informationsForClaim';\n public static readonly addBankInfoWithVoidCheck: string = 'payment/add-bank-information-with-void-check';\n public static readonly bankInformationsForClaimWithVoidCheck: string =\n 'payment/bank-informationsForClaim-with-void-check';\n}\n","import { Injectable } from '@angular/core';\nimport { Router, NavigationStart } from '@angular/router';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class AlertService {\n private subject = new Subject();\n private keepAfterRouteChange = false;\n\n constructor(private router: Router) {\n // clear alert messages on route change unless 'keepAfterRouteChange' flag is true\n this.router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n if (this.keepAfterRouteChange) {\n // only keep for a single route change\n this.keepAfterRouteChange = false;\n } else {\n // clear alert message\n this.clear();\n }\n }\n });\n }\n\n getAlert(): Observable {\n return this.subject.asObservable();\n }\n\n success(message: string, keepAfterRouteChange = false) {\n this.keepAfterRouteChange = keepAfterRouteChange;\n this.subject.next({ type: 'success', text: message });\n }\n\n error(message: string, keepAfterRouteChange = false) {\n this.keepAfterRouteChange = keepAfterRouteChange;\n this.subject.next({ type: 'error', text: message });\n }\n\n clear() {\n // clear by calling subject.next() without parameters\n this.subject.next();\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as alertify from 'alertifyjs';\n\ndeclare let alertify: any;\nlet errorWithTime: any;\n@Injectable({\n providedIn: 'root',\n})\nexport class AlertifyService {\n constructor() {\n alertify.set('notifier', 'position', 'top-right');\n }\n\n confirm(message: string, okCallback: () => any) {\n alertify\n .confirm(message, function (e: any) {\n if (e) {\n okCallback();\n } else {\n }\n })\n .setHeader(' Confirm ');\n }\n\n customConfirm(message: string, okText: string, cancelText: string, okCallback: () => any) {\n alertify\n .confirm(message, function (e: any) {\n if (e) {\n okCallback();\n } else {\n }\n })\n .setHeader(' Confirm ')\n .set('labels', { ok: okText, cancel: cancelText });\n }\n\n success(message: string) {\n alertify.success(message);\n }\n\n error(message: string) {\n alertify.error(message);\n }\n\n errorWithTime(message: string, time: number) {\n errorWithTime = alertify.error(message, time);\n }\n\n warning(message: string) {\n alertify.warning(message);\n }\n\n message(message: string) {\n alertify.message(message);\n }\n\n dismiss() {\n if (errorWithTime) {\n errorWithTime.dismiss();\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\nimport { UserToken } from '../models/UserToken';\nimport { getApiUrl } from '../helpers/get-url';\nimport { User } from '../models/User';\nimport { JWTTokenService } from './jwt-token.service';\nimport { UserStore } from '../controls/StateManagement/User/user.store';\nimport { UserService } from './user.service';\n\n\n@Injectable({ providedIn: 'root' })\nexport class AuthenticationService {\n public currentUser: Observable;\n\n private readonly currentUserSubject: BehaviorSubject;\n\n constructor(private http: HttpClient, private _userService: UserService, private store: UserStore, private _jwtService: JWTTokenService) {\n this.currentUserSubject = new BehaviorSubject(JSON.parse(localStorage.getItem('currentUser')));\n this.currentUser = this.currentUserSubject.asObservable();\n }\n\n public get currentUserValue(): UserToken {\n return this.currentUserSubject.value;\n }\n\n public get isAgent(): boolean {\n return this.getUserRoles().includes('Broker');\n }\n\n public get isAdmin(): boolean {\n const roles = this.getUserRoles();\n return roles.includes('Admin') || roles.includes('SuperAdmin');\n }\n\n public get isMember(): boolean {\n const roles = this.getUserRoles();\n return roles.includes('Member') || roles.length === 0;\n }\n\n getUserRoles(): string[] {\n if (this.currentUserValue) {\n this._jwtService.setToken(this.currentUserValue.token);\n return this._jwtService.getUserRoles();\n }\n return [];\n }\n\n login(username, password) {\n return this.http.post(getApiUrl('user/login'), { username, password })\n .pipe(map(user => {\n this._setCurrentUser(user);\n return user;\n }));\n }\n\n register(user: User) {\n return this.http.post(getApiUrl('user/register'), user)\n .pipe(map(userWithToken => {\n this._setCurrentUser(userWithToken);\n return user;\n }));\n }\n\n resetPassword(value: any) {\n return this.http.post(getApiUrl('user/reset-password'), value).pipe(map(userWithToken => {\n this._setCurrentUser(userWithToken);\n }));\n }\n\n setPassword(value: any) {\n return this.http.post(getApiUrl('user/set-password'), value).pipe(map(userWithToken => {\n this._setCurrentUser(userWithToken);\n }));\n }\n\n logout() {\n // remove user from local storage and set current user to null\n localStorage.removeItem('currentUser');\n this.currentUserSubject.next(null);\n this.store.reset();\n }\n\n private _setCurrentUser(userWithToken: UserToken) {\n // store user details and jwt token in local storage to keep user logged in between page refreshes\n const token = new UserToken(userWithToken.token);\n localStorage.setItem('currentUser', JSON.stringify(token));\n this.currentUserSubject.next(token);\n this._userService.getUserDetails().subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { getApiUrl } from '../helpers/get-url';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { BrokerGroup } from '../models/brokerGroup';\nimport { BrokerMember } from '../models/brokerMember';\nimport { User } from '../models/User';\nimport { BrokerRegister } from '../models/brokerRegister';\n\n@Injectable({ providedIn: 'root' })\nexport class BrokerService {\n constructor(private http: HttpClient) { }\n\n getAllBrokers(searchString?: string): Observable {\n let url = getApiUrl('brokers/GetAllBrokers');\n if (!!searchString) {\n url += `?searchString=${searchString}`;\n }\n\n return this.http.get(url);\n }\n getAvailableBrokers(searchString?: string): Observable {\n let url = getApiUrl('brokers/GetAvailableBrokers');\n if (!!searchString) {\n url += `?searchString=${searchString}`;\n }\n\n return this.http.get(url);\n }\n getBroker(brokerReferenceId: string): Observable {\n return this.http.get(getApiUrl(`brokers/${brokerReferenceId}`));\n }\n\n addBroker(broker: BrokerRegister) {\n return this.http.post(getApiUrl(`brokers/AddBroker`), broker);\n }\n\n addBrokerToGroup(groupReferenceId: string, brokerReferenceId: string) {\n return this.http.post(getApiUrl(`brokers/AssignBrokerToGroup/${groupReferenceId}/${brokerReferenceId}`), {});\n }\n\n removeBrokerFromGroup(groupReferenceId: string, brokerReferenceId: string) {\n return this.http.put(getApiUrl(`brokers/groups/${groupReferenceId}/${brokerReferenceId}`), {});\n }\n\n getAllGroups(): Observable {\n return this.http.get(getApiUrl('brokers/groups'));\n }\n\n getAllGroupMembers(groupExternalId: string): Observable {\n return this.http.get(getApiUrl(`brokers/groups/${groupExternalId}`));\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { getApiUrl } from '../helpers/get-url';\nimport { Categories } from '../models/categories';\n\n@Injectable({ providedIn: 'root' })\nexport class CategoriesService {\n constructor(private http: HttpClient) { }\n\n getAllCategories() {\n return this.http.get(getApiUrl('categories'));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { getApiUrl } from '../helpers/get-url';\nimport { Claim } from '../models/claim';\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ClaimService {\n constructor(private http: HttpClient) {}\n\n getAllClaims(month?: number, year?: number): Observable {\n let url = getApiUrl(\"claims/GetAllClaims\");\n let queryParamAdded = false;\n if (!!month) {\n queryParamAdded = true;\n url += `?month=${month}`;\n }\n\n if (!!year) {\n url += queryParamAdded ? \"&\" : \"?\";\n url += `year=${year}`;\n }\n\n return this.http.get(url);\n }\n getClaimPayments(claimid: string): Observable {\n return this.http.get(getApiUrl(`ClaimPayment?claimid=${claimid}`));\n }\n \n addCustomClaim(externalMemberId: string, claim: any): Observable {\n return this.http.post(\n getApiUrl(`claims/${externalMemberId}`),\n claim\n );\n }\n\n exportToCSV(month?: number, year?: number): Observable {\n let url = getApiUrl(\"claims/exportClaimToCSV\");\n let queryParamAdded = false;\n if (!!month) {\n queryParamAdded = true;\n url += `?month=${month}`;\n }\n\n if (!!year) {\n url += queryParamAdded ? \"&\" : \"?\";\n url += `year=${year}`;\n }\n\n return this.http.get(url, { responseType: \"blob\" as \"json\" });\n }\n \n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { getApiUrl } from '../helpers/get-url';\nimport { Claim } from '../models/claim';\nimport { ClaimLineItem, ClaimPayment } from '../models/claimPayment';\nimport { Data } from '@angular/router';\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ClaimPaymentService {\n constructor(private http: HttpClient) {}\n\n \n getClaimPayments(claimid: string): Observable {\n return this.http.get(getApiUrl(`ClaimPayment?claimid=${claimid}`));\n }\n getAllClaimPayments(groupId: string): Observable {\n return this.http.get(\n getApiUrl(`claimPayment/${groupId}/getAllClaimPayment`)\n );\n }\n \n \n addClaimPayment(claim: ClaimPayment, groupId: string): Observable {\n \n return this.http.post(getApiUrl(`claimPayment/AddClaimPayment/${groupId}`), claim);\n }\n addClaimLineItem(claim: any): Observable {\n return this.http.post(getApiUrl(`claimPayment/AddClaimLineItem`), claim);\n }\n getMemberClaims(groupReferenceId: string, claimPaymentId: number, periodScheduleId:number): Observable {\n return this.http.get(\n getApiUrl(`claimPayment/${groupReferenceId}/GetMemberClaims/${claimPaymentId}/${periodScheduleId}`)\n );\n }\n getClaimLineItem(claimPaymentId:number): Observable {\n return this.http.get(\n getApiUrl(`claimPayment/claimLineItem/${claimPaymentId}`)\n );\n }\n\n getClaimPaymentById(claimPaymentId: number): Observable {\n return this.http.get(\n getApiUrl(`claimPayment/${claimPaymentId}/getClaimPaymentById`)\n );\n }\n getClaimLineItemById(lineItemId: number): Observable {\n return this.http.get(getApiUrl(`claimPayment/${lineItemId}`));\n }\n\n \n updateClaimLineItem(id:number,claimLineItem:any):Observable{\n return this.http.put(\n getApiUrl(`claimPayment/UpdateClaimLineItem/${id}`),claimLineItem\n )\n }\n sendToNacha(id: number, paymentDate: string): Observable {\n return this.http.put(\n getApiUrl(`claimPayment/sendToNacha/${id}`), { paymentDate }\n )\n }\n CancelLineItemById(lineItemId: number): Observable {\n return this.http.put(\n getApiUrl(`claimPayment/CancelLineItemById/${lineItemId}`),null);\n }\n\n \n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { environment } from 'src/environments/environment';\n \n@Injectable({\n providedIn: 'root',\n})\nexport class CrudService {\n constructor(public http: HttpClient) {}\n\n get(url: string, reqOpts?: any) {\n return this.http.get(this.getUrl(url), reqOpts);\n }\n\n post(url: string, body: any, reqOpts?: any) {\n return this.http.post(this.getUrl(url), body, reqOpts).pipe(catchError(this.handleError));\n }\n\n put(url: string, body: any, reqOpts?: any) {\n return this.http.put(this.getUrl(url), body, reqOpts);\n }\n\n delete(url: string, reqOpts?: any) {\n return this.http.delete(this.getUrl(url), reqOpts);\n }\n\n private getUrl(url: string): string {\n return `${environment.apiUrl}${url}`;\n }\n handleError(error: HttpErrorResponse) {\n return throwError(error);\n }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { Employee } from \"../models/employee\";\nimport { Observable } from \"rxjs\";\nimport { getApiUrl } from \"../helpers/get-url\";\nimport { TermsAndConditions } from \"../models/termsAndConditions\";\nimport { AddressValidateModel } from \"../models/addressValidateModel\";\nimport { ResponseAddressBool } from \"../models/responseAddressBool\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class EmployeesService {\n constructor(private http: HttpClient) {}\n\n AddEmployee(Employee: Employee): Observable {\n return this.http.post(getApiUrl(\"Employee/AddEmployeesDetails\"),Employee);\n }\n\n getTermsAndConditions() : Observable\n {\n return this.http.get(\n getApiUrl(\"Employee/GetAllTermsAndConditions\")\n );\n }\n\n getAllPlans(): Observable\n {\n return this.http.get(getApiUrl(\"plans/GetAllPlans\"));\n }\n\n getAllStates() : Observable\n {\n return this.http.get(\"https://hmmemberdev.azurewebsites.net/api/States\");\n\n }\n\n ValidateAddress(addressValidateModel: AddressValidateModel) : Observable\n {\n return this.http.post(\"https://hmmemberdev.azurewebsites.net/api/Address/validate-address\",addressValidateModel);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CrudService } from './crudservice';\nimport { StripePayment } from '../models/StripePayment';\nimport { ApiEndPoints } from './ApiEndPoints';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { getApiUrl } from '../helpers/get-url';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EnrollmentService {\n constructor(private crudService: CrudService, private http: HttpClient) { }\n\n AddLead(lead: any) {\n return this.crudService.post(ApiEndPoints.addLead, lead);\n }\n\n UpdateLead(lead: any, familyId: string, index: number, program: string) {\n return this.crudService.post(ApiEndPoints.updateLead + '/' + familyId + '/' + index + '/' + program, lead);\n }\n\n UpdateLeadFromAdmin(lead: any, familyId: string) {\n return this.crudService.post(ApiEndPoints.updateLeadFromAdmin + '/' + familyId, lead);\n }\n\n SetupLeadPayment(program: string, leadNo: string) {\n return this.crudService.get(ApiEndPoints.setupLeadPayment + '/' + program + '/' + leadNo);\n }\n\n GetMainLead(program: string, leadNo: string) {\n return this.crudService.get(ApiEndPoints.getMainLead + '/' + program + '/' + leadNo);\n }\n\n ValidateLeadOnPaymentCallback(program: string, leadNo: string) {\n return this.crudService.get(ApiEndPoints.validateLeadPaymentCallback + '/' + program + '/' + leadNo);\n }\n\n UpdateLeadPayment(updateStripePayment: StripePayment) {\n return this.crudService.post(ApiEndPoints.updateLeadPayment, updateStripePayment);\n }\n\n CreateLeadUser(leadUser: any) {\n return this.crudService.post(ApiEndPoints.createLeadUser, leadUser);\n }\n\n GetCityStateFromZipCode(zipcode: string) {\n return this.crudService.get(ApiEndPoints.getCityStateFromZipCode + '/' + zipcode);\n }\n\n ValidateAddress(leadUser: any) {\n return this.crudService.post(ApiEndPoints.validateAddress, leadUser);\n }\n\n UpdateCompletedSteps(stepsDetails: any) {\n return this.crudService.post(ApiEndPoints.updateCompletedSteps, stepsDetails);\n }\n\n GetPlanAndProducerDetails(producerCode: string, planName: string, programType: string) {\n return this.crudService.get(\n ApiEndPoints.validateEnrollment + '/' + programType + '?planName=' + planName + '&producerCode=' + producerCode\n );\n }\n\n ValidateCaptcha(captchaResponse: any) {\n return this.crudService.post(ApiEndPoints.validateCaptcha, captchaResponse);\n }\n\n GetCaptchaKeys() {\n return this.crudService.get(ApiEndPoints.getRecaptchaPublicKey);\n }\n\n ValidateEnrollmentFromFamilyId(enrollmentDetails: any) {\n return this.crudService.post(ApiEndPoints.validateEnrollmentFromFamilyId, enrollmentDetails);\n }\n\n ValidateEnrollmentFromLeadId(enrollmentDetails: any) {\n return this.crudService.post(ApiEndPoints.validateEnrollmentFromLeadId, enrollmentDetails);\n }\n\n GetLeadById(leadId: number) {\n return this.crudService.get(ApiEndPoints.getLeadById + '?id=' + leadId);\n }\n GetLeadFromStep(program: string, familyId: string, step: number) {\n return this.crudService.get(ApiEndPoints.getMainLead + '/' + program + '/' + familyId + '/' + step);\n }\n\n GetLeadsFromFamilyIdForAdmin(familyId: string) {\n return this.crudService.get(ApiEndPoints.getLeadsFromFamilyIdForAdmin + '/' + familyId);\n }\n\n GetLeadsForAdmin(params: any) {\n const req = { params: params };\n return this.crudService.get(ApiEndPoints.getAdminLeads, req);\n }\n\n GetLeadsForExport(params: any) {\n const req = { params: params };\n return this.crudService.get(ApiEndPoints.getLeadsForExport + params, { responseType: 'blob' as 'json' });\n }\n\n DeleteLeadFromAdmin(leadId: string) {\n return this.crudService.delete(ApiEndPoints.deleteLeadFromAdmin + '/' + leadId);\n }\n GetLeadByIdFromAdmin(leadId: string) {\n return this.crudService.get(ApiEndPoints.getLeadByIdForAdmin + '/' + leadId);\n }\n validateRoutingNumber(routingNumber: string) {\n return this.crudService.get(ApiEndPoints.validateRoutingNumber + '/' + routingNumber);\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { getApiUrl } from \"../helpers/get-url\";\nimport { Group } from \"../models/group\";\nimport { Observable } from \"rxjs/internal/Observable\";\nimport { StringResponse } from \"../models/stringResponse\";\nimport { User } from \"../models/User\";\nimport { Member, MemberWithHraStatus } from \"../models/member\";\nimport { FamilyMembers } from \"../models/family-member\";\nimport { Lead } from \"../models/Lead\";\n// import { Company } from '../models/company';\n\n@Injectable({ providedIn: \"root\" })\nexport class GroupService {\n constructor(private http: HttpClient) {}\n\n getAllGroups(): Observable {\n return this.http.get(getApiUrl(\"groups/GetAllGroups\"));\n }\n\n getGroupMembers(groupReferenceId: string): Observable {\n return this.http.get(\n getApiUrl(`groups/${groupReferenceId}/members`)\n );\n }\n exportMembers(groupReferenceId: string): Observable {\n let url = getApiUrl(`groups/${groupReferenceId}/exportMembers`);\n\n return this.http.get(url, { responseType: \"blob\" as \"json\" });\n \n }\n getGroupLeads(groupId:any): Observable {\n return this.http.get(getApiUrl(\"leads/GetLeadsByGroup/\"+groupId));\n }\n \n getGroupMembersFamily(memberId: string): Observable {\n return this.http.get(\n getApiUrl(`MemberFamily?memberid=${memberId}`)\n );\n }\n\n getAllBrokers(groupReferenceId: string): Observable {\n return this.http.get(\n getApiUrl(`groups/${groupReferenceId}/brokers`)\n );\n }\n\n getGroup(groupReferenceId: string): Observable {\n return this.http.get(getApiUrl(`groups/${groupReferenceId}`));\n }\n\n getGroupName(groupReferenceId: string): Observable {\n return this.http.get(\n getApiUrl(`groups/external/${groupReferenceId}/name`)\n );\n }\n\n addGroup(group: Group): Observable { \n return this.http.post(getApiUrl(\"groups\"), group);\n }\n\n updateGroup(groupReferenceId: string, group: Group): Observable { \n return this.http.put(getApiUrl(`groups/${groupReferenceId}`),group );\n }\n\n deleteGroup(groupReferenceId: string) {\n return this.http.delete(getApiUrl(`groups/${groupReferenceId}`));\n }\n\n validateGroupAndMember(\n externalGroupId: string,\n externalMemberId: string\n ): Observable {\n return this.http.get(\n getApiUrl(`groups/validate/${externalGroupId}/${externalMemberId}`)\n );\n }\n validateGroupExternalId(\n externalId: string,\n groupId: number\n ): Observable {\n return this.http.get(\n getApiUrl(`groups/validateExternalId/${externalId}/${groupId}`)\n );\n }\n\n getGroupDetailsByID(groupId: string) : Observable\n {\n return this.http.get(getApiUrl(\"groups/GetGroupDetails/\" + groupId))\n }\n getGroupByGroupId(groupId: Number) : Observable\n {\n return this.http.get(getApiUrl(\"groups/GetGroupById/\" + groupId))\n }\n\n getGroupNameByExternalID(groupExternalId: string): Observable {\n return this.http.get(getApiUrl(`groups/external/${groupExternalId}/name`))\n }\n uploadLeadByAdmin(groupExternalId: string, leadFile:any){\n var formData: any = new FormData();\n formData.append('groupExternalId', groupExternalId); \n formData.append('leadFile', leadFile); \n return this.http.post(getApiUrl('leads/upload-lead-csv'), formData);\n }\n\n getGroupNameById(groupId: Number): Observable {\n return this.http.get(getApiUrl(\"groups/GetGroupById/\" + groupId))\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { HMALeads } from '../models/HMALeads';\nimport { Observable } from 'rxjs';\nimport { getApiUrl } from '../helpers/get-url';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HMALeadService {\n\n constructor(private http: HttpClient) { }\n\n addLead(group:HMALeads): Observable {\n return this.http.post(getApiUrl(\"addlead/AddLead\"),group);\n }\n\n getLead(email:any): Observable {\n return this.http.get(getApiUrl('addlead/GetLead'+email));\n }\n\n updateLead(group:any): Observable {\n return this.http.put(getApiUrl('addlead/UpdateLead'),group);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { HRADetails } from '../models/hraDetails';\nimport { getApiUrl } from '../helpers/get-url';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class HRAService {\n constructor(private http: HttpClient) { }\n\n addHRA(groupId: string, hraDetails: HRADetails) {\n return this.http.post(getApiUrl(`hra/${groupId}`), hraDetails);\n }\n\n getHRA(groupId: string, memberExternalId: string): Observable {\n return this.http.get(getApiUrl(`hra/${groupId}/${memberExternalId}`));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { getApiUrl } from '../helpers/get-url';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { IndemnityBenefit } from '../models/indemnityBenefit';\n\n@Injectable({ providedIn: 'root' })\nexport class IndemnityBenefitService {\n constructor(private http: HttpClient) { }\n\n getAllIndemnityBenefits(): Observable {\n return this.http.get(getApiUrl('indemnity-benefits'));\n }\n\n getActiveIndemnityBenefits(): Observable {\n return this.http.get(getApiUrl('indemnity-benefits/active'));\n }\n\n getIndemnityBenefit(indemnityBenefitId: number): Observable {\n return this.http.get(getApiUrl(`indemnity-benefits/${indemnityBenefitId}`));\n }\n\n addIndemnityBenefit(indemnityBenefit: IndemnityBenefit): Observable {\n return this.http.post(getApiUrl('indemnity-benefits'), indemnityBenefit);\n }\n\n updateIndemnityBenefit(indemnityBenefitId: number, indemnityBenefit: IndemnityBenefit): Observable {\n return this.http.put(getApiUrl(`indemnity-benefits/${indemnityBenefitId}`), indemnityBenefit);\n }\n\n deleteIndemnityBenefit(indemnityBenefitId: number) {\n return this.http.delete(getApiUrl(`indemnity-benefits/${indemnityBenefitId}`));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient,HttpParams } from '@angular/common/http';\nimport { getApiUrl } from '../helpers/get-url';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { Invoice } from '../models/invoice';\nimport { InvoiceStatus } from '../models/enums/invoiceStatus';\n\n@Injectable({ providedIn: 'root' })\nexport class InvoiceService {\n constructor(private http: HttpClient) { }\n \n getAllInvoices(search:any): Observable { \n return this.http.post(getApiUrl(\"invoice/getAllInvoices\"),search);\n } \n\n getInvoiceById(invoiceId:string) {\n return this.http.get(getApiUrl(`invoice/${invoiceId}`));\n }\n getAllItemByInvoiceId(invoiceId: string) {\n return this.http.get(getApiUrl(`invoice/${invoiceId}/lineitems`));\n }\n updateInvoiceStatus(invoiceId: string, status: string): Observable {\n \n return this.http.put(getApiUrl(`invoice/${invoiceId}/UpdateInvoiceStatus/${status}`), status);\n }\n addInvoice(group: Invoice): Observable {\n return this.http.post(getApiUrl(\"invoice/addInvoice\"), group);\n }\n getMemberByPeriod(groupId: string, periodScheduleId:number) {\n return this.http.get(getApiUrl(`invoice/${groupId}/getMemberByPeriod/${periodScheduleId}`));\n } \n addInvoiceMemberDetail(invoice: any): Observable {\n return this.http.post(getApiUrl(\"invoice/AddMemberInvoice\"), invoice);\n }\n}\n","import { Injectable } from '@angular/core';\nimport jwt_decode from 'jwt-decode';\nimport { UserToken } from '../models/UserToken';\nimport { AuthenticationService } from './authentication.service';\n\n@Injectable({ providedIn: 'root' })\nexport class JWTTokenService {\n jwtToken: string;\n\n constructor() { }\n\n setToken(token: string) {\n if (token) {\n this.jwtToken = token;\n }\n }\n\n get decodeToken() {\n return this.jwtToken ? jwt_decode(this.jwtToken) : {};\n }\n\n getDecodeToken() {\n return jwt_decode(this.jwtToken);\n }\n\n getUser() {\n return this.decodeToken['unique_name'];\n }\n\n getUserRoles(): string[] {\n const roles = this.decodeToken['role'];\n return !!roles ? roles.split(',') : [];\n }\n\n getEmailId() {\n return this.decodeToken['email'];\n }\n\n getExpiryTime() {\n return this.decodeToken['exp'];\n }\n\n isTokenExpired(): boolean {\n const expiryTime = Number(this.getExpiryTime());\n if (expiryTime) {\n return ((1000 * expiryTime) - (new Date()).getTime()) < 5000;\n } else {\n return false;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { getApiUrl } from '../helpers/get-url';\nimport { Member } from '../models/member';\nimport { graph } from '../models/graph';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { FamilyMembers } from '../models/family-member';\nimport { MemberStatus } from '../models/enums/memberStatus';\n\n@Injectable({ providedIn: \"root\" })\nexport class MemberService {\n constructor(private http: HttpClient) { }\n\n getAllMembers(): Observable {\n return this.http.get(getApiUrl(\"members\"));\n }\n\n AddMember(groupId: string = \"b247edcd-2c8a-458a-a12b-39c142df1705\", member: Member): Observable {\n return this.http.post(\n getApiUrl(`members/AddMemberDetails/${groupId}`), member);\n }\n getAllSearchMembers(memberStatus?: MemberStatus): Observable {\n let url = getApiUrl('members');\n if (!!memberStatus) {\n url += `?status=${memberStatus}`;\n } \n return this.http.get(url);\n }\n\n getMember(externamMemberId: string): Observable {\n return this.http.get(getApiUrl(`members/${externamMemberId}`));\n }\n\n getMemberInfo(externamMemberId: string): Observable {\n return this.http.get(\n getApiUrl(`members/GetMemberInfo${externamMemberId}`)\n );\n }\n getMemberDetails(externamMemberId: string): Observable {\n return this.http.get(\n getApiUrl(`members/${externamMemberId}/info`)\n );\n }\n getMemberDetailsByMember(): Observable {\n return this.http.get(getApiUrl(`members/info`));\n }\n getMemberAddress(externamMemberId: string): Observable {\n return this.http.get(\n getApiUrl(`members/${externamMemberId}/address`)\n );\n }\n getMemberProvider(externamMemberId: string): Observable {\n return this.http.get(\n getApiUrl(`members/${externamMemberId}/externalProvider`)\n );\n }\n getMemberDependents(externamMemberId: string): Observable {\n return this.http.get(\n getApiUrl(`members/${externamMemberId}/dependents`)\n );\n }\n getMemberSignature(externamMemberId: string): Observable {\n return this.http.get(\n getApiUrl(`members/${externamMemberId}/signature`)\n );\n }\n getMemberAddressByMember(): Observable {\n return this.http.get(\n getApiUrl(`members/address`)\n );\n }\n getMemberDependentsByMember(): Observable {\n return this.http.get(\n getApiUrl(`members/dependents`)\n );\n }\n getMemberSignatureByMember(): Observable {\n return this.http.get(\n getApiUrl(`members/signature`)\n );\n }\n updateMemberStatus(member: any): Observable{\n return this.http.put(getApiUrl(`members/updateMemberStatus`),member);\n }\n addUpdateMemberExternalProvider(externalMemberId: string, member: Member): Observable {\n return this.http.put(getApiUrl(`members/${externalMemberId}/addUpdateMemberExternalProvider`), member);\n }\n updateMemberPersonalDetails(externamMemberId: string, member: Member): Observable {\n return this.http.put(getApiUrl(`members/${externamMemberId}/updateMemberPersonalDetails`), member);\n }\n updateMemberInsurance(externamMemberId: string, member: Member): Observable {\n return this.http.put(getApiUrl(`members/${externamMemberId}/updateMemberInsurance`), member);\n }\n addEditDependent(dependentId: number, member: Member, dependent: any): Observable {\n member.dependents.push(dependent);\n return this.http.put(\n getApiUrl(`members/${member.externalId}/addEditDependent/${dependentId}`), member);\n }\n deleteDependent(dependentId: number) {\n return this.http.delete(getApiUrl(`members/deleteDependent/${dependentId}`));\n }\n\n\n\n\n updateUserInfoByMember(user: any): Observable {\n return this.http.post(getApiUrl(`user/update-user`), user);\n }\n updateMemberPersonalDetailsByMember(member: Member): Observable { \n return this.http.put(getApiUrl(`members/updateMemberPersonalDetailsByMember`),member);\n }\n updateMemberInsuranceByMember(member: Member): Observable { \n return this.http.put(getApiUrl(`members/updateMemberInsuranceByMember`),member);\n }\n updateMemberClaimByMember(member: Member): Observable { \n return this.http.put(getApiUrl(`members/updateMemberClaimByMember`),member);\n }\n addEditDependentByMember(dependentId: number, member: Member, dependent: any): Observable {\n member.dependents.push(dependent);\n return this.http.put(\n getApiUrl(`members/${dependentId}/addEditDependentByMember/`), member);\n }\n deleteDependentByMember(dependentId: number) {\n return this.http.delete(getApiUrl(`members/deleteDependentByMember/${dependentId}`));\n }\n\n\n\n\n\n AddMemberToDB(groupId: string, member: Member, dependentList: any[]): Observable {\n member.dependents = dependentList;\n return this.http.post(\n getApiUrl(`enroll/EnrollMember/`), member);\n }\n\n getFamilyMemberInfo(memberId: string): Observable {\n return this.http.get(getApiUrl(`MemberFamily/${memberId}`));\n }\n getSSNByMemberId(externamMemberId: string) {\n return this.http.get(getApiUrl(`members/getSSNByMemberId/${externamMemberId}`));\n }\n deleteMember(externamMemberId: string) {\n return this.http.delete(getApiUrl(`members/${externamMemberId}`));\n }\n\n addMember(externalGroupId: string, memberInfo: Member) {\n return this.http.post(\n getApiUrl(`members/${externalGroupId}`),\n memberInfo\n );\n }\n addFamilyMember(memberInfo: Member) {\n return this.http.post(\n getApiUrl(`MemberFamily`),\n memberInfo\n );\n }\n\n updateMember(\n externalGroupId: string,\n externamMemberId: string,\n memberInfo: Member\n ) {\n return this.http.patch(\n getApiUrl(`members/${externalGroupId}/${externamMemberId}`),\n memberInfo\n );\n }\n updateFamilyMember(memeberfamilyid: string, memberInfo: Member) {\n return this.http.put(\n getApiUrl(`MemberFamily/UpdateFamilyMember/${memeberfamilyid}`),\n memberInfo\n );\n }\n\n deactivateMember(externalGroupId: string, externamMemberId: string) {\n return this.http.put(\n getApiUrl(`members/${externalGroupId}/${externamMemberId}`),\n \"\"\n );\n }\n\n getGraphDataForMember(): Observable {\n return this.http.get(getApiUrl(\"members/graph\"));\n }\n\n checkIsEligibleForMedicalReceipts(): Observable {\n return this.http.get(\n getApiUrl(\"members/IsEligibleMedicalReceipts\")\n );\n }\n\n getAllMembersWithoutClaim(\n month?: number,\n year?: number\n ): Observable {\n let url = getApiUrl(\"members/withoutClaims\");\n let queryParamAdded = false;\n if (!!month) {\n queryParamAdded = true;\n url += `?month=${month}`;\n }\n\n if (!!year) {\n url += queryParamAdded ? \"&\" : \"?\";\n url += `year=${year}`;\n }\n\n return this.http.get(url);\n }\n\n getCityStateByZip(zipXml: string): Observable {\n return this.http.post(\n getApiUrl(`members/GetCityStateByZip?xml=` + zipXml), { responseType: 'text' }\n );\n }\n sendCertificateByAdmin(externamMemberId: string) {\n return this.http.get(getApiUrl(`members/SendEnrollmentCertificate?externalMemberId=${externamMemberId}`));\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { getApiUrl } from '../helpers/get-url';\nimport { Period } from '../models/period';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { StringResponse } from '../models/stringResponse';\n\n@Injectable({ providedIn: 'root' })\nexport class PeriodService {\n constructor(private http: HttpClient) { }\n\n getAllPeriods(): Observable {\n return this.http.get(getApiUrl(\"periods/getAllPeriods\"));\n }\n getPeriodById(planId: string) {\n return this.http.get(getApiUrl(`periods/${planId}`));\n }\n\n addPeriod(period: Period): Observable {\n return this.http.post(getApiUrl('periods'), period);\n }\n\n updatePeriod(periodId: number, period: Period): Observable {\n return this.http.put(getApiUrl(`periods/${periodId}`), period);\n }\n\n deletePeriod(periodId: number) {\n return this.http.delete(getApiUrl(`periods/${periodId}`));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { getApiUrl } from '../helpers/get-url';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { PeriodSchedule, PeriodSchedulePlan } from '../models/periodschedule';\n\n\n@Injectable({ providedIn: 'root' })\nexport class PeriodScheduleService { \n constructor(private http: HttpClient) { }\n \n getAllPeriodSchedule(): Observable {\n return this.http.get(getApiUrl(\"periodSchedule\"));\n }\n \n getPeriodScheduleById(periodId: string): Observable {\n return this.http.get(getApiUrl(`periodSchedule/getScheduleByPeriodId/${periodId}`));\n }\n\n getPeriodSchedulePlanById(periodSchduleId: string): Observable {\n return this.http.get(getApiUrl(`periodSchedule/getSchedulePlanByPeriodId/${periodSchduleId}`));\n }\n\n getScheduleById(periodId: string): Observable {\n return this.http.get(getApiUrl(`periodSchedule/${periodId}`));\n }\n getSchedulePlanById(schedulePlanId: number): Observable {\n return this.http.get(getApiUrl(`periodSchedule/getSchedulePlanByScheduleId/${schedulePlanId}`));\n }\n\n updatePeriodSchedule(periodId: string, period: PeriodSchedule): Observable {\n return this.http.put(getApiUrl(`periodSchedule/${periodId}`), period);\n }\n getAllPeriodSchedulePlanById(periodSchduleId: number): Observable {\n return this.http.get(getApiUrl(`periodSchedule/getAllPeriodSchedulePlanById/${periodSchduleId}`));\n }\n updatePeriodSchedulePlan(Id: number, period: PeriodSchedulePlan): Observable {\n return this.http.put(getApiUrl(`periodSchedule/${Id}/UpdatePeriodSchedulePlan`), period);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { getApiUrl } from '../helpers/get-url';\nimport { Plan } from '../models/plan';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { StringResponse } from '../models/stringResponse';\n\n@Injectable({ providedIn: 'root' })\nexport class PlanService {\n constructor(private http: HttpClient) { }\n\n getAllPlans(): Observable {\n return this.http.get(getApiUrl(\"plans/GetAllPlans\"));\n }\n\n getPlanById(planId: number) {\n return this.http.get(getApiUrl(`plans/${planId}`));\n }\n\n addPlan(plan: Plan): Observable {\n return this.http.post(getApiUrl('plans'), plan);\n }\n\n updatePlan(planId: number, plan: Plan): Observable {\n return this.http.put(getApiUrl(`plans/${planId}`), plan);\n }\n\n deletePlan(planId: number) {\n return this.http.delete(getApiUrl(`plans/${planId}`));\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class SharedService {\n public data;\n constructor() {\n const storedData = localStorage.getItem(\"data\");\n if (storedData) {\n this.data = JSON.parse(storedData);\n }\n }\n\n setData(data) {\n this.data = data;\n localStorage.setItem(\"data\", JSON.stringify(data));\n }\n\n getData() {\n return this.data;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class SignatureService {\n private signatureData: string;\n \n getSignatureData(): string {\n return this.signatureData;\n }\n\n setSignatureData(data: string): void {\n this.signatureData = data;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { getApiUrl } from '../helpers/get-url';\nimport { UserVideos } from '../models/userVideos';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class UserVideoService {\n constructor(private http: HttpClient) { }\n getAllUserVideos() {\n return this.http.get(getApiUrl('user/videos'));\n }\n\n getUserVideoById(videoRefernceId: string) {\n return this.http.get(getApiUrl(`user/videos/${videoRefernceId}`));\n }\n\n getAllUserVideosByStatus(videoStatus: number) {\n return this.http.get(getApiUrl(`user/videos/status/${videoStatus}`));\n }\n\n addVideoToUserLibrary(videoRefernceId: string, videoStatus: string): Observable {\n return this.http.post(getApiUrl(`user/videos/${videoRefernceId}/${videoStatus}`), {});\n }\n\n updateVideoStatus(videoRefernceId: string, videoStatus: string): Observable {\n return this.http.put(getApiUrl(getApiUrl(`user/videos/${videoRefernceId}/${videoStatus}`)), {});\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { User } from '../models/User';\nimport { getApiUrl } from '../helpers/get-url';\nimport { tap } from 'rxjs/internal/operators/tap';\nimport { UserStore } from '../controls/StateManagement/User/user.store';\n\n@Injectable({ providedIn: 'root' })\nexport class UserService {\n constructor(private http: HttpClient, private store: UserStore) { }\n\n getUserDetails(): Observable {\n return this.http.get(getApiUrl('user')).pipe(\n tap(user => {\n this.store.loadUserDetail(user, true);\n })\n );\n }\n\n changePassword(value: any) {\n return this.http.post(getApiUrl('user/change-password'), value);\n }\n\n forgotPassword(value: any) {\n return this.http.post(getApiUrl('user/forgot-password'), value);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { getApiUrl } from '../helpers/get-url';\nimport { VideoWithUserDetails } from '../models/VideoWithUserDetails';\nimport { Observable } from 'rxjs';\nimport { Videos } from '../models/videos';\nimport { StringResponse } from '../models/stringResponse';\n\n@Injectable({ providedIn: 'root' })\nexport class VideoService {\n\n constructor(private http: HttpClient) { }\n\n getAllVideos(): Observable {\n return this.http.get(getApiUrl('videos'));\n }\n\n getVideoById(videoReferenceId: string) {\n return this.http.get(getApiUrl(`videos/${videoReferenceId}`));\n }\n\n getDefaultVideo(): Observable {\n return this.http.get(getApiUrl(`videos/default`));\n }\n\n getAllVideosWithUserStatus(videoCategories: string): Observable {\n var url = getApiUrl('videos/user');\n if(!!videoCategories){\n url += `?categories=${videoCategories}`;\n }\n \n return this.http.get(url);\n }\n\n addVideo(video: Videos): Observable {\n return this.http.post(getApiUrl('videos'), video);\n }\n\n updateVideo(videoReferenceId: string, video: Videos): Observable {\n return this.http.put(getApiUrl(`videos/${videoReferenceId}`), video);\n }\n\n deleteVideo(videoReferenceId: string) {\n return this.http.get(getApiUrl(`videos/${videoReferenceId}`));\n }\n\n getVimeoJson(url: string) {\n return this.http.get(`https://vimeo.com/api/oembed.json?url=${url}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\n\n@Injectable()\nexport class VimeoService {\n\n constructor(private http: HttpClient) { }\n\n getEmbedLink(url) {\n const a = this.getOEmbedData(url).then(function (data) {\n return data;\n });\n return this.http.get(`https://vimeo.com/api/oembed.json?url=${url}`);\n\n }\n\n getOEmbedData(videoUrl: string) {\n const params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const element = arguments.length > 2 ? arguments[2] : undefined;\n return new Promise(function (resolve, reject) {\n let url = 'https://vimeo.com/api/oembed.json?url='.concat(encodeURIComponent(videoUrl));\n\n for (const param in params) {\n if (params.hasOwnProperty(param)) {\n url += '&'.concat(param, '=').concat(encodeURIComponent(params[param]));\n }\n }\n\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n\n xhr.onload = function () {\n if (xhr.status === 404) {\n reject(new Error('\\u201C'.concat(videoUrl, '\\u201D was not found.')));\n return;\n }\n\n if (xhr.status === 403) {\n reject(new Error('\\u201C'.concat(videoUrl, '\\u201D is not embeddable.')));\n return;\n }\n\n try {\n const json = JSON.parse(xhr.responseText); // Check api response for 403 on oembed\n\n if (json.domain_status_code === 403) {\n // We still want to create the embed to give users visual feedback\n // createEmbed(json, element);\n reject(new Error('\\u201C'.concat(videoUrl, '\\u201D is not embeddable.')));\n return;\n }\n\n resolve(json);\n } catch (error) {\n reject(error);\n }\n };\n\n xhr.onerror = function () {\n const status = xhr.status ? ' ('.concat(xhr.status.toString(), ')') : '';\n reject(new Error('There was an error fetching the embed code from Vimeo'.concat(status, '.')));\n };\n\n xhr.send();\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { getApiUrl } from '../helpers/get-url';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { WellnessProgress } from '../models/wellnessProgress';\n\n@Injectable({ providedIn: 'root' })\nexport class WellnessProgressService {\n constructor(private http: HttpClient) { }\n\n getAllWellnessProgressForMedicalReceiptType(): Observable {\n return this.http.get(getApiUrl('wellness-progress/medical-receipt-type'));\n }\n\n getWellnessProgress(wellnessProgressId: number): Observable {\n return this.http.get(getApiUrl(`wellness-progress/${wellnessProgressId}`));\n }\n\n updateMedicalReceipt(wellnessProgressId: number, wellnessProgress: WellnessProgress): Observable {\n return this.http.put(getApiUrl(`wellness-progress/medical-receipt-type/${wellnessProgressId}`), wellnessProgress);\n }\n\n updateReviewForMedicalReceiptType(wellnessProgressId: number, wellnessProgress: WellnessProgress): Observable {\n return this.http.put(getApiUrl(`review/medical-receipt-type/${wellnessProgressId}`), wellnessProgress);\n }\n\n addMedicalReceipt(wellnessProgress: WellnessProgress): Observable {\n var formData: any = new FormData();\n formData.append('serviceDate', wellnessProgress.serviceDate);\n formData.append('providerName', wellnessProgress.providerName);\n formData.append('IndemnityBenefitId', wellnessProgress.indemnityBenefitId);\n formData.append('receipt', wellnessProgress.receipt);\n formData.append('patientName', wellnessProgress.patientName);\n formData.append('patientBirthDate', wellnessProgress.patientBirthDate);\n return this.http.post(getApiUrl('wellness-progress/medical-receipt-type'), formData);\n }\n\n getWellnessProgressForMember(month?: number, year?: number): Observable {\n let url = getApiUrl('wellness-progress/wellness-progress-for-member');\n let queryParamAdded = false;\n if (!!month) {\n queryParamAdded = true;\n url += `?month=${month}`;\n }\n\n if (!!year) {\n url += queryParamAdded ? '&' : '?';\n url += `year=${year}`;\n }\n\n return this.http.get(url);\n //return this.http.get(getApiUrl('wellness-progress/wellness-progress-for-member'));\n }\n\n getAllWellnessProgressForMedicalReceiptTypeForMember(): Observable {\n return this.http.get(getApiUrl('wellness-progress/medical-receipt-type-for-member'));\n }\n\n downloadMedicalReceipt(wellnessProgressId: number): Observable {\n return this.http.get(getApiUrl(`wellness-progress/medical-receipt-type/download/${wellnessProgressId}`), { responseType: 'blob' as 'json' } );\n }\n}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AlertService } from 'src/app/services/alertService.service';\n\n\n@Component({ selector: 'alert', templateUrl: 'alert.component.html' })\nexport class AlertComponent implements OnInit, OnDestroy {\n private subscription: Subscription;\n message: any;\n\n constructor(private alertService: AlertService) { }\n\n ngOnInit() {\n this.subscription = this.alertService.getAlert()\n .subscribe(message => {\n switch (message && message.type) {\n case 'success':\n message.cssClass = 'alert alert-success';\n break;\n case 'error':\n message.cssClass = 'alert alert-danger';\n break;\n }\n\n this.message = message;\n });\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n clearNotifications() {\n this.alertService.clear();\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb250cm9scy9jYXB0Y2hhL2NhcHRjaGEuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-captcha',\n templateUrl: './captcha.component.html',\n styleUrls: ['./captcha.component.css']\n})\nexport class CaptchaComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","export * from './shared-input-icon.module'","export default \"/*\\nHigh DPI screens (retina macbooks, highresolution laptops, etc)\\n*/\\n/* Firefox specific styles go here */\\n/*\\nCOMMON COLOR NAMES\\n\\nThese colors are mapped to the names from the official colors.\\nInstead of having names like `crush` or `blaze`, developers will use their common, non-marketized name.\\neg. $red: crush\\n $orange: blaze\\n\\nThen, use the `hra-color` function to get the color\\neg. color: hra-color($red)\\n*/\\n/* **** */\\n/* * Charts Colors */\\n/* info text background */\\n/* Use following classes for aesthetics only - New UI KIT */\\n/* Color Mapping*/\\n/*ends*/\\n/* Used for grids and margins */\\n/*\\n font sizes\\n */\\n/*\\n * Header size\\n */\\n/*\\n * Device Group settings\\n */\\n/*\\n * Border settings\\n */\\n/*\\n * Shadows go by level\\n */\\n/*\\n * Padding settings\\n */\\n/*\\n * Inputs\\n */\\n/*\\n * ToolTips\\n */\\n/*\\n * Action bar sizes\\n */\\n/**\\n* Device grid sizes\\n*/\\n/*\\n * Focus border\\n */\\n/*\\n * Border\\n */\\n/*\\n * Pop-up\\n*/\\n/*\\n* Status Notification\\n*/\\n/*\\n Round button sizes\\n */\\n/*\\n * Image Icon Sizes\\n */\\n/** Modal sizes **/\\n:host {\\n background-color: white;\\n display: flex;\\n height: 2rem;\\n color: #a8b2b7;\\n border-color: #e4e7e9;\\n border-radius: 6px; }\\n:host([disabled]) {\\n pointer-events: none;\\n background-color: #eceff0; }\\n:host(.ng-pristine, .ng-valid) input:active,\\n:host(.ng-pristine, .ng-valid) input:focus {\\n color: #141e25;\\n border-color: #3d464d; }\\n:host(.ng-pristine, .ng-valid) input:active + label,\\n :host(.ng-pristine, .ng-valid) input:focus + label {\\n color: #141e25;\\n border-color: #3d464d; }\\nlabel {\\n margin-bottom: 0;\\n border-top-left-radius: 6px;\\n border-bottom-left-radius: 6px;\\n border-top: 1px solid;\\n border-left: 1px solid;\\n border-bottom: 1px solid;\\n border-right: none;\\n border-color: inherit;\\n background-color: inherit;\\n cursor: text;\\n height: 100%; }\\ni {\\n padding-left: 1rem;\\n padding-right: 0.75rem;\\n font-size: 1rem;\\n align-self: center;\\n height: 100%;\\n order: 1;\\n display: flex; }\\ni:before {\\n align-self: center; }\\ninput {\\n border-top-right-radius: 6px;\\n border-bottom-right-radius: 6px;\\n border-top: 1px solid;\\n border-right: 1px solid;\\n border-bottom: 1px solid;\\n border-left: none;\\n border-color: inherit;\\n background-color: inherit;\\n color: inherit;\\n flex: 1;\\n order: 2;\\n margin: 0;\\n padding: 0; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21lZGlhcXVlcmllcy5zY3NzIiwic3JjL2FwcC9zaGFyZWQvY29udHJvbHMvaW5wdXQtaWNvbi9pbnB1dC1pY29uLmN0cmwuc2NzcyIsIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21peGlucy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9zdHlsZXMvYmFzZS9fY29sb3JzLnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvc2hhcmVkL3N0eWxlcy9iYXNlL19zZXR0aW5ncy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9jb250cm9scy9pbnB1dC1pY29uL2lucHV0LWljb24uY3RybC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThCQTs7Q0M1QkM7QUMwS0Qsb0NBQUE7QUM1S0E7Ozs7Ozs7Ozs7Q0ZjQztBRStERCxTQUFBO0FBVUEsb0JBQUE7QUFLQSx5QkFBQTtBQUlBLDJEQUFBO0FBRUEsaUJBQUE7QUFvQkEsT0FBQTtBQ25IQSwrQkFBQTtBQWlCQTs7RUhJRTtBR21CRjs7RUhoQkU7QUc4QkY7O0VIM0JFO0FHeUNGOztFSHRDRTtBRytDRjs7RUg1Q0U7QUdrRUY7O0VIL0RFO0FHaUZGOztFSDlFRTtBR29GRjs7RUhqRkU7QUc0RkY7O0VIekZFO0FHZ0dGOztDSDdGQztBR3FHRDs7RUhsR0U7QUd3R0Y7O0VIckdFO0FHOEdGOztDSDNHQztBR3FIRDs7Q0hsSEM7QUcwSEQ7O0VIdkhFO0FHOEhGOztFSDNIRTtBR3NJRixrQkFBQTtBQ3pNQTtFQUNFLHVCRnFFd0I7RUVwRXhCLGFBQWE7RUFDYixZRHVIOEI7RUN0SDlCLGNGaUMwRDtFRWhDMUQscUJGZ0M2QztFRS9CN0Msa0JEc0V1QixFQUFBO0FDbkV6QjtFQUNFLG9CQUFvQjtFQUNwQix5QkYwQmdDLEVBQUE7QUV2QmxDOztFQUdJLGNGb0I4RztFRW5COUcscUJGbUJnRyxFQUFBO0FFdkJwRzs7SUFNTSxjRmlCNEc7SUVoQjVHLHFCRmdCOEYsRUFBQTtBRVhwRztFQUNFLGdCQUFnQjtFQUNoQiwyQkRnRHVCO0VDL0N2Qiw4QkQrQ3VCO0VDOUN2QixxQkFBcUI7RUFDckIsc0JBQXNCO0VBQ3RCLHdCQUF3QjtFQUN4QixrQkFBa0I7RUFDbEIscUJBQXFCO0VBQ3JCLHlCQUF5QjtFQUN6QixZQUFZO0VBQ1osWUFBWSxFQUFBO0FBR2Q7RUFDRSxrQkFBK0I7RUFDL0Isc0JINEJ1RDtFRzNCdkQsZUFBNEI7RUFDNUIsa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixRQUFRO0VBQ1IsYUFBYSxFQUFBO0FBUGY7SUFTSSxrQkFBa0IsRUFBQTtBQUl0QjtFQUNFLDRCRHNCdUI7RUNyQnZCLCtCRHFCdUI7RUNwQnZCLHFCQUFxQjtFQUNyQix1QkFBdUI7RUFDdkIsd0JBQXdCO0VBQ3hCLGlCQUFpQjtFQUNqQixxQkFBcUI7RUFDckIseUJBQXlCO0VBQ3pCLGNBQWM7RUFDZCxPQUFPO0VBQ1AsUUFBUTtFQUNSLFNBQVM7RUFDVCxVQUFVLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9zaGFyZWQvY29udHJvbHMvaW5wdXQtaWNvbi9pbnB1dC1pY29uLmN0cmwuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vICBBdXRob3I6IFJhZmFsIEJyb21pcnNraVxuLy8gIHd3dzogaHR0cDovL3JhZmFsYnJvbWlyc2tpLmNvbS9cbi8vICBnaXRodWI6IGh0dHA6Ly9naXRodWIuY29tL3BhcmFub2lkYS9zYXNzLW1lZGlhcXVlcmllc1xuLy9cbi8vICBMaWNlbnNlZCB1bmRlciBhIE1JVCBMaWNlbnNlXG4vL1xuLy8gIFZlcnNpb246XG4vLyAgMS42LjFcbi8vIC0tLSBnZW5lcmF0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gbXEoJGFyZ3MuLi4pIHtcbiAgJG1lZGlhLXR5cGU6ICdvbmx5IHNjcmVlbic7XG4gICRtZWRpYS10eXBlLWtleTogJ21lZGlhLXR5cGUnO1xuICAkYXJnczoga2V5d29yZHMoJGFyZ3MpO1xuICAkZXhwcjogJyc7XG4gIEBpZiBtYXAtaGFzLWtleSgkYXJncywgJG1lZGlhLXR5cGUta2V5KSB7XG4gICAgJG1lZGlhLXR5cGU6IG1hcC1nZXQoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gICAgJGFyZ3M6IG1hcC1yZW1vdmUoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gIH1cbiAgQGVhY2ggJGtleSxcbiAgJHZhbHVlIGluICRhcmdzIHtcbiAgICBAaWYgJHZhbHVlIHtcbiAgICAgICRleHByOiBcIiN7JGV4cHJ9IGFuZCAoI3ska2V5fTogI3skdmFsdWV9KVwiO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgI3skbWVkaWEtdHlwZX0gI3skZXhwcn0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cblxuLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cblxuQG1peGluIGhkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAje3JvdW5kKCRyYXRpbyo5Nil9ZHBpKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gJG9yaWVudGF0aW9uOiBsYW5kc2NhcGUgfCBwb3J0cmFpdFxuQG1peGluIHRhYmxldCgkb3JpZW50YXRpb246IGZhbHNlKSB7XG4gICRtaW46IDI2OHB4O1xuICAkbWF4OiAxMDI0cHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4LCAkb3JpZW50YXRpb246ICRvcmllbnRhdGlvbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIHNtYWxsIGRlc2t0b3AgLSAxMDI1IDwtPiAxMjgwXG5AbWl4aW4gc21hbGwtZGVza3RvcCgpIHtcbiAgJG1pbjogMTAyNXB4O1xuICAkbWF4OiAxMjgwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gbWVkaXVtIGRlc2t0b3AgLSAxMjgxIDwtPiAxNDQwXG5AbWl4aW4gbWVkaXVtLWRlc2t0b3AoKSB7XG4gICRtaW46IDEyODFweDtcbiAgJG1heDogMTQ0MHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIGxhcmdlIGRlc2t0b3AgLSAxNDQxIDwtPiAxNjAwXG5AbWl4aW4gbGFyZ2UtZGVza3RvcCgpIHtcbiAgJG1pbjogMTQ0MXB4O1xuICAkbWF4OiAxNjAwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8geGxhcmdlIGRlc2t0b3AgLSAxNjAxIC0+IGluZmluaXR5XG5AbWl4aW4geGxhcmdlLWRlc2t0b3AoKSB7XG4gICRtaW46IDE2MDFweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBkZXNrdG9wIG92ZXJsYXlcbkBtaXhpbiBkZXNrdG9wLW92ZXJsYXkoKSB7XG4gICAgJG1pbjogMjY4cHg7XG4gICAgJG1heDogOTI2cHg7XG4gICAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cbi8qIEZpcmVmb3ggc3BlY2lmaWMgc3R5bGVzIGdvIGhlcmUgKi9cbi8qXG5DT01NT04gQ09MT1IgTkFNRVNcblxuVGhlc2UgY29sb3JzIGFyZSBtYXBwZWQgdG8gdGhlIG5hbWVzIGZyb20gdGhlIG9mZmljaWFsIGNvbG9ycy5cbkluc3RlYWQgb2YgaGF2aW5nIG5hbWVzIGxpa2UgYGNydXNoYCBvciBgYmxhemVgLCBkZXZlbG9wZXJzIHdpbGwgdXNlIHRoZWlyIGNvbW1vbiwgbm9uLW1hcmtldGl6ZWQgbmFtZS5cbmVnLiAkcmVkOiBjcnVzaFxuICAgICRvcmFuZ2U6IGJsYXplXG5cblRoZW4sIHVzZSB0aGUgYGhyYS1jb2xvcmAgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb2xvclxuZWcuIGNvbG9yOiBocmEtY29sb3IoJHJlZClcbiovXG4vKiAqKioqICovXG4vKiAqIENoYXJ0cyBDb2xvcnMgKi9cbi8qIGluZm8gdGV4dCBiYWNrZ3JvdW5kICovXG4vKiBVc2UgZm9sbG93aW5nIGNsYXNzZXMgZm9yIGFlc3RoZXRpY3Mgb25seSAtIE5ldyBVSSBLSVQgKi9cbi8qIENvbG9yIE1hcHBpbmcqL1xuLyplbmRzKi9cbi8qIFVzZWQgZm9yIGdyaWRzIGFuZCBtYXJnaW5zICovXG4vKlxuICBmb250IHNpemVzXG4gKi9cbi8qXG4gKiBIZWFkZXIgc2l6ZVxuICovXG4vKlxuICogRGV2aWNlIEdyb3VwIHNldHRpbmdzXG4gKi9cbi8qXG4gKiBCb3JkZXIgc2V0dGluZ3NcbiAqL1xuLypcbiAqIFNoYWRvd3MgZ28gYnkgbGV2ZWxcbiAqL1xuLypcbiAqIFBhZGRpbmcgc2V0dGluZ3NcbiAqL1xuLypcbiAqIElucHV0c1xuICovXG4vKlxuICogVG9vbFRpcHNcbiAqL1xuLypcbiAqIEFjdGlvbiBiYXIgc2l6ZXNcbiAqL1xuLyoqXG4qICBEZXZpY2UgZ3JpZCBzaXplc1xuKi9cbi8qXG4gKiBGb2N1cyBib3JkZXJcbiAqL1xuLypcbiAqIEJvcmRlclxuICovXG4vKlxuICogUG9wLXVwXG4qL1xuLypcbiogU3RhdHVzIE5vdGlmaWNhdGlvblxuKi9cbi8qXG4gIFJvdW5kIGJ1dHRvbiBzaXplc1xuICovXG4vKlxuICogSW1hZ2UgSWNvbiBTaXplc1xuICovXG4vKiogTW9kYWwgc2l6ZXMgKiovXG46aG9zdCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDJyZW07XG4gIGNvbG9yOiAjYThiMmI3O1xuICBib3JkZXItY29sb3I6ICNlNGU3ZTk7XG4gIGJvcmRlci1yYWRpdXM6IDZweDsgfVxuXG46aG9zdChbZGlzYWJsZWRdKSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlZmYwOyB9XG5cbjpob3N0KC5uZy1wcmlzdGluZSwgLm5nLXZhbGlkKSBpbnB1dDphY3RpdmUsXG46aG9zdCgubmctcHJpc3RpbmUsIC5uZy12YWxpZCkgaW5wdXQ6Zm9jdXMge1xuICBjb2xvcjogIzE0MWUyNTtcbiAgYm9yZGVyLWNvbG9yOiAjM2Q0NjRkOyB9XG4gIDpob3N0KC5uZy1wcmlzdGluZSwgLm5nLXZhbGlkKSBpbnB1dDphY3RpdmUgKyBsYWJlbCxcbiAgOmhvc3QoLm5nLXByaXN0aW5lLCAubmctdmFsaWQpIGlucHV0OmZvY3VzICsgbGFiZWwge1xuICAgIGNvbG9yOiAjMTQxZTI1O1xuICAgIGJvcmRlci1jb2xvcjogIzNkNDY0ZDsgfVxuXG5sYWJlbCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDZweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNnB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQ7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGN1cnNvcjogdGV4dDtcbiAgaGVpZ2h0OiAxMDAlOyB9XG5cbmkge1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNzVyZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9yZGVyOiAxO1xuICBkaXNwbGF5OiBmbGV4OyB9XG4gIGk6YmVmb3JlIHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cblxuaW5wdXQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNnB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQ7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmbGV4OiAxO1xuICBvcmRlcjogMjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG4iLCJAaW1wb3J0ICcuL21lZGlhcXVlcmllcyc7XG5cbi8vLyAvIHN0eWxlZ3VpZGU6aWdub3JlOnN0YXJ0XG4vLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2Vcbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcbi8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIFRoZSBiYXNlIHZhbHVlIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBgcmVtYC4gSWYgeW91J3JlIHVzaW5nIEZvdW5kYXRpb24gb3V0IG9mIHRoZSBib3gsIHRoaXMgaXMgMTZweC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgYG51bGxgLCB0aGUgZnVuY3Rpb24gd2lsbCByZWZlcmVuY2UgdGhlIGAkYmFzZS1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlPT1udWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpPT0nJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cbiAgQGlmICRjb3VudD09MSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XG59XG5cbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXG5AZnVuY3Rpb24gLXpmLWJwLXRvLWVtKCR2YWx1ZSkge1xuICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICBAaWYgdW5pdCgkdmFsdWUpPT0ncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9J251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSsnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW1cbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWU9PTByZW0ge1xuICAgICR2YWx1ZTogMDtcbiAgfVxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIEFuaW1hdGlvbiBrZXlmcmFtZXMgYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGFuaW1hdGlvbi1uYW1lIC0gTmFtZSBvZiB0aGUgYW5pbWF0aW9uLlxuQG1peGluIGtleWZyYW1lcygkYW5pbWF0aW9uLW5hbWUpIHtcbiAgQC13ZWJraXQta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1tb3ota2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1tcy1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW8ta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBBbmltYXRpb24gYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0ciAtIGNzczMgYW5pbWF0aW9uIHNwZWMuXG5AbWl4aW4gYW5pbWF0aW9uKCRzdHIpIHtcbiAgLXdlYmtpdC1hbmltYXRpb246ICN7JHN0cn07XG4gIC1tb3otYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtbXMtYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtby1hbmltYXRpb246ICN7JHN0cn07XG4gIGFuaW1hdGlvbjogI3skc3RyfTtcbn1cblxuLy8vIEJveCBzaGFkb3cgYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0ciAtIGNzczMgYm94LXNoYWRvdyBzcGVjLlxuQG1peGluIGJveC1zaGFkb3coJHN0cikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICN7JHN0cn07XG4gIC1tb3otYm94LXNoYWRvdzogI3skc3RyfTtcbiAgLW8tYm94LXNoYWRvdzogI3skc3RyfTtcbiAgYm94LXNoYWRvdzogI3skc3RyfTtcbn1cblxuLy8vIGdyYWRpZW50IGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gZ3JhZGllbnQoJGNvbG9yMSwgJGNvbG9yMikge1xuICBiYWNrZ3JvdW5kOiAjeyRjb2xvcjF9O1xuICAvKiBGb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBncmFkaWVudHMgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBTYWZhcmkgNS4xIHRvIDYuMCAqL1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBPcGVyYSAxMS4xIHRvIDEyLjAgKi9cbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBGaXJlZm94IDMuNiB0byAxNSAqL1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIFN0YW5kYXJkIHN5bnRheCAqL1xufVxuXG5AbWl4aW4gdmVydGljYWwtZ3JhZGllbnQtZGl2aWRlcigpe1xuICB3aWR0aDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6IDFweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgaHJhLWNvbG9yKCRncmV5LCAyMCksICR3aGl0ZSk7XG59XG5cblxuLy8vIElFIG9ubHkgcXVlcnlcbkBtaXhpbiBpZS1vbmx5KCkge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuICAgIC8qIElFMTArIHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG5AbWl4aW4gY3JlYXRlLWFuaW1hdGlvbigkYW5pLW5hbWUpIHtcbiAgYW5pbWF0aW9uOiAkYW5pLW5hbWUgZm9yd2FyZHMgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cblxuQG1peGluIGNyZWF0ZS10cmFuc2l0aW9uKCRwcm9wZXJ0eS1uYW1lKSB7XG4gIHRyYW5zaXRpb246ICRwcm9wZXJ0eS1uYW1lIDMwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG4vLy8gRWRnZSBvbmx5IHF1ZXJ5XG5AbWl4aW4gZWRnZS1vbmx5KCkge1xuICBAc3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAvKiBFZGdlIHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG4vKiBGaXJlZm94IHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG5AbWl4aW4gZmlyZWZveC1vbmx5KCkge1xuICBAc3VwcG9ydHMgKC1tb3otYXBwZWFyYW5jZTpub25lKSB7XG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG5cbi8vIHN0eWxlZ3VpZGU6aWdub3JlOmVuZCIsIi8qXG5DT01NT04gQ09MT1IgTkFNRVNcblxuVGhlc2UgY29sb3JzIGFyZSBtYXBwZWQgdG8gdGhlIG5hbWVzIGZyb20gdGhlIG9mZmljaWFsIGNvbG9ycy5cbkluc3RlYWQgb2YgaGF2aW5nIG5hbWVzIGxpa2UgYGNydXNoYCBvciBgYmxhemVgLCBkZXZlbG9wZXJzIHdpbGwgdXNlIHRoZWlyIGNvbW1vbiwgbm9uLW1hcmtldGl6ZWQgbmFtZS5cbmVnLiAkcmVkOiBjcnVzaFxuICAgICRvcmFuZ2U6IGJsYXplXG5cblRoZW4sIHVzZSB0aGUgYGhyYS1jb2xvcmAgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb2xvclxuZWcuIGNvbG9yOiBocmEtY29sb3IoJHJlZClcbiovXG5cbiR0aGVtZS1ncmVlbjogI2RmZDI2OTtcbiR0aGVtZS1jb2xvcjogJHRoZW1lLWdyZWVuO1xuJGJsdWU6IGJsdWU7XG4kY3lhbjogY3lhbjtcbiRncmV5OiBncmV5O1xuJHJlZDogY3J1c2g7XG4kb3JhbmdlOiBibGF6ZTtcbiR5ZWxsb3c6IHN1bnNldCwgNjA7XG4kZ3JlZW46IHNlYWZvYW07XG4kbGlnaHQtZ3JlZW46IHNlYXdlZWQ7XG4kZGFyay1ncmVlbjogbWFyaW5lO1xuJGJyb3duOiBicm93bjtcbiRwdXJwbGU6IHB1cnBsZTtcbiRzdW5zZXQ6IHN1bnNldDtcbiRwaW5rOiBwaW5rO1xuXG4kbmV3Z3JleTogbmV3Z3JleTtcbiRuZXdibHVlOiBuZXdibHVlO1xuJG5ld2N5YW46IG5ld2N5YW47XG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBobWEncyBDb2xvdXIgUGFsZXR0ZVxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuJGNvbG9yczogKFxuICAgIGJsdWU6ICg1OiAjZjNmYmZlLCAxMDogI2UyZjRmYiwgMjA6ICNiYWU1ZjUsIDQwOiAjNzFjOGYxLCA2MDogIzMyYjZlOSwgODA6ICMwMDk5ZDMsIDEwMDogIzAwNzRhYSwgMTIwOiAjMDY0YzdjKSxcbiAgICBjcnVzaDogKDU6ICNmZmY3ZjYsIDEwOiAjZmVmMGVkLCAyMDogI2ZkZGZkYywgNDA6ICNmYWMxYmEsIDYwOiAjZjQ4MjcyLCA4MDogI2YxNjE0ZiwgMTAwOiAjZTMyNzIyLCAxMTA6I2MxM2YyYiwgMTIwOiAjYTcxZTIyKSxcbiAgICBjeWFuOiAoNTogI2YyZjlmOSwgMTA6ICNlNmY0ZjQsIDIwOiAjY2NlYWVhLCA0MDogIzlhZDdkNiwgNjA6ICM2OGM1YzQsIDgwOiAjMzZiMWIwLCAxMDA6ICMwMjlmOWQsIDEyMDogIzAyNmY2ZiksXG4gICAgYmxhemU6ICg1OiAjZmZmN2YzLCAxMDogI2ZmZjFlOSwgMjA6ICNmY2UxZDMsIDQwOiAjZmNjNWE3LCA2MDogI2Y3YTc3YiwgODA6ICNmNjg5NGQsIDEwMDogI2YyNmIyMSwgMTIwOiAjYjczZTI1KSxcbiAgICBncmV5OiAoNTogI2ZhZmJmYiwgMTA6ICNlY2VmZjAsIDIwOiAjZTRlN2U5LCA0MDogI2E4YjJiNywgNjA6ICM4MjhkOTMsIDgwOiAjNUI2NjcwLCAxMDA6ICMzZDQ2NGQsIDEyMDogIzE0MWUyNSksXG4gICAgc2VhZm9hbTogKDU6ICNlZmY5ZjgsIDEwOiAjZTRmN2YzLCAyMDogI2NmZWRlOCwgNDA6ICNhNWVhZGIsIDYwOiAjNjFkNmI4LCA4MDogIzJmZDJhOCwgMTAwOiAjMWVhZDhhLCAxMjA6ICMwYjcwNWQpLFxuICAgIHNlYXdlZWQ6ICg1OiAjZjhmYmY2LCAxMDogI2YyZjhlZCwgMjA6ICNlM2YwZDksIDQwOiAjY2JlNGI1LCA2MDogI2IwZDc4ZSwgODA6ICM5NWNiNmEsIDEwMDogIzdhYzE0MiwgMTIwOiAjNDk5MTQyKSxcbiAgICBtYXJpbmU6ICg1OiAjZjdmOWYzLCAxMDogI2YxZjRlOCwgMjA6ICNlNGVhZDIsIDQwOiAjY2JkOWE3LCA2MDogI2JmZGI4NSwgODA6ICNhZWQyNTUsIDEwMDogIzdhYTEzZSwgMTIwOiAjNGM3MzM2KSxcbiAgICBwZWJibGU6ICg1OiAjZmJmY2ZjLCAxMDogI2Y1ZjZmNiwgMjA6ICNlOWU4ZTksIDQwOiAjZDVkNGQ1LCA2MDogI2FhYWFhYiwgODA6ICM3YzdjODEsIDEwMDogIzU0NTM1NSwgMTIwOiAjMjgyNzJiKSxcbiAgICBzdW5zZXQ6ICg1OiAjZmZmZGVlLCAxMDogI2ZmZmJkYiwgMjA6ICNmZGY3YjQsIDQwOiAjZmZmNTdlLCA2MDogI2ZmZjEwMCwgODA6ICNmYmFkMWMsIDEwMDogI2Y0N2YxZiwgMTIwOiAjYzk1NDI4KSxcbiAgICBicm93bjogKDU6ICNmN2Y0ZjIsIDEwOiAjZWFlNGUxLCAyMDogI2Q4Y2VjYiwgNDA6ICNiYWFiYTUsIDYwOiAjOTY4MzdjLCA4MDogIzc3NWQ1MywgMTAwOiAjNTkzODJjLCAxMjA6ICMyZjE4MGQpLFxuICAgIHB1cnBsZTogKDU6ICNmMmVmZjcsIDEwOiAjZThkZmVmLCAyMDogI2Q3YzllMywgNDA6ICNjMWFlZDUsIDYwOiAjYTA4NWJlLCA4MDogIzdiNjFhYSwgMTAwOiAjNjY0ZmExLCAxMjA6ICM0MjJlODUpLFxuICAgIHBpbms6ICg1OiAjZmVmNGY4LCAxMDogI2ZjZTdlZiwgMjA6ICNmYWRhZTEsIDQwOiAjZjRhMmMyLCA2MDogI2VkNzNhNCwgODA6ICNlOTQ1ODYsIDEwMDogI2UzMTU2NywgMTIwOiAjYWIxZDQxKSxcblxuICAgIC8vIE5ldyBVSSBLaXQgY29sb3JzIC0gbmV3IHByZWZpeCB3aWxsIGJlIHJlbW92ZWQgb25jZSB0aGUgbWlncmF0aW9uIGlzIGNvbXBsZXRlZFxuICAgIC8vIEl0IGFsc28gbWFrZXMgc3VyZSB0aGF0IGNvbG9yIHZhcmlhYmxlcyBhcmUgdXNlZFxuICAgIG5ld2dyZXk6ICg1OiAjZmNmY2ZjLCAxMDogI2Y3ZjdmNywgMjA6ICNmMmYyZjIsIDQwOiAjZTllOWU5LCA1MDogI2M3YzdjNywgNjA6ICNhOWE5YTksIDcwOiAjODA4MDgwLCA4MDogIzZiNmI2YiwxMDA6ICM0YjRiNGIsMTIwOiMyOTI5MjkpLFxuICAgIG5ld2JsdWU6ICg1OiAjZjBmNmZhLCAxMDogI2UyZWVmNSwgMjA6ICNiOGQ1ZTcsIDQwOiAjOGViYmQ3LCA1MDogIzY5YTFjNywgNTU6ICM0ZjhmYmQsIDY1OiAjMzg3ZWIzLCA3MDogIzJmNzJhOCwgODA6ICMyNTYyOTcsIDEwMDogIzFkNTI4NSwgMTIwOiAjMTAzNzY2KSxcbiAgICBuZXdjeWFuOiAoNTogI2YwZjZmYSwgMTA6ICNlMmVlZjUsIDIwOiAjYjhkNWU3LCA0MDogIzhlYmJkNywgNTA6ICM2OWExYzcsIDU1OiAjNGY4ZmJkLCA2NTogIzM4N2ViMywgMTAwOiAjMmY3MmE4LCAxMjA6ICMyNTYyOTcsIDE0MDogIzFkNTI4NSwgMTYwOiAjMTAzNzY2KSxcbik7XG5cbkBmdW5jdGlvbiBocmEtY29sb3IoJGNvbG9yLCAkdmFsdWU6IDEwMCkge1xuICAgICRzZWxlY3RlZENvbG9yOiAkY29sb3I7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGNvbG9yKSA9PSAnbGlzdCcpIHtcbiAgICAgICAgJHNlbGVjdGVkQ29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAgICAgICAkdmFsdWU6IG50aCgkY29sb3IsIDIpO1xuICAgIH1cblxuICAgICRjb2xvci1tYXA6IG1hcC1nZXQoJGNvbG9ycywgJHNlbGVjdGVkQ29sb3IpO1xuICAgIEBpZiAoJGNvbG9yLW1hcCA9PSBudWxsKSB7XG4gICAgICAgIEBlcnJvciAkc2VsZWN0ZWRDb2xvciArICcgaXMgbm90IHBhcnQgb2YgdGhlIGNvbG9yIHBhbGV0dGUnO1xuICAgIH1cbiAgICBAcmV0dXJuIG1hcC1nZXQoJGNvbG9yLW1hcCwgJHZhbHVlKTtcbn1cblxuJGJsYWNrOiBocmEtY29sb3IoJGdyZXksIDEyMCk7XG4kd2hpdGU6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiRjb2xvci1ncmF5LXRyYW5zcGFyZW50OiB0cmFuc3BhcmVudGl6ZShocmEtY29sb3IoJGdyZXkpLCAwLjgpO1xuJGhvdmVyLWNvbG9yOiBocmEtY29sb3IoJGdyZXksIDIwKTtcblxuXG4vKiAqKioqICovXG4kc3VjY2Vzcy1jb2xvcjogaHJhLWNvbG9yKCRncmVlbik7XG4kd2FybmluZy1jb2xvcjogaHJhLWNvbG9yKCR5ZWxsb3cpO1xuJGFsZXJ0LWNvbG9yOiBocmEtY29sb3IoJHJlZCk7XG4kY29sb3ItaW52YWxpZDogaHJhLWNvbG9yKCRyZWQpO1xuJGRpc2FibGVkLWNvbG9yOiBocmEtY29sb3IoJGdyZXksIDEwKTtcbiRkaXNhYmxlZC1ib3JkZXI6IGhyYS1jb2xvcigkZ3JleSwgNDApO1xuJGNvbG9yLWhyYS1hbmNob3I6IGhyYS1jb2xvcigkYmx1ZSk7XG4kZGlzYWJsZWQtZm9yZS1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCA0MCk7XG5cbi8qICogQ2hhcnRzIENvbG9ycyAqL1xuJHN0YWNrZWQtdG9vbHRpcC1jaXJjbGUtYmc6ICMzZjQwNDI7XG4kY2hhcnQtdG9vbHRpcC1jaXJjbGU6ICNmZjg5NGM7XG4kZG9udXQtY291bnQ6ICNmZjZiNTc7XG5cbi8qIGluZm8gdGV4dCBiYWNrZ3JvdW5kICovXG4kaW5mby1iYWNrZ3JvdW5kOiAjZmZmZGU2O1xuXG5cbi8qIFVzZSBmb2xsb3dpbmcgY2xhc3NlcyBmb3IgYWVzdGhldGljcyBvbmx5IC0gTmV3IFVJIEtJVCAqL1xuLy8gU3RhbmRhcmRpc2UgdmFyaWFibGVzIHNob3VsZCBiZSB1c2VkIGluc3RlYWQgb2YgZGlyZWN0IGNvbG9yc1xuLyogQ29sb3IgTWFwcGluZyovXG4kcHJpbWFyeS1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Ymx1ZSwgNzApO1xuJHByaW1hcnktaG92ZXItYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDEwMCk7XG4kcHJpbWFyeS10ZXh0OiR3aGl0ZTtcblxuJGRlbGV0ZS1iYWNrZ3JvdW5kOiBocmEtY29sb3IoJHJlZCwgMTEwKTtcblxuJHNlY29uZGFyeS10ZXh0OmhyYS1jb2xvcigkbmV3Ymx1ZSwgNTUpO1xuJHNlY29uZGFyeS1iYWNrZ3JvdW5kOiR3aGl0ZTtcbiRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDUpO1xuJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Z3JleSwgNTApO1xuJHNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZDokc2Vjb25kYXJ5LXRleHQ7XG5cbiRmbGF0LWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDgwKTtcbiRmbGF0LWhvdmVyOiBocmEtY29sb3IoJG5ld2dyZXksIDEwMCk7XG4kZmxhdC1kaXNhYmxlZDogaHJhLWNvbG9yKCRuZXdncmV5LCA3MCk7XG5cbiRhY3Rpb24taG92ZXItYmFja2dyb3VuZDogaHJhLWNvbG9yKCRuZXdibHVlLCA4MCk7XG4kYWN0aW9uLWRpc2FibGVkOiBocmEtY29sb3IoJG5ld2dyZXksIDU1KTtcbiRhY3Rpb24tYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDUwKTtcbi8qZW5kcyovXG5cbiRidXR0b24tcHJpbWFyeS10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktYmFja2dyb3VuZDtcbiRidXR0b24tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiRwcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLXByaW1hcnktZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1kZWxldGUtYmFja2dyb3VuZC1jb2xvcjogJGRlbGV0ZS1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1wcmltYXJ5LWRpc2FibGVkLWJvcmRlci1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuXG4vLyBTZWNvbmRhcnkgYnV0dG9ucyBhbmQgc2Vjb25kYXJ5IGFjdGlvbiBidXR0b25zIHNoYXJlIGNvbG9ycyBcbiRidXR0b24tc2Vjb25kYXJ5LWJvcmRlci1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1zZWNvbmRhcnktdGV4dC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItdGV4dC1jb2xvcjogJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1zZWNvbmRhcnktZGlzYWJsZWQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG5cbiRidXR0b24tZmxhdC1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiRidXR0b24tZmxhdC1jb2xvcjogJGZsYXQtY29sb3I7XG4kYnV0dG9uLWZsYXQtaG92ZXItY29sb3I6JGZsYXQtaG92ZXI7XG4kYnV0dG9uLWZsYXQtZGlzYWJsZWQtY29sb3I6ICRmbGF0LWRpc2FibGVkO1xuXG4kYnV0dG9uLWFjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1ob3Zlci10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1kaXNhYmxlZC10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1kZWxldGUtYmFja2dyb3VuZC1jb2xvcjokZGVsZXRlLWJhY2tncm91bmQ7XG5cbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWRpc2FibGVkLWNvbG9yOiAkYWN0aW9uLWRpc2FibGVkO1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG5cbiR1bnNlbGVjdGVkLWNob2ljZS1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJHNlbGVjdGVkLWNob2ljZS1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuXG4kcmFkaW8tbGFiZWwtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiR0b2dnbGUtb24tYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJHRvZ2dsZS1vZi1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kdG9nZ2xlLWhlYWQtY29sb3I6ICR3aGl0ZTtcblxuJGlucHV0LXRleHQtbGFiZWwtY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgMTIwKTtcbiRpbnB1dC10ZXh0LWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA0MCk7XG4kaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA2MCk7XG4kaW5wdXQtdGV4dC1hY3RpdmUtYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDgwKTtcbiRpbnB1dC10ZXh0LWFjdGl2ZS10ZXh0LWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDEyMCk7XG4kaW5wdXQtdGV4dC1lcnJvci1ib3JkZXItY29sb3I6IGhyYS1jb2xvcigkcmVkLCAxMTApO1xuJGlucHV0LXRleHQtZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDUwKTtcbiRpbnB1dC10ZXh0LWVycm9yLW1lc3NhZ2UtY29sb3I6ICRpbnB1dC10ZXh0LWVycm9yLWJvcmRlci1jb2xvcjtcbiRpbnB1dC10ZXh0LWRpc2FibGVkLWNvbG9yOiAkaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjtcbiRpbnB1dC10ZXh0LWxhYmVsLWRpc2FibGVkLWNvbG9yOiAkaW5wdXQtdGV4dC1ib3JkZXItY29sb3I7XG4kaW5wdXQtdGV4dC1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjsiLCJAaW1wb3J0ICdtaXhpbnMnO1xuQGltcG9ydCAnY29sb3JzJztcblxuLyogVXNlZCBmb3IgZ3JpZHMgYW5kIG1hcmdpbnMgKi9cblxuJHNtYWxsLXNpemU6IDQgIWRlZmF1bHQ7XG4kbGFyZ2Utc2l6ZTogMTIgIWRlZmF1bHQ7XG4kc21hbGwtc3F1YXJlOiByZW0tY2FsYygkc21hbGwtc2l6ZSkgIWRlZmF1bHQ7XG4kbGFyZ2Utc3F1YXJlOiByZW0tY2FsYygkbGFyZ2Utc2l6ZSkgIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtZ3JheTogdHJhbnNwYXJlbnRpemUoaHJhLWNvbG9yKCRncmV5LCA0MCksIDAuOCk7XG4kdHJhbnNwYXJlbnQtd2hpdGU6IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KTtcbiRhbmltYXRpb24tdGltaW5nOiAwLjI1cztcbiRyYWQtZ3JhZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyLCB0cmFuc3BhcmVudGl6ZShocmEtY29sb3IoJGdyZXkpLCAwLjUpIDgwJSwgdHJhbnNwYXJlbnRpemUoJGJsYWNrLCAwLjUpIDEwMCUpO1xuJGxpbmVhci1ncmFkOiByZ2JhKCRibGFjaywgMC43KTtcblxuJHNjcm9sbC1iYXItd2lkdGg6ICRzbWFsbC1zcXVhcmUgKiAyO1xuJHNjcm9sbC1iYXItd2lkdGgtZmlyZWZveDogcmVtLWNhbGMoMTcpO1xuJHNjcm9sbC1iYXItd2lkdGgtZWRnZTogcmVtLWNhbGMoMTcpO1xuJHNjcm9sbC1iYXItd2lkdGgtaWU6IHJlbS1jYWxjKDE3KTtcblxuLypcbiAgZm9udCBzaXplc1xuICovXG4kaWNvbi1mb250LXNpemUtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiAzICFkZWZhdWx0OyAvLyAxMnB4XG4kaWNvbi1mb250LXNpemUtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogNCAhZGVmYXVsdDsgLy8gMTZweFxuJGljb24tZm9udC1zaXplLXJlZ3VsYXI6ICRzbWFsbC1zcXVhcmUgKiA1ICFkZWZhdWx0OyAvLyAyMHB4XG4kaWNvbi1mb250LXNpemUtbGFyZ2U6ICRzbWFsbC1zcXVhcmUgKiA2OyAvLyAyNHB4XG4kaWNvbi1mb250LXNpemUteC1sYXJnZTogJHNtYWxsLXNxdWFyZSAqIDc7IC8vIDI4cHhcbiRpY29uLWZvbnQtc2l6ZS1wbGFjZWhvbGRlcjogJGxhcmdlLXNxdWFyZSAqIDc7XG4kZm9udC1zaXplOiAkaWNvbi1mb250LXNpemUtbWVkaXVtICFkZWZhdWx0OyAvLyAxM3B4XG4kZm9udC1zaXplLW1lZGl1bTogJGljb24tZm9udC1zaXplLW1lZGl1bTsgLy8xNnB4XG4kZm9udC1zaXplLWxhcmdlOiAkaWNvbi1mb250LXNpemUtcmVndWxhcjtcbiRmb250LXNpemUteC1sYXJnZTogJGljb24tZm9udC1zaXplLXgtbGFyZ2U7XG4kZm9udC1zaXplLWhlYWRlcjogMTRweDtcblxuXG4kZm9udC13ZWlnaHQtbGlnaHQ6IDMwMDsgLy8gU291cmNlIFNhbnMgUHJvIExpZ2h0XG4kZm9udC13ZWlnaHQtcmVndWxhcjogNDAwOyAvLyBTb3VyY2UgU2FucyBQcm8gTGlnaHRcbiRmb250LXdlaWdodC1zZW1pLWJvbGQ6IDYwMDsgLy8gU291cmNlIFNhbnMgUHJvIFNlbWkgQm9sZFxuJGZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDsgLy8gU291cmNlIFNhbnMgUHJvIEJvbGRcblxuXG5cbi8qXG4gKiBIZWFkZXIgc2l6ZVxuICovXG5cbiRoZWFkZXItaGVpZ2h0OiByZW0tY2FsYyg1MikgIWRlZmF1bHQ7XG4kaGVhZGVyLXRleHQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogOCAhZGVmYXVsdDsgLy8zMnB4XG4kc3ViLW5hdi1oZWlnaHQ6IDByZW0gIWRlZmF1bHQ7IC8vIDBweFxuJHNlYXJjaC1iYXItaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTUgIWRlZmF1bHQ7XG4vLyRwYWdpbmF0aW9uLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDI1ICFkZWZhdWx0O1xuJGNoYXJ0cy1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3NCAhZGVmYXVsdDtcbiRtYWluLWhlYWRlci1oZWlnaHQ6ICRoZWFkZXItaGVpZ2h0KyRzdWItbmF2LWhlaWdodCAhZGVmYXVsdDtcbiR2aXJ0dWFsLWdyb3VwLWluZGljYXRvci1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3O1xuJGhlYWRlci1zaWRlLW1hcmdpbjogcmVtLWNhbGMoMjQpO1xuXG4vKlxuICogRGV2aWNlIEdyb3VwIHNldHRpbmdzXG4gKi9cblxuJGRldmljZS1ncm91cC1wYWRkaW5nLWxlZnQ6ICRzbWFsbC1zcXVhcmUgKiA2O1xuJGRldmljZS1ncm91cC1pdGVtcy1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA5O1xuJGRldmljZS1ncm91cC13aWR0aDogJGxhcmdlLXNxdWFyZSAqIDI4O1xuJGRldmljZS1ncm91cC1taW4td2lkdGg6ICRzbWFsbC1zcXVhcmUgKiA1NTtcbiRkZXZpY2UtZ3JvdXAtbWF4LXdpZHRoOiAkc21hbGwtc3F1YXJlICogMTQwO1xuJGRldmljZS1ncm91cC1tYXJnaW4tdG9wOiAkc2VhcmNoLWJhci1oZWlnaHQ7XG4kZGV2aWNlLWdyb3VwLWJ1dHRvbi13aWR0aDogJGxhcmdlLXNxdWFyZSAqIDIxO1xuJGRldmljZS1ncm91cC1idXR0b24taGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTE7XG4kZGV2aWNlLWdyb3VwLWJ1dHRvbi1ib3JkZXI6IDFweCBzb2xpZCBocmEtY29sb3IoJGdyZXksIDIwKTtcblxuLypcbiAqIEJvcmRlciBzZXR0aW5nc1xuICovXG5cbiRib3JkZXItYmFzZTogMXB4IHNvbGlkIHJnYigyMDQsIDIwNCwgMjA0KTtcbiRib3JkZXItcmFkaXVzLXNtYWxsOiAzcHg7XG4kYm9yZGVyLXJhZGl1cy1iYXNlOiA0cHg7XG4kYm9yZGVyLXJhZGl1cy1sYXJnZTogNnB4O1xuXG4vKlxuICogU2hhZG93cyBnbyBieSBsZXZlbFxuICovXG5cbiRzaGFkb3c6IDAgM3B4IDlweCByZ2JhKDAsIDAsIDAsIC41KTtcbiRzaGFkb3ctMTogMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiRzaGFkb3ctc21hbGw6IDAgMXB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xuJHNoYWRvdy1oZWFkZXI6IDBweCAxcHggMTNweCAycHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1zZWFyY2gtaGVhZGVyOiA4cHggMXB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctbGlnaHQ6IDFweCAxcHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiRzaGFkb3ctbGlnaHQtYm90dG9tLW9ubHk6IDBweCAxcHggOHB4IHJnYmEoJGJsYWNrLCAwLjEzKTtcbiRzaGFkb3ctYWJvdmU6IDAgLTFweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWFib3ZlLWxlZnQ6IC02cHggMHB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctYmVsb3c6IDBweCA5cHggOHB4IC01cHggcmdiYSgxNTgsIDE1OCwgMTU4LCAwLjI1KTtcbiRzaGFkb3ctZHJvcGRvd246IDAgMXB4IDEzcHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1kaWFsb2c6IDAgOHB4IDIwcHggNnB4IHJnYmEoJGJsYWNrLCAwLjYpO1xuJHNoYWRvdy1kaWFsb2ctc3VmZml4OiAwcHggMTZweCAyMHB4IDNweCByZ2JhKCRibGFjaywgMC42KTtcbiRzaGFkb3ctbGF5b3V0OiA2cHggMHB4IDlweCAwcHggcmdiYSgkYmxhY2ssIDAuMik7XG4kc2hhZG93LXNhdmVkLXNlYXJjaGVzOiA0cHggNHB4IDhweCAtMnB4IHJnYmEoNjcsNzAsNzQsLjEzKTtcbiRzaGFkb3ctY2hhcnQtY2FyZDogMCA2cHggMTZweCByZ2JhKDIwLDMwLDM3LDAuMDgpO1xuJHNoYWRvdy1jb25maWctY2FyZDogMCAwIDI0cHggMCByZ2JhKDIwLDMwLDM3LDAuMSk7XG5cbi8qXG4gKiBQYWRkaW5nIHNldHRpbmdzXG4gKi9cblxuJGJvZHktcGFkZGluZzogJGxhcmdlLXNxdWFyZSAqIDI7XG4kcGFkZGluZy1zbWFsbDogJGxhcmdlLXNxdWFyZTtcbiRiYXNlLXBhZGRpbmc6ICRzbWFsbC1zcXVhcmUgKiA0OyAvLyAxNnB4XG4kaGFsZi1iYXNlLXBhZGRpbmc6ICRiYXNlLXBhZGRpbmcgLyAyO1xuJG1vZGFsLXBhZGRpbmc6ICRiYXNlLXBhZGRpbmc7XG4kbGF5b3V0LXBhZGRpbmc6ICgkYmFzZS1wYWRkaW5nICogMikgKCRib2R5LXBhZGRpbmcgKiAyKSAoJGJhc2UtcGFkZGluZyAqIDIpICgkYm9keS1wYWRkaW5nICogMik7XG4kcGFkZGluZy1iYXNlLXZlcnRpY2FsOiA2cHg7XG4kcGFkZGluZy1iYXNlLWhvcml6b250YWw6ICRzbWFsbC1zcXVhcmUgKiAzO1xuJHBhZGRpbmctbGFyZ2UtdmVydGljYWw6IDEwcHg7XG4kcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsOiAgJHNtYWxsLXNxdWFyZSAqIDQ7XG4kcGFkZGluZy1tZWRpdW0tdmVydGljYWw6IDE0cHg7XG4kcGFkZGluZy1zbWFsbC12ZXJ0aWNhbDogNXB4O1xuJHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDogMTBweDtcblxuLypcbiAqIElucHV0c1xuICovXG4kaW5wdXQtcGFkZGluZzogJHNtYWxsLXNxdWFyZSAkc21hbGwtc3F1YXJlICogMjtcbiRpbnB1dC1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA4O1xuXG4vKlxuICogVG9vbFRpcHNcbiAqL1xuXG4vLyBUb29sdGlwc1xuJHRvb2x0aXAtbWF4LXdpZHRoOiAyNTBweCAhZGVmYXVsdDtcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KSAhZGVmYXVsdDtcbiR0b29sdGlwLXRleHQtY29sb3I6ICNmZmYgIWRlZmF1bHQ7XG4kdG9vbHRpcC1kZWxheTogMC40cyAhZGVmYXVsdDtcbiR0b29sdGlwLWR1cmF0aW9uOiAwLjFzICFkZWZhdWx0O1xuXG4vKlxuICogQWN0aW9uIGJhciBzaXplc1xuICovXG5cbiRkZXZpY2UtYWN0aW9uLWJhci1oZWlnaHQ6ICRsYXJnZS1zcXVhcmUgKiA1O1xuJGNvdW50LWNvbnRhaW5lci1wYWRkaW5nOiAoJGxhcmdlLXNxdWFyZSAqIDIpICgkc21hbGwtc3F1YXJlICogNCkgKCRsYXJnZS1zcXVhcmUgKiAyKSAoJHNtYWxsLXNxdWFyZSAqIDQpO1xuXG4vKipcbiogIERldmljZSBncmlkIHNpemVzXG4qL1xuXG4kcm93LWFib3ZlLWdyaWQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTQ7XG4kY2hlY2stY2VsbC1wYWRkaW5nOiAwIDAgMCAkc21hbGwtc3F1YXJlKjI7XG4kZGV2aWNlLWdyaWQtbWluLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDcxO1xuXG4vKlxuICogRm9jdXMgYm9yZGVyXG4gKi9cblxuJGhyYS1mb2N1cy1vdXRsaW5lOiAycHggc29saWQgaHJhLWNvbG9yKCRjeWFuKTtcblxuLypcbiAqIEJvcmRlclxuICovXG5cbiRocmEtYm9yZGVyOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCAyMCk7XG4kaHJhLWJvcmRlci1lcnJvcjogMXB4IHNvbGlkIGhyYS1jb2xvcigkcmVkKTtcbiRocmEtYm9yZGVyLWlucHV0LWRpc2FibGVkOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCA0MCk7XG5cblxuLypcbiAqIFBvcC11cFxuKi9cbiRocmEtcG9wdXAtYmVhay1zaXplOiAkc21hbGwtc3F1YXJlKjM7XG4kaHJhLXBvcHVwLWJlYWstYm90dG9tLWNlbnRlcjogY2FsYyg1MCUgLSAoMS4yNXJlbSAvIDIpKTtcbiRwb3AtdXAtZm9vdGVyLWhlaWdodDogJGxhcmdlLXNxdWFyZSAqIDU7XG4kcG9wLXVwLXRpdGxlLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDEzO1xuJHBvcC11cC10aXRsZS1tYWpvci1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxNDtcbi8vIHN0eWxlZ3VpZGU6aWdub3JlOmVuZFxuXG4vKlxuKiBTdGF0dXMgTm90aWZpY2F0aW9uXG4qL1xuJGhyYS1zdGF0dXMtbm90aWZpY2F0aW9uLXdpZHRoOiAkc21hbGwtc3F1YXJlICogODM7XG4kaHJhLXN0YXR1cy1ub3RpZmljYXRpb24tdG9wOiAkc21hbGwtc3F1YXJlICogMTQ7XG4kaHJhLXN0YXR1cy1ub3RpZmljYXRpb24tYm90dG9tOiAkc21hbGwtc3F1YXJlICogMTU7XG5cblxuLypcbiAgUm91bmQgYnV0dG9uIHNpemVzXG4gKi9cbiAkcm91bmQtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiA3O1xuICRyb3VuZC1tZWRpdW06ICRzbWFsbC1zcXVhcmUgKiA4O1xuICRyb3VuZC1sYXJnZTogJHNtYWxsLXNxdWFyZSAqIDk7XG5cbi8qXG4gKiBJbWFnZSBJY29uIFNpemVzXG4gKi9cblxuJGltZy1pY29uLXNpemUtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiA4O1xuJGltZy1pY29uLXNpemUtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogMTA7XG5cblxuJGJlemllcjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcblxuXG4vKiogTW9kYWwgc2l6ZXMgKiovXG4kbW9kYWwtdGl0bGUtaGVpZ2h0OiByZW0tY2FsYyg1Mik7XG4kbW9kYWwtZm9vdGVyLWhlaWdodDogcmVtLWNhbGMoNjApO1xuIiwiQGltcG9ydCAnLi4vLi4vc3R5bGVzL2Jhc2Uvc2V0dGluZ3MnO1xuXG46aG9zdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0O1xuICBjb2xvcjogaHJhLWNvbG9yKCRncmV5LCA0MCk7XG4gIGJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCAyMCk7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWxhcmdlO1xufVxuXG46aG9zdChbZGlzYWJsZWRdKSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBocmEtY29sb3IoJGdyZXksIDEwKTtcbn1cblxuOmhvc3QoLm5nLXByaXN0aW5lLCAubmctdmFsaWQpIHtcbiAgaW5wdXQ6YWN0aXZlLFxuICBpbnB1dDpmb2N1cyB7XG4gICAgY29sb3I6ICRibGFjaztcbiAgICBib3JkZXItY29sb3I6IGhyYS1jb2xvcigkZ3JleSk7XG4gICAgJiArIGxhYmVsIHtcbiAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICBib3JkZXItY29sb3I6IGhyYS1jb2xvcigkZ3JleSk7XG4gICAgfVxuICB9XG59XG5cbmxhYmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGFyZ2U7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWxhcmdlO1xuICBib3JkZXItdG9wOiAxcHggc29saWQ7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGN1cnNvcjogdGV4dDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5pIHtcbiAgcGFkZGluZy1sZWZ0OiAkc21hbGwtc3F1YXJlICogNDtcbiAgcGFkZGluZy1yaWdodDogJGxhcmdlLXNxdWFyZTtcbiAgZm9udC1zaXplOiAkc21hbGwtc3F1YXJlICogNDtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9yZGVyOiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICAmOmJlZm9yZSB7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICB9XG59XG5cbmlucHV0IHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWxhcmdlO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGFyZ2U7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZsZXg6IDE7XG4gIG9yZGVyOiAyO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59Il19 */\"","import {\n AfterViewInit,\n Component,\n ElementRef,\n forwardRef,\n HostListener,\n Input,\n Renderer2,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n // tslint:disable-next-line: component-selector\n selector: 'input-icon',\n templateUrl: './input-icon.ctrl.html',\n styleUrls: ['./input-icon.ctrl.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputIconControl),\n multi: true\n }\n ]\n})\n// tslint:disable-next-line: component-class-suffix\nexport class InputIconControl implements ControlValueAccessor, AfterViewInit {\n @Input()\n public icon = '';\n\n @Input()\n public type = 'text';\n\n @Input()\n public placeholder = '';\n\n @Input()\n public autocomplete = 'on';\n\n // tslint:disable-next-line: no-input-rename\n @Input('auto-focus')\n public autoFocus = false;\n\n public get value(): string {\n return this._value;\n }\n\n public set value(value: string) {\n this._value = value;\n this._propagateChange(this._value);\n }\n\n private _value = '';\n\n @ViewChild('input', {static: false})\n private _input: ElementRef;\n\n constructor(private _renderer: Renderer2, private _el: ElementRef) {}\n\n public ngAfterViewInit(): void {\n if (this.autoFocus) {\n setTimeout(() => {\n this._input.nativeElement.focus();\n }, 100);\n }\n }\n\n /**\n * Handles whenever the element is clicked. Used for testing\n *\n *\n * @memberOf InputIconControl\n */\n @HostListener('click', ['$event'])\n public handleClick(): void {\n this._input.nativeElement.focus();\n }\n\n // tslint:disable-next-line\n public writeValue(obj: any): void {\n this.value = obj;\n }\n\n // tslint:disable-next-line\n public registerOnChange(fn: any): void {\n this._propagateChange = fn;\n }\n\n // tslint:disable-next-line\n public registerOnTouched(fn: any): void {}\n\n public setDisabledState(isDisabled: boolean): void {\n this._renderer.setAttribute(this._el.nativeElement, 'disabled', isDisabled ? 'disabled' : '');\n this._renderer.setProperty(this._input.nativeElement, 'disabled', isDisabled);\n // disable other components here\n }\n\n private _propagateChange: Function = () => {};\n}\n","import { NgModule } from '@angular/core';\nimport { InputIconControl } from './input-icon.ctrl';\nimport { FormsModule } from '@angular/forms';\n@NgModule({\n imports: [\n FormsModule\n ],\n declarations: [\n InputIconControl\n ],\n exports: [\n InputIconControl\n ]\n})\nexport class SharedInputIconModule { }\n","export default \"/*\\nHigh DPI screens (retina macbooks, highresolution laptops, etc)\\n*/\\n/* Firefox specific styles go here */\\n/*\\nCOMMON COLOR NAMES\\n\\nThese colors are mapped to the names from the official colors.\\nInstead of having names like `crush` or `blaze`, developers will use their common, non-marketized name.\\neg. $red: crush\\n $orange: blaze\\n\\nThen, use the `hra-color` function to get the color\\neg. color: hra-color($red)\\n*/\\n/* **** */\\n/* * Charts Colors */\\n/* info text background */\\n/* Use following classes for aesthetics only - New UI KIT */\\n/* Color Mapping*/\\n/*ends*/\\n/* Used for grids and margins */\\n/*\\n font sizes\\n */\\n/*\\n * Header size\\n */\\n/*\\n * Device Group settings\\n */\\n/*\\n * Border settings\\n */\\n/*\\n * Shadows go by level\\n */\\n/*\\n * Padding settings\\n */\\n/*\\n * Inputs\\n */\\n/*\\n * ToolTips\\n */\\n/*\\n * Action bar sizes\\n */\\n/**\\n* Device grid sizes\\n*/\\n/*\\n * Focus border\\n */\\n/*\\n * Border\\n */\\n/*\\n * Pop-up\\n*/\\n/*\\n* Status Notification\\n*/\\n/*\\n Round button sizes\\n */\\n/*\\n * Image Icon Sizes\\n */\\n/** Modal sizes **/\\n:host([light]) {\\n color: white; }\\n:host([black]) .copyright {\\n color: #141e25; }\\n:host([center]) {\\n text-align: center; }\\n.links {\\n font-weight: 600;\\n text-transform: uppercase;\\n margin-bottom: 0.5rem; }\\n.links a {\\n margin-right: 0.5rem;\\n text-decoration: none;\\n cursor: pointer; }\\n.links a:hover {\\n text-decoration: underline; }\\n.copyright {\\n font-weight: 600;\\n color: #141e25; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21lZGlhcXVlcmllcy5zY3NzIiwic3JjL2FwcC9zaGFyZWQvY29udHJvbHMvbGF5b3V0L2NvcHktcmlnaHQvY29weXJpZ2h0LmN0cmwuc2NzcyIsIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21peGlucy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9zdHlsZXMvYmFzZS9fY29sb3JzLnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvc2hhcmVkL3N0eWxlcy9iYXNlL19zZXR0aW5ncy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9jb250cm9scy9sYXlvdXQvY29weS1yaWdodC9jb3B5cmlnaHQuY3RybC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThCQTs7Q0M1QkM7QUMwS0Qsb0NBQUE7QUM1S0E7Ozs7Ozs7Ozs7Q0ZjQztBRStERCxTQUFBO0FBVUEsb0JBQUE7QUFLQSx5QkFBQTtBQUlBLDJEQUFBO0FBRUEsaUJBQUE7QUFvQkEsT0FBQTtBQ25IQSwrQkFBQTtBQWlCQTs7RUhJRTtBR21CRjs7RUhoQkU7QUc4QkY7O0VIM0JFO0FHeUNGOztFSHRDRTtBRytDRjs7RUg1Q0U7QUdrRUY7O0VIL0RFO0FHaUZGOztFSDlFRTtBR29GRjs7RUhqRkU7QUc0RkY7O0VIekZFO0FHZ0dGOztDSDdGQztBR3FHRDs7RUhsR0U7QUd3R0Y7O0VIckdFO0FHOEdGOztDSDNHQztBR3FIRDs7Q0hsSEM7QUcwSEQ7O0VIdkhFO0FHOEhGOztFSDNIRTtBR3NJRixrQkFBQTtBQ3pNQTtFQUNFLFlGcUV3QixFQUFBO0FFbEUxQjtFQUVJLGNGK0I4RyxFQUFBO0FFMUJsSDtFQUNDLGtCQUFrQixFQUFBO0FBR25CO0VBQ0UsZ0JEb0J5QjtFQ25CekIseUJBQXlCO0VBU3pCLHFCQUFnQyxFQUFBO0FBWGxDO0lBSUksb0JBQStCO0lBQy9CLHFCQUFxQjtJQUNyQixlQUFlLEVBQUE7QUFObkI7TUFRTSwwQkFBMEIsRUFBQTtBQU1oQztFQUNFLGdCRE15QjtFQ0x6QixjRk1nSCxFQUFBIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL2NvbnRyb2xzL2xheW91dC9jb3B5LXJpZ2h0L2NvcHlyaWdodC5jdHJsLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAgQXV0aG9yOiBSYWZhbCBCcm9taXJza2lcbi8vICB3d3c6IGh0dHA6Ly9yYWZhbGJyb21pcnNraS5jb20vXG4vLyAgZ2l0aHViOiBodHRwOi8vZ2l0aHViLmNvbS9wYXJhbm9pZGEvc2Fzcy1tZWRpYXF1ZXJpZXNcbi8vXG4vLyAgTGljZW5zZWQgdW5kZXIgYSBNSVQgTGljZW5zZVxuLy9cbi8vICBWZXJzaW9uOlxuLy8gIDEuNi4xXG4vLyAtLS0gZ2VuZXJhdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIG1xKCRhcmdzLi4uKSB7XG4gICRtZWRpYS10eXBlOiAnb25seSBzY3JlZW4nO1xuICAkbWVkaWEtdHlwZS1rZXk6ICdtZWRpYS10eXBlJztcbiAgJGFyZ3M6IGtleXdvcmRzKCRhcmdzKTtcbiAgJGV4cHI6ICcnO1xuICBAaWYgbWFwLWhhcy1rZXkoJGFyZ3MsICRtZWRpYS10eXBlLWtleSkge1xuICAgICRtZWRpYS10eXBlOiBtYXAtZ2V0KCRhcmdzLCAkbWVkaWEtdHlwZS1rZXkpO1xuICAgICRhcmdzOiBtYXAtcmVtb3ZlKCRhcmdzLCAkbWVkaWEtdHlwZS1rZXkpO1xuICB9XG4gIEBlYWNoICRrZXksXG4gICR2YWx1ZSBpbiAkYXJncyB7XG4gICAgQGlmICR2YWx1ZSB7XG4gICAgICAkZXhwcjogXCIjeyRleHByfSBhbmQgKCN7JGtleX06ICN7JHZhbHVlfSlcIjtcbiAgICB9XG4gIH1cbiAgQG1lZGlhICN7JG1lZGlhLXR5cGV9ICN7JGV4cHJ9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5cbi8qXG5IaWdoIERQSSBzY3JlZW5zIChyZXRpbmEgbWFjYm9va3MsIGhpZ2hyZXNvbHV0aW9uIGxhcHRvcHMsIGV0YylcbiovXG5cbkBtaXhpbiBoZHBpKCRyYXRpbzogMS4zKSB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSwgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogI3tyb3VuZCgkcmF0aW8qOTYpfWRwaSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vICRvcmllbnRhdGlvbjogbGFuZHNjYXBlIHwgcG9ydHJhaXRcbkBtaXhpbiB0YWJsZXQoJG9yaWVudGF0aW9uOiBmYWxzZSkge1xuICAkbWluOiAyNjhweDtcbiAgJG1heDogMTAyNHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCwgJG9yaWVudGF0aW9uOiAkb3JpZW50YXRpb24pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBzbWFsbCBkZXNrdG9wIC0gMTAyNSA8LT4gMTI4MFxuQG1peGluIHNtYWxsLWRlc2t0b3AoKSB7XG4gICRtaW46IDEwMjVweDtcbiAgJG1heDogMTI4MHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIG1lZGl1bSBkZXNrdG9wIC0gMTI4MSA8LT4gMTQ0MFxuQG1peGluIG1lZGl1bS1kZXNrdG9wKCkge1xuICAkbWluOiAxMjgxcHg7XG4gICRtYXg6IDE0NDBweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBsYXJnZSBkZXNrdG9wIC0gMTQ0MSA8LT4gMTYwMFxuQG1peGluIGxhcmdlLWRlc2t0b3AoKSB7XG4gICRtaW46IDE0NDFweDtcbiAgJG1heDogMTYwMHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIHhsYXJnZSBkZXNrdG9wIC0gMTYwMSAtPiBpbmZpbml0eVxuQG1peGluIHhsYXJnZS1kZXNrdG9wKCkge1xuICAkbWluOiAxNjAxcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gZGVza3RvcCBvdmVybGF5XG5AbWl4aW4gZGVza3RvcC1vdmVybGF5KCkge1xuICAgICRtaW46IDI2OHB4O1xuICAgICRtYXg6IDkyNnB4O1xuICAgIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cbiIsIi8qXG5IaWdoIERQSSBzY3JlZW5zIChyZXRpbmEgbWFjYm9va3MsIGhpZ2hyZXNvbHV0aW9uIGxhcHRvcHMsIGV0YylcbiovXG4vKiBGaXJlZm94IHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG4vKlxuQ09NTU9OIENPTE9SIE5BTUVTXG5cblRoZXNlIGNvbG9ycyBhcmUgbWFwcGVkIHRvIHRoZSBuYW1lcyBmcm9tIHRoZSBvZmZpY2lhbCBjb2xvcnMuXG5JbnN0ZWFkIG9mIGhhdmluZyBuYW1lcyBsaWtlIGBjcnVzaGAgb3IgYGJsYXplYCwgZGV2ZWxvcGVycyB3aWxsIHVzZSB0aGVpciBjb21tb24sIG5vbi1tYXJrZXRpemVkIG5hbWUuXG5lZy4gJHJlZDogY3J1c2hcbiAgICAkb3JhbmdlOiBibGF6ZVxuXG5UaGVuLCB1c2UgdGhlIGBocmEtY29sb3JgIGZ1bmN0aW9uIHRvIGdldCB0aGUgY29sb3JcbmVnLiBjb2xvcjogaHJhLWNvbG9yKCRyZWQpXG4qL1xuLyogKioqKiAqL1xuLyogKiBDaGFydHMgQ29sb3JzICovXG4vKiBpbmZvIHRleHQgYmFja2dyb3VuZCAqL1xuLyogVXNlIGZvbGxvd2luZyBjbGFzc2VzIGZvciBhZXN0aGV0aWNzIG9ubHkgLSBOZXcgVUkgS0lUICovXG4vKiBDb2xvciBNYXBwaW5nKi9cbi8qZW5kcyovXG4vKiBVc2VkIGZvciBncmlkcyBhbmQgbWFyZ2lucyAqL1xuLypcbiAgZm9udCBzaXplc1xuICovXG4vKlxuICogSGVhZGVyIHNpemVcbiAqL1xuLypcbiAqIERldmljZSBHcm91cCBzZXR0aW5nc1xuICovXG4vKlxuICogQm9yZGVyIHNldHRpbmdzXG4gKi9cbi8qXG4gKiBTaGFkb3dzIGdvIGJ5IGxldmVsXG4gKi9cbi8qXG4gKiBQYWRkaW5nIHNldHRpbmdzXG4gKi9cbi8qXG4gKiBJbnB1dHNcbiAqL1xuLypcbiAqIFRvb2xUaXBzXG4gKi9cbi8qXG4gKiBBY3Rpb24gYmFyIHNpemVzXG4gKi9cbi8qKlxuKiAgRGV2aWNlIGdyaWQgc2l6ZXNcbiovXG4vKlxuICogRm9jdXMgYm9yZGVyXG4gKi9cbi8qXG4gKiBCb3JkZXJcbiAqL1xuLypcbiAqIFBvcC11cFxuKi9cbi8qXG4qIFN0YXR1cyBOb3RpZmljYXRpb25cbiovXG4vKlxuICBSb3VuZCBidXR0b24gc2l6ZXNcbiAqL1xuLypcbiAqIEltYWdlIEljb24gU2l6ZXNcbiAqL1xuLyoqIE1vZGFsIHNpemVzICoqL1xuOmhvc3QoW2xpZ2h0XSkge1xuICBjb2xvcjogd2hpdGU7IH1cblxuOmhvc3QoW2JsYWNrXSkgLmNvcHlyaWdodCB7XG4gIGNvbG9yOiAjMTQxZTI1OyB9XG5cbjpob3N0KFtjZW50ZXJdKSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ubGlua3Mge1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cbiAgLmxpbmtzIGEge1xuICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAubGlua3MgYTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4uY29weXJpZ2h0IHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICMxNDFlMjU7IH1cbiIsIkBpbXBvcnQgJy4vbWVkaWFxdWVyaWVzJztcblxuLy8vIC8gc3R5bGVndWlkZTppZ25vcmU6c3RhcnRcbi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcbi8vLyBSZW1vdmVzIHRoZSB1bml0IChlLmcuIHB4LCBlbSwgcmVtKSBmcm9tIGEgdmFsdWUsIHJldHVybmluZyB0aGUgbnVtYmVyIG9ubHkuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgc2FtZSBudW1iZXIsIHNhbnMgdW5pdC5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG5cbi8vLyBDb252ZXJ0cyBvbmUgb3IgbW9yZSBwaXhlbCB2YWx1ZXMgaW50byBtYXRjaGluZyByZW0gdmFsdWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gVGhlIGJhc2UgdmFsdWUgdG8gdXNlIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGByZW1gLiBJZiB5b3UncmUgdXNpbmcgRm91bmRhdGlvbiBvdXQgb2YgdGhlIGJveCwgdGhpcyBpcyAxNnB4LiBJZiB0aGlzIHBhcmFtZXRlciBpcyBgbnVsbGAsIHRoZSBmdW5jdGlvbiB3aWxsIHJlZmVyZW5jZSB0aGUgYCRiYXNlLWZvbnQtc2l6ZWAgdmFyaWFibGUgYXMgdGhlIGJhc2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gQSBsaXN0IG9mIGNvbnZlcnRlZCB2YWx1ZXMuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2U6IG51bGwpIHtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2U9PW51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgLy8gVGhpcyBpcyBiZWNhdXNlIDEwMCUgZm9udCBzaXplID0gMTZweCBpbiBtb3N0IGFsbCBicm93c2Vyc1xuICBAaWYgdW5pdCgkYmFzZSk9PSclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuICBAaWYgJGNvdW50PT0xIHtcbiAgICBAcmV0dXJuIC16Zi10by1yZW0oJHZhbHVlcywgJGJhc2UpO1xuICB9XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cbiAgQHJldHVybiAkcmVtLXZhbHVlcztcbn1cblxuLy8gQ29udmVydHMgYSB1bml0bGVzcywgcGl4ZWwsIG9yIHJlbSB2YWx1ZSB0byBlbSwgZm9yIHVzZSBpbiBicmVha3BvaW50cy5cbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XG4gIC8vIFBpeGVsIGFuZCB1bml0bGVzcyB2YWx1ZXMgYXJlIGNvbnZlcnRlZCB0byByZW1zXG4gIEBpZiB1bml0KCR2YWx1ZSk9PSdweCcgb3IgdW5pdGxlc3MoJHZhbHVlKSB7XG4gICAgJHZhbHVlOiByZW0tY2FsYygkdmFsdWUsICRiYXNlOiAxNnB4KTtcbiAgfVxuICAvLyBUaGVuIHRoZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gZW1zXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBCYXNlIGZvciBwaXhlbCBjb252ZXJzaW9uLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cbkBmdW5jdGlvbiAtemYtdG8tcmVtKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0nbnVtYmVyJyB7XG4gICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpKycgd2FzIHBhc3NlZCB0byByZW0tY2FsYygpLCB3aGljaCBpcyBub3QgYSBudW1iZXIuJztcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9J3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSkgKiAxcmVtO1xuICB9XG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZT09MHJlbSB7XG4gICAgJHZhbHVlOiAwO1xuICB9XG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vLy8gQW5pbWF0aW9uIGtleWZyYW1lcyBhdXRvcHJlZml4ZXJcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYW5pbWF0aW9uLW5hbWUgLSBOYW1lIG9mIHRoZSBhbmltYXRpb24uXG5AbWl4aW4ga2V5ZnJhbWVzKCRhbmltYXRpb24tbmFtZSkge1xuICBALXdlYmtpdC1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW1vei1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW1zLWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtby1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBAa2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIEFuaW1hdGlvbiBhdXRvcHJlZml4ZXJcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3RyIC0gY3NzMyBhbmltYXRpb24gc3BlYy5cbkBtaXhpbiBhbmltYXRpb24oJHN0cikge1xuICAtd2Via2l0LWFuaW1hdGlvbjogI3skc3RyfTtcbiAgLW1vei1hbmltYXRpb246ICN7JHN0cn07XG4gIC1tcy1hbmltYXRpb246ICN7JHN0cn07XG4gIC1vLWFuaW1hdGlvbjogI3skc3RyfTtcbiAgYW5pbWF0aW9uOiAjeyRzdHJ9O1xufVxuXG4vLy8gQm94IHNoYWRvdyBhdXRvcHJlZml4ZXJcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3RyIC0gY3NzMyBib3gtc2hhZG93IHNwZWMuXG5AbWl4aW4gYm94LXNoYWRvdygkc3RyKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogI3skc3RyfTtcbiAgLW1vei1ib3gtc2hhZG93OiAjeyRzdHJ9O1xuICAtby1ib3gtc2hhZG93OiAjeyRzdHJ9O1xuICBib3gtc2hhZG93OiAjeyRzdHJ9O1xufVxuXG4vLy8gZ3JhZGllbnQgYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBncmFkaWVudCgkY29sb3IxLCAkY29sb3IyKSB7XG4gIGJhY2tncm91bmQ6ICN7JGNvbG9yMX07XG4gIC8qIEZvciBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IGdyYWRpZW50cyAqL1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgjeyRjb2xvcjF9LCAjeyRjb2xvcjJ9KTtcbiAgLyogRm9yIFNhZmFyaSA1LjEgdG8gNi4wICovXG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCgjeyRjb2xvcjF9LCAjeyRjb2xvcjJ9KTtcbiAgLyogRm9yIE9wZXJhIDExLjEgdG8gMTIuMCAqL1xuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgjeyRjb2xvcjF9LCAjeyRjb2xvcjJ9KTtcbiAgLyogRm9yIEZpcmVmb3ggMy42IHRvIDE1ICovXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjeyRjb2xvcjF9LCAjeyRjb2xvcjJ9KTtcbiAgLyogU3RhbmRhcmQgc3ludGF4ICovXG59XG5cbkBtaXhpbiB2ZXJ0aWNhbC1ncmFkaWVudC1kaXZpZGVyKCl7XG4gIHdpZHRoOiAxcHg7XG4gIHBhZGRpbmctbGVmdDogMXB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCBocmEtY29sb3IoJGdyZXksIDIwKSwgJHdoaXRlKTtcbn1cblxuXG4vLy8gSUUgb25seSBxdWVyeVxuQG1peGluIGllLW9ubHkoKSB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSB7XG4gICAgLyogSUUxMCsgc3BlY2lmaWMgc3R5bGVzIGdvIGhlcmUgKi9cbiAgICBAY29udGVudFxuICB9XG59XG5cbkBtaXhpbiBjcmVhdGUtYW5pbWF0aW9uKCRhbmktbmFtZSkge1xuICBhbmltYXRpb246ICRhbmktbmFtZSBmb3J3YXJkcyAzMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuXG5AbWl4aW4gY3JlYXRlLXRyYW5zaXRpb24oJHByb3BlcnR5LW5hbWUpIHtcbiAgdHJhbnNpdGlvbjogJHByb3BlcnR5LW5hbWUgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cbi8vLyBFZGdlIG9ubHkgcXVlcnlcbkBtaXhpbiBlZGdlLW9ubHkoKSB7XG4gIEBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgIC8qIEVkZ2Ugc3BlY2lmaWMgc3R5bGVzIGdvIGhlcmUgKi9cbiAgICBAY29udGVudFxuICB9XG59XG5cbi8qIEZpcmVmb3ggc3BlY2lmaWMgc3R5bGVzIGdvIGhlcmUgKi9cbkBtaXhpbiBmaXJlZm94LW9ubHkoKSB7XG4gIEBzdXBwb3J0cyAoLW1vei1hcHBlYXJhbmNlOm5vbmUpIHtcbiAgICBAY29udGVudFxuICB9XG59XG5cblxuLy8gc3R5bGVndWlkZTppZ25vcmU6ZW5kIiwiLypcbkNPTU1PTiBDT0xPUiBOQU1FU1xuXG5UaGVzZSBjb2xvcnMgYXJlIG1hcHBlZCB0byB0aGUgbmFtZXMgZnJvbSB0aGUgb2ZmaWNpYWwgY29sb3JzLlxuSW5zdGVhZCBvZiBoYXZpbmcgbmFtZXMgbGlrZSBgY3J1c2hgIG9yIGBibGF6ZWAsIGRldmVsb3BlcnMgd2lsbCB1c2UgdGhlaXIgY29tbW9uLCBub24tbWFya2V0aXplZCBuYW1lLlxuZWcuICRyZWQ6IGNydXNoXG4gICAgJG9yYW5nZTogYmxhemVcblxuVGhlbiwgdXNlIHRoZSBgaHJhLWNvbG9yYCBmdW5jdGlvbiB0byBnZXQgdGhlIGNvbG9yXG5lZy4gY29sb3I6IGhyYS1jb2xvcigkcmVkKVxuKi9cblxuJHRoZW1lLWdyZWVuOiAjZGZkMjY5O1xuJHRoZW1lLWNvbG9yOiAkdGhlbWUtZ3JlZW47XG4kYmx1ZTogYmx1ZTtcbiRjeWFuOiBjeWFuO1xuJGdyZXk6IGdyZXk7XG4kcmVkOiBjcnVzaDtcbiRvcmFuZ2U6IGJsYXplO1xuJHllbGxvdzogc3Vuc2V0LCA2MDtcbiRncmVlbjogc2VhZm9hbTtcbiRsaWdodC1ncmVlbjogc2Vhd2VlZDtcbiRkYXJrLWdyZWVuOiBtYXJpbmU7XG4kYnJvd246IGJyb3duO1xuJHB1cnBsZTogcHVycGxlO1xuJHN1bnNldDogc3Vuc2V0O1xuJHBpbms6IHBpbms7XG5cbiRuZXdncmV5OiBuZXdncmV5O1xuJG5ld2JsdWU6IG5ld2JsdWU7XG4kbmV3Y3lhbjogbmV3Y3lhbjtcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIGhtYSdzIENvbG91ciBQYWxldHRlXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4kY29sb3JzOiAoXG4gICAgYmx1ZTogKDU6ICNmM2ZiZmUsIDEwOiAjZTJmNGZiLCAyMDogI2JhZTVmNSwgNDA6ICM3MWM4ZjEsIDYwOiAjMzJiNmU5LCA4MDogIzAwOTlkMywgMTAwOiAjMDA3NGFhLCAxMjA6ICMwNjRjN2MpLFxuICAgIGNydXNoOiAoNTogI2ZmZjdmNiwgMTA6ICNmZWYwZWQsIDIwOiAjZmRkZmRjLCA0MDogI2ZhYzFiYSwgNjA6ICNmNDgyNzIsIDgwOiAjZjE2MTRmLCAxMDA6ICNlMzI3MjIsIDExMDojYzEzZjJiLCAxMjA6ICNhNzFlMjIpLFxuICAgIGN5YW46ICg1OiAjZjJmOWY5LCAxMDogI2U2ZjRmNCwgMjA6ICNjY2VhZWEsIDQwOiAjOWFkN2Q2LCA2MDogIzY4YzVjNCwgODA6ICMzNmIxYjAsIDEwMDogIzAyOWY5ZCwgMTIwOiAjMDI2ZjZmKSxcbiAgICBibGF6ZTogKDU6ICNmZmY3ZjMsIDEwOiAjZmZmMWU5LCAyMDogI2ZjZTFkMywgNDA6ICNmY2M1YTcsIDYwOiAjZjdhNzdiLCA4MDogI2Y2ODk0ZCwgMTAwOiAjZjI2YjIxLCAxMjA6ICNiNzNlMjUpLFxuICAgIGdyZXk6ICg1OiAjZmFmYmZiLCAxMDogI2VjZWZmMCwgMjA6ICNlNGU3ZTksIDQwOiAjYThiMmI3LCA2MDogIzgyOGQ5MywgODA6ICM1QjY2NzAsIDEwMDogIzNkNDY0ZCwgMTIwOiAjMTQxZTI1KSxcbiAgICBzZWFmb2FtOiAoNTogI2VmZjlmOCwgMTA6ICNlNGY3ZjMsIDIwOiAjY2ZlZGU4LCA0MDogI2E1ZWFkYiwgNjA6ICM2MWQ2YjgsIDgwOiAjMmZkMmE4LCAxMDA6ICMxZWFkOGEsIDEyMDogIzBiNzA1ZCksXG4gICAgc2Vhd2VlZDogKDU6ICNmOGZiZjYsIDEwOiAjZjJmOGVkLCAyMDogI2UzZjBkOSwgNDA6ICNjYmU0YjUsIDYwOiAjYjBkNzhlLCA4MDogIzk1Y2I2YSwgMTAwOiAjN2FjMTQyLCAxMjA6ICM0OTkxNDIpLFxuICAgIG1hcmluZTogKDU6ICNmN2Y5ZjMsIDEwOiAjZjFmNGU4LCAyMDogI2U0ZWFkMiwgNDA6ICNjYmQ5YTcsIDYwOiAjYmZkYjg1LCA4MDogI2FlZDI1NSwgMTAwOiAjN2FhMTNlLCAxMjA6ICM0YzczMzYpLFxuICAgIHBlYmJsZTogKDU6ICNmYmZjZmMsIDEwOiAjZjVmNmY2LCAyMDogI2U5ZThlOSwgNDA6ICNkNWQ0ZDUsIDYwOiAjYWFhYWFiLCA4MDogIzdjN2M4MSwgMTAwOiAjNTQ1MzU1LCAxMjA6ICMyODI3MmIpLFxuICAgIHN1bnNldDogKDU6ICNmZmZkZWUsIDEwOiAjZmZmYmRiLCAyMDogI2ZkZjdiNCwgNDA6ICNmZmY1N2UsIDYwOiAjZmZmMTAwLCA4MDogI2ZiYWQxYywgMTAwOiAjZjQ3ZjFmLCAxMjA6ICNjOTU0MjgpLFxuICAgIGJyb3duOiAoNTogI2Y3ZjRmMiwgMTA6ICNlYWU0ZTEsIDIwOiAjZDhjZWNiLCA0MDogI2JhYWJhNSwgNjA6ICM5NjgzN2MsIDgwOiAjNzc1ZDUzLCAxMDA6ICM1OTM4MmMsIDEyMDogIzJmMTgwZCksXG4gICAgcHVycGxlOiAoNTogI2YyZWZmNywgMTA6ICNlOGRmZWYsIDIwOiAjZDdjOWUzLCA0MDogI2MxYWVkNSwgNjA6ICNhMDg1YmUsIDgwOiAjN2I2MWFhLCAxMDA6ICM2NjRmYTEsIDEyMDogIzQyMmU4NSksXG4gICAgcGluazogKDU6ICNmZWY0ZjgsIDEwOiAjZmNlN2VmLCAyMDogI2ZhZGFlMSwgNDA6ICNmNGEyYzIsIDYwOiAjZWQ3M2E0LCA4MDogI2U5NDU4NiwgMTAwOiAjZTMxNTY3LCAxMjA6ICNhYjFkNDEpLFxuXG4gICAgLy8gTmV3IFVJIEtpdCBjb2xvcnMgLSBuZXcgcHJlZml4IHdpbGwgYmUgcmVtb3ZlZCBvbmNlIHRoZSBtaWdyYXRpb24gaXMgY29tcGxldGVkXG4gICAgLy8gSXQgYWxzbyBtYWtlcyBzdXJlIHRoYXQgY29sb3IgdmFyaWFibGVzIGFyZSB1c2VkXG4gICAgbmV3Z3JleTogKDU6ICNmY2ZjZmMsIDEwOiAjZjdmN2Y3LCAyMDogI2YyZjJmMiwgNDA6ICNlOWU5ZTksIDUwOiAjYzdjN2M3LCA2MDogI2E5YTlhOSwgNzA6ICM4MDgwODAsIDgwOiAjNmI2YjZiLDEwMDogIzRiNGI0YiwxMjA6IzI5MjkyOSksXG4gICAgbmV3Ymx1ZTogKDU6ICNmMGY2ZmEsIDEwOiAjZTJlZWY1LCAyMDogI2I4ZDVlNywgNDA6ICM4ZWJiZDcsIDUwOiAjNjlhMWM3LCA1NTogIzRmOGZiZCwgNjU6ICMzODdlYjMsIDcwOiAjMmY3MmE4LCA4MDogIzI1NjI5NywgMTAwOiAjMWQ1Mjg1LCAxMjA6ICMxMDM3NjYpLFxuICAgIG5ld2N5YW46ICg1OiAjZjBmNmZhLCAxMDogI2UyZWVmNSwgMjA6ICNiOGQ1ZTcsIDQwOiAjOGViYmQ3LCA1MDogIzY5YTFjNywgNTU6ICM0ZjhmYmQsIDY1OiAjMzg3ZWIzLCAxMDA6ICMyZjcyYTgsIDEyMDogIzI1NjI5NywgMTQwOiAjMWQ1Mjg1LCAxNjA6ICMxMDM3NjYpLFxuKTtcblxuQGZ1bmN0aW9uIGhyYS1jb2xvcigkY29sb3IsICR2YWx1ZTogMTAwKSB7XG4gICAgJHNlbGVjdGVkQ29sb3I6ICRjb2xvcjtcblxuICAgIEBpZiAodHlwZS1vZigkY29sb3IpID09ICdsaXN0Jykge1xuICAgICAgICAkc2VsZWN0ZWRDb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICAgICAgICR2YWx1ZTogbnRoKCRjb2xvciwgMik7XG4gICAgfVxuXG4gICAgJGNvbG9yLW1hcDogbWFwLWdldCgkY29sb3JzLCAkc2VsZWN0ZWRDb2xvcik7XG4gICAgQGlmICgkY29sb3ItbWFwID09IG51bGwpIHtcbiAgICAgICAgQGVycm9yICRzZWxlY3RlZENvbG9yICsgJyBpcyBub3QgcGFydCBvZiB0aGUgY29sb3IgcGFsZXR0ZSc7XG4gICAgfVxuICAgIEByZXR1cm4gbWFwLWdldCgkY29sb3ItbWFwLCAkdmFsdWUpO1xufVxuXG4kYmxhY2s6IGhyYS1jb2xvcigkZ3JleSwgMTIwKTtcbiR3aGl0ZTogcmdiKDI1NSwgMjU1LCAyNTUpO1xuJGNvbG9yLWdyYXktdHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50aXplKGhyYS1jb2xvcigkZ3JleSksIDAuOCk7XG4kaG92ZXItY29sb3I6IGhyYS1jb2xvcigkZ3JleSwgMjApO1xuXG5cbi8qICoqKiogKi9cbiRzdWNjZXNzLWNvbG9yOiBocmEtY29sb3IoJGdyZWVuKTtcbiR3YXJuaW5nLWNvbG9yOiBocmEtY29sb3IoJHllbGxvdyk7XG4kYWxlcnQtY29sb3I6IGhyYS1jb2xvcigkcmVkKTtcbiRjb2xvci1pbnZhbGlkOiBocmEtY29sb3IoJHJlZCk7XG4kZGlzYWJsZWQtY29sb3I6IGhyYS1jb2xvcigkZ3JleSwgMTApO1xuJGRpc2FibGVkLWJvcmRlcjogaHJhLWNvbG9yKCRncmV5LCA0MCk7XG4kY29sb3ItaHJhLWFuY2hvcjogaHJhLWNvbG9yKCRibHVlKTtcbiRkaXNhYmxlZC1mb3JlLWNvbG9yOiBocmEtY29sb3IoJGdyZXksIDQwKTtcblxuLyogKiBDaGFydHMgQ29sb3JzICovXG4kc3RhY2tlZC10b29sdGlwLWNpcmNsZS1iZzogIzNmNDA0MjtcbiRjaGFydC10b29sdGlwLWNpcmNsZTogI2ZmODk0YztcbiRkb251dC1jb3VudDogI2ZmNmI1NztcblxuLyogaW5mbyB0ZXh0IGJhY2tncm91bmQgKi9cbiRpbmZvLWJhY2tncm91bmQ6ICNmZmZkZTY7XG5cblxuLyogVXNlIGZvbGxvd2luZyBjbGFzc2VzIGZvciBhZXN0aGV0aWNzIG9ubHkgLSBOZXcgVUkgS0lUICovXG4vLyBTdGFuZGFyZGlzZSB2YXJpYWJsZXMgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZiBkaXJlY3QgY29sb3JzXG4vKiBDb2xvciBNYXBwaW5nKi9cbiRwcmltYXJ5LWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCA3MCk7XG4kcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Ymx1ZSwgMTAwKTtcbiRwcmltYXJ5LXRleHQ6JHdoaXRlO1xuXG4kZGVsZXRlLWJhY2tncm91bmQ6IGhyYS1jb2xvcigkcmVkLCAxMTApO1xuXG4kc2Vjb25kYXJ5LXRleHQ6aHJhLWNvbG9yKCRuZXdibHVlLCA1NSk7XG4kc2Vjb25kYXJ5LWJhY2tncm91bmQ6JHdoaXRlO1xuJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Ymx1ZSwgNSk7XG4kc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdncmV5LCA1MCk7XG4kc2Vjb25kYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kOiRzZWNvbmRhcnktdGV4dDtcblxuJGZsYXQtY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgODApO1xuJGZsYXQtaG92ZXI6IGhyYS1jb2xvcigkbmV3Z3JleSwgMTAwKTtcbiRmbGF0LWRpc2FibGVkOiBocmEtY29sb3IoJG5ld2dyZXksIDcwKTtcblxuJGFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kOiBocmEtY29sb3IoJG5ld2JsdWUsIDgwKTtcbiRhY3Rpb24tZGlzYWJsZWQ6IGhyYS1jb2xvcigkbmV3Z3JleSwgNTUpO1xuJGFjdGlvbi1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Ymx1ZSwgNTApO1xuLyplbmRzKi9cblxuJGJ1dHRvbi1wcmltYXJ5LXRleHQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQtY29sb3I6JHByaW1hcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tcHJpbWFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kYnV0dG9uLWRlbGV0ZS1iYWNrZ3JvdW5kLWNvbG9yOiAkZGVsZXRlLWJhY2tncm91bmQ7XG4kYnV0dG9uLXByaW1hcnktZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG5cbi8vIFNlY29uZGFyeSBidXR0b25zIGFuZCBzZWNvbmRhcnkgYWN0aW9uIGJ1dHRvbnMgc2hhcmUgY29sb3JzIFxuJGJ1dHRvbi1zZWNvbmRhcnktYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG4kYnV0dG9uLXNlY29uZGFyeS10ZXh0LWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG4kYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLXNlY29uZGFyeS1ob3Zlci10ZXh0LWNvbG9yOiAkc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLXNlY29uZGFyeS1kaXNhYmxlZC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1zZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcblxuJGJ1dHRvbi1mbGF0LWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuJGJ1dHRvbi1mbGF0LWNvbG9yOiAkZmxhdC1jb2xvcjtcbiRidXR0b24tZmxhdC1ob3Zlci1jb2xvcjokZmxhdC1ob3ZlcjtcbiRidXR0b24tZmxhdC1kaXNhYmxlZC1jb2xvcjogJGZsYXQtZGlzYWJsZWQ7XG5cbiRidXR0b24tYWN0aW9uLWJhY2tncm91bmQtY29sb3I6ICRhY3Rpb24tYmFja2dyb3VuZDtcbiRidXR0b24tYWN0aW9uLXRleHQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tYWN0aW9uLWhvdmVyLWJhY2tncm91bmQtY29sb3I6ICRhY3Rpb24taG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tYWN0aW9uLWhvdmVyLXRleHQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tYWN0aW9uLWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRidXR0b24tYWN0aW9uLWRpc2FibGVkLXRleHQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tYWN0aW9uLWRlbGV0ZS1iYWNrZ3JvdW5kLWNvbG9yOiRkZWxldGUtYmFja2dyb3VuZDtcblxuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktZGlzYWJsZWQtY29sb3I6ICRhY3Rpb24tZGlzYWJsZWQ7XG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcblxuJHVuc2VsZWN0ZWQtY2hvaWNlLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kc2VsZWN0ZWQtY2hvaWNlLWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG5cbiRyYWRpby1sYWJlbC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJHRvZ2dsZS1vbi1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG4kdG9nZ2xlLW9mLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiR0b2dnbGUtaGVhZC1jb2xvcjogJHdoaXRlO1xuXG4kaW5wdXQtdGV4dC1sYWJlbC1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCAxMjApO1xuJGlucHV0LXRleHQtYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDQwKTtcbiRpbnB1dC10ZXh0LXBsYWNlaG9sZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDYwKTtcbiRpbnB1dC10ZXh0LWFjdGl2ZS1ib3JkZXItY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgODApO1xuJGlucHV0LXRleHQtYWN0aXZlLXRleHQtY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgMTIwKTtcbiRpbnB1dC10ZXh0LWVycm9yLWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRyZWQsIDExMCk7XG4kaW5wdXQtdGV4dC1kaXNhYmxlZC1ib3JkZXItY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgNTApO1xuJGlucHV0LXRleHQtZXJyb3ItbWVzc2FnZS1jb2xvcjogJGlucHV0LXRleHQtZXJyb3ItYm9yZGVyLWNvbG9yO1xuJGlucHV0LXRleHQtZGlzYWJsZWQtY29sb3I6ICRpbnB1dC10ZXh0LXBsYWNlaG9sZGVyLWNvbG9yO1xuJGlucHV0LXRleHQtbGFiZWwtZGlzYWJsZWQtY29sb3I6ICRpbnB1dC10ZXh0LWJvcmRlci1jb2xvcjtcbiRpbnB1dC10ZXh0LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRpbnB1dC10ZXh0LXBsYWNlaG9sZGVyLWNvbG9yOyIsIkBpbXBvcnQgJ21peGlucyc7XG5AaW1wb3J0ICdjb2xvcnMnO1xuXG4vKiBVc2VkIGZvciBncmlkcyBhbmQgbWFyZ2lucyAqL1xuXG4kc21hbGwtc2l6ZTogNCAhZGVmYXVsdDtcbiRsYXJnZS1zaXplOiAxMiAhZGVmYXVsdDtcbiRzbWFsbC1zcXVhcmU6IHJlbS1jYWxjKCRzbWFsbC1zaXplKSAhZGVmYXVsdDtcbiRsYXJnZS1zcXVhcmU6IHJlbS1jYWxjKCRsYXJnZS1zaXplKSAhZGVmYXVsdDtcbiR0cmFuc3BhcmVudC1ncmF5OiB0cmFuc3BhcmVudGl6ZShocmEtY29sb3IoJGdyZXksIDQwKSwgMC44KTtcbiR0cmFuc3BhcmVudC13aGl0ZTogdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpO1xuJGFuaW1hdGlvbi10aW1pbmc6IDAuMjVzO1xuJHJhZC1ncmFkOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCBjZW50ZXIsIHRyYW5zcGFyZW50aXplKGhyYS1jb2xvcigkZ3JleSksIDAuNSkgODAlLCB0cmFuc3BhcmVudGl6ZSgkYmxhY2ssIDAuNSkgMTAwJSk7XG4kbGluZWFyLWdyYWQ6IHJnYmEoJGJsYWNrLCAwLjcpO1xuXG4kc2Nyb2xsLWJhci13aWR0aDogJHNtYWxsLXNxdWFyZSAqIDI7XG4kc2Nyb2xsLWJhci13aWR0aC1maXJlZm94OiByZW0tY2FsYygxNyk7XG4kc2Nyb2xsLWJhci13aWR0aC1lZGdlOiByZW0tY2FsYygxNyk7XG4kc2Nyb2xsLWJhci13aWR0aC1pZTogcmVtLWNhbGMoMTcpO1xuXG4vKlxuICBmb250IHNpemVzXG4gKi9cbiRpY29uLWZvbnQtc2l6ZS1zbWFsbDogJHNtYWxsLXNxdWFyZSAqIDMgIWRlZmF1bHQ7IC8vIDEycHhcbiRpY29uLWZvbnQtc2l6ZS1tZWRpdW06ICRzbWFsbC1zcXVhcmUgKiA0ICFkZWZhdWx0OyAvLyAxNnB4XG4kaWNvbi1mb250LXNpemUtcmVndWxhcjogJHNtYWxsLXNxdWFyZSAqIDUgIWRlZmF1bHQ7IC8vIDIwcHhcbiRpY29uLWZvbnQtc2l6ZS1sYXJnZTogJHNtYWxsLXNxdWFyZSAqIDY7IC8vIDI0cHhcbiRpY29uLWZvbnQtc2l6ZS14LWxhcmdlOiAkc21hbGwtc3F1YXJlICogNzsgLy8gMjhweFxuJGljb24tZm9udC1zaXplLXBsYWNlaG9sZGVyOiAkbGFyZ2Utc3F1YXJlICogNztcbiRmb250LXNpemU6ICRpY29uLWZvbnQtc2l6ZS1tZWRpdW0gIWRlZmF1bHQ7IC8vIDEzcHhcbiRmb250LXNpemUtbWVkaXVtOiAkaWNvbi1mb250LXNpemUtbWVkaXVtOyAvLzE2cHhcbiRmb250LXNpemUtbGFyZ2U6ICRpY29uLWZvbnQtc2l6ZS1yZWd1bGFyO1xuJGZvbnQtc2l6ZS14LWxhcmdlOiAkaWNvbi1mb250LXNpemUteC1sYXJnZTtcbiRmb250LXNpemUtaGVhZGVyOiAxNHB4O1xuXG5cbiRmb250LXdlaWdodC1saWdodDogMzAwOyAvLyBTb3VyY2UgU2FucyBQcm8gTGlnaHRcbiRmb250LXdlaWdodC1yZWd1bGFyOiA0MDA7IC8vIFNvdXJjZSBTYW5zIFBybyBMaWdodFxuJGZvbnQtd2VpZ2h0LXNlbWktYm9sZDogNjAwOyAvLyBTb3VyY2UgU2FucyBQcm8gU2VtaSBCb2xkXG4kZm9udC13ZWlnaHQtYm9sZDogNzAwOyAvLyBTb3VyY2UgU2FucyBQcm8gQm9sZFxuXG5cblxuLypcbiAqIEhlYWRlciBzaXplXG4gKi9cblxuJGhlYWRlci1oZWlnaHQ6IHJlbS1jYWxjKDUyKSAhZGVmYXVsdDtcbiRoZWFkZXItdGV4dC1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA4ICFkZWZhdWx0OyAvLzMycHhcbiRzdWItbmF2LWhlaWdodDogMHJlbSAhZGVmYXVsdDsgLy8gMHB4XG4kc2VhcmNoLWJhci1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxNSAhZGVmYXVsdDtcbi8vJHBhZ2luYXRpb24taGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMjUgIWRlZmF1bHQ7XG4kY2hhcnRzLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDc0ICFkZWZhdWx0O1xuJG1haW4taGVhZGVyLWhlaWdodDogJGhlYWRlci1oZWlnaHQrJHN1Yi1uYXYtaGVpZ2h0ICFkZWZhdWx0O1xuJHZpcnR1YWwtZ3JvdXAtaW5kaWNhdG9yLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDc7XG4kaGVhZGVyLXNpZGUtbWFyZ2luOiByZW0tY2FsYygyNCk7XG5cbi8qXG4gKiBEZXZpY2UgR3JvdXAgc2V0dGluZ3NcbiAqL1xuXG4kZGV2aWNlLWdyb3VwLXBhZGRpbmctbGVmdDogJHNtYWxsLXNxdWFyZSAqIDY7XG4kZGV2aWNlLWdyb3VwLWl0ZW1zLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDk7XG4kZGV2aWNlLWdyb3VwLXdpZHRoOiAkbGFyZ2Utc3F1YXJlICogMjg7XG4kZGV2aWNlLWdyb3VwLW1pbi13aWR0aDogJHNtYWxsLXNxdWFyZSAqIDU1O1xuJGRldmljZS1ncm91cC1tYXgtd2lkdGg6ICRzbWFsbC1zcXVhcmUgKiAxNDA7XG4kZGV2aWNlLWdyb3VwLW1hcmdpbi10b3A6ICRzZWFyY2gtYmFyLWhlaWdodDtcbiRkZXZpY2UtZ3JvdXAtYnV0dG9uLXdpZHRoOiAkbGFyZ2Utc3F1YXJlICogMjE7XG4kZGV2aWNlLWdyb3VwLWJ1dHRvbi1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxMTtcbiRkZXZpY2UtZ3JvdXAtYnV0dG9uLWJvcmRlcjogMXB4IHNvbGlkIGhyYS1jb2xvcigkZ3JleSwgMjApO1xuXG4vKlxuICogQm9yZGVyIHNldHRpbmdzXG4gKi9cblxuJGJvcmRlci1iYXNlOiAxcHggc29saWQgcmdiKDIwNCwgMjA0LCAyMDQpO1xuJGJvcmRlci1yYWRpdXMtc21hbGw6IDNweDtcbiRib3JkZXItcmFkaXVzLWJhc2U6IDRweDtcbiRib3JkZXItcmFkaXVzLWxhcmdlOiA2cHg7XG5cbi8qXG4gKiBTaGFkb3dzIGdvIGJ5IGxldmVsXG4gKi9cblxuJHNoYWRvdzogMCAzcHggOXB4IHJnYmEoMCwgMCwgMCwgLjUpO1xuJHNoYWRvdy0xOiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuJHNoYWRvdy1zbWFsbDogMCAxcHggNnB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7XG4kc2hhZG93LWhlYWRlcjogMHB4IDFweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LXNlYXJjaC1oZWFkZXI6IDhweCAxcHggMTNweCAycHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1saWdodDogMXB4IDFweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuJHNoYWRvdy1saWdodC1ib3R0b20tb25seTogMHB4IDFweCA4cHggcmdiYSgkYmxhY2ssIDAuMTMpO1xuJHNoYWRvdy1hYm92ZTogMCAtMXB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctYWJvdmUtbGVmdDogLTZweCAwcHggMTNweCAycHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1iZWxvdzogMHB4IDlweCA4cHggLTVweCByZ2JhKDE1OCwgMTU4LCAxNTgsIDAuMjUpO1xuJHNoYWRvdy1kcm9wZG93bjogMCAxcHggMTNweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWRpYWxvZzogMCA4cHggMjBweCA2cHggcmdiYSgkYmxhY2ssIDAuNik7XG4kc2hhZG93LWRpYWxvZy1zdWZmaXg6IDBweCAxNnB4IDIwcHggM3B4IHJnYmEoJGJsYWNrLCAwLjYpO1xuJHNoYWRvdy1sYXlvdXQ6IDZweCAwcHggOXB4IDBweCByZ2JhKCRibGFjaywgMC4yKTtcbiRzaGFkb3ctc2F2ZWQtc2VhcmNoZXM6IDRweCA0cHggOHB4IC0ycHggcmdiYSg2Nyw3MCw3NCwuMTMpO1xuJHNoYWRvdy1jaGFydC1jYXJkOiAwIDZweCAxNnB4IHJnYmEoMjAsMzAsMzcsMC4wOCk7XG4kc2hhZG93LWNvbmZpZy1jYXJkOiAwIDAgMjRweCAwIHJnYmEoMjAsMzAsMzcsMC4xKTtcblxuLypcbiAqIFBhZGRpbmcgc2V0dGluZ3NcbiAqL1xuXG4kYm9keS1wYWRkaW5nOiAkbGFyZ2Utc3F1YXJlICogMjtcbiRwYWRkaW5nLXNtYWxsOiAkbGFyZ2Utc3F1YXJlO1xuJGJhc2UtcGFkZGluZzogJHNtYWxsLXNxdWFyZSAqIDQ7IC8vIDE2cHhcbiRoYWxmLWJhc2UtcGFkZGluZzogJGJhc2UtcGFkZGluZyAvIDI7XG4kbW9kYWwtcGFkZGluZzogJGJhc2UtcGFkZGluZztcbiRsYXlvdXQtcGFkZGluZzogKCRiYXNlLXBhZGRpbmcgKiAyKSAoJGJvZHktcGFkZGluZyAqIDIpICgkYmFzZS1wYWRkaW5nICogMikgKCRib2R5LXBhZGRpbmcgKiAyKTtcbiRwYWRkaW5nLWJhc2UtdmVydGljYWw6IDZweDtcbiRwYWRkaW5nLWJhc2UtaG9yaXpvbnRhbDogJHNtYWxsLXNxdWFyZSAqIDM7XG4kcGFkZGluZy1sYXJnZS12ZXJ0aWNhbDogMTBweDtcbiRwYWRkaW5nLWxhcmdlLWhvcml6b250YWw6ICAkc21hbGwtc3F1YXJlICogNDtcbiRwYWRkaW5nLW1lZGl1bS12ZXJ0aWNhbDogMTRweDtcbiRwYWRkaW5nLXNtYWxsLXZlcnRpY2FsOiA1cHg7XG4kcGFkZGluZy1zbWFsbC1ob3Jpem9udGFsOiAxMHB4O1xuXG4vKlxuICogSW5wdXRzXG4gKi9cbiRpbnB1dC1wYWRkaW5nOiAkc21hbGwtc3F1YXJlICRzbWFsbC1zcXVhcmUgKiAyO1xuJGlucHV0LWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDg7XG5cbi8qXG4gKiBUb29sVGlwc1xuICovXG5cbi8vIFRvb2x0aXBzXG4kdG9vbHRpcC1tYXgtd2lkdGg6IDI1MHB4ICFkZWZhdWx0O1xuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpICFkZWZhdWx0O1xuJHRvb2x0aXAtdGV4dC1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiR0b29sdGlwLWRlbGF5OiAwLjRzICFkZWZhdWx0O1xuJHRvb2x0aXAtZHVyYXRpb246IDAuMXMgIWRlZmF1bHQ7XG5cbi8qXG4gKiBBY3Rpb24gYmFyIHNpemVzXG4gKi9cblxuJGRldmljZS1hY3Rpb24tYmFyLWhlaWdodDogJGxhcmdlLXNxdWFyZSAqIDU7XG4kY291bnQtY29udGFpbmVyLXBhZGRpbmc6ICgkbGFyZ2Utc3F1YXJlICogMikgKCRzbWFsbC1zcXVhcmUgKiA0KSAoJGxhcmdlLXNxdWFyZSAqIDIpICgkc21hbGwtc3F1YXJlICogNCk7XG5cbi8qKlxuKiAgRGV2aWNlIGdyaWQgc2l6ZXNcbiovXG5cbiRyb3ctYWJvdmUtZ3JpZC1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxNDtcbiRjaGVjay1jZWxsLXBhZGRpbmc6IDAgMCAwICRzbWFsbC1zcXVhcmUqMjtcbiRkZXZpY2UtZ3JpZC1taW4taGVpZ2h0OiAkc21hbGwtc3F1YXJlICogNzE7XG5cbi8qXG4gKiBGb2N1cyBib3JkZXJcbiAqL1xuXG4kaHJhLWZvY3VzLW91dGxpbmU6IDJweCBzb2xpZCBocmEtY29sb3IoJGN5YW4pO1xuXG4vKlxuICogQm9yZGVyXG4gKi9cblxuJGhyYS1ib3JkZXI6IDFweCBzb2xpZCBocmEtY29sb3IoJGdyZXksIDIwKTtcbiRocmEtYm9yZGVyLWVycm9yOiAxcHggc29saWQgaHJhLWNvbG9yKCRyZWQpO1xuJGhyYS1ib3JkZXItaW5wdXQtZGlzYWJsZWQ6IDFweCBzb2xpZCBocmEtY29sb3IoJGdyZXksIDQwKTtcblxuXG4vKlxuICogUG9wLXVwXG4qL1xuJGhyYS1wb3B1cC1iZWFrLXNpemU6ICRzbWFsbC1zcXVhcmUqMztcbiRocmEtcG9wdXAtYmVhay1ib3R0b20tY2VudGVyOiBjYWxjKDUwJSAtICgxLjI1cmVtIC8gMikpO1xuJHBvcC11cC1mb290ZXItaGVpZ2h0OiAkbGFyZ2Utc3F1YXJlICogNTtcbiRwb3AtdXAtdGl0bGUtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTM7XG4kcG9wLXVwLXRpdGxlLW1ham9yLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDE0O1xuLy8gc3R5bGVndWlkZTppZ25vcmU6ZW5kXG5cbi8qXG4qIFN0YXR1cyBOb3RpZmljYXRpb25cbiovXG4kaHJhLXN0YXR1cy1ub3RpZmljYXRpb24td2lkdGg6ICRzbWFsbC1zcXVhcmUgKiA4MztcbiRocmEtc3RhdHVzLW5vdGlmaWNhdGlvbi10b3A6ICRzbWFsbC1zcXVhcmUgKiAxNDtcbiRocmEtc3RhdHVzLW5vdGlmaWNhdGlvbi1ib3R0b206ICRzbWFsbC1zcXVhcmUgKiAxNTtcblxuXG4vKlxuICBSb3VuZCBidXR0b24gc2l6ZXNcbiAqL1xuICRyb3VuZC1zbWFsbDogJHNtYWxsLXNxdWFyZSAqIDc7XG4gJHJvdW5kLW1lZGl1bTogJHNtYWxsLXNxdWFyZSAqIDg7XG4gJHJvdW5kLWxhcmdlOiAkc21hbGwtc3F1YXJlICogOTtcblxuLypcbiAqIEltYWdlIEljb24gU2l6ZXNcbiAqL1xuXG4kaW1nLWljb24tc2l6ZS1zbWFsbDogJHNtYWxsLXNxdWFyZSAqIDg7XG4kaW1nLWljb24tc2l6ZS1tZWRpdW06ICRzbWFsbC1zcXVhcmUgKiAxMDtcblxuXG4kYmV6aWVyOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuXG5cbi8qKiBNb2RhbCBzaXplcyAqKi9cbiRtb2RhbC10aXRsZS1oZWlnaHQ6IHJlbS1jYWxjKDUyKTtcbiRtb2RhbC1mb290ZXItaGVpZ2h0OiByZW0tY2FsYyg2MCk7XG4iLCJAaW1wb3J0ICcuLi8uLi8uLi9zdHlsZXMvYmFzZS9zZXR0aW5ncyc7XG5cbjpob3N0KFtsaWdodF0pIHtcbiAgY29sb3I6JHdoaXRlO1xufVxuXG46aG9zdChbYmxhY2tdKSB7XG4gIC5jb3B5cmlnaHQge1xuICAgIGNvbG9yOiRibGFjaztcbiAgfVxufVxuXG5cbjpob3N0KFtjZW50ZXJdKSB7XG4gdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubGlua3Mge1xuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWktYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgYSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc21hbGwtc3F1YXJlICogMjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG4gIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcXVhcmUgKiAyO1xufVxuXG4uY29weXJpZ2h0IHtcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pLWJvbGQ7XG4gIGNvbG9yOiAkYmxhY2s7XG59Il19 */\"","import { Component } from '@angular/core';\n@Component({\n // tslint:disable-next-line: component-selector\n selector: 'hra-copyright',\n templateUrl: './copyright.ctrl.html',\n styleUrls: ['./copyright.ctrl.scss']\n})\n// tslint:disable-next-line: component-class-suffix\nexport class CopyrightControl {\n /**\n * TODO: This is going to be changed to a string that gets passed from the build machine.\n */\n\n constructor() { }\n\n getCopyrightYear() {\n return new Date().getFullYear();\n }\n}\n","export default \"/*\\nHigh DPI screens (retina macbooks, highresolution laptops, etc)\\n*/\\n/* Firefox specific styles go here */\\n/*\\nCOMMON COLOR NAMES\\n\\nThese colors are mapped to the names from the official colors.\\nInstead of having names like `crush` or `blaze`, developers will use their common, non-marketized name.\\neg. $red: crush\\n $orange: blaze\\n\\nThen, use the `hra-color` function to get the color\\neg. color: hra-color($red)\\n*/\\n/* **** */\\n/* * Charts Colors */\\n/* info text background */\\n/* Use following classes for aesthetics only - New UI KIT */\\n/* Color Mapping*/\\n/*ends*/\\n/* Used for grids and margins */\\n/*\\n font sizes\\n */\\n/*\\n * Header size\\n */\\n/*\\n * Device Group settings\\n */\\n/*\\n * Border settings\\n */\\n/*\\n * Shadows go by level\\n */\\n/*\\n * Padding settings\\n */\\n/*\\n * Inputs\\n */\\n/*\\n * ToolTips\\n */\\n/*\\n * Action bar sizes\\n */\\n/**\\n* Device grid sizes\\n*/\\n/*\\n * Focus border\\n */\\n/*\\n * Border\\n */\\n/*\\n * Pop-up\\n*/\\n/*\\n* Status Notification\\n*/\\n/*\\n Round button sizes\\n */\\n/*\\n * Image Icon Sizes\\n */\\n/** Modal sizes **/\\n.footer {\\n padding: 1.5rem 0;\\n font-size: 1rem; }\\n.footer hra-copyright .copyright {\\n text-align: center; }\\n.footer hr {\\n border: 1px solid #dfd269; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21lZGlhcXVlcmllcy5zY3NzIiwic3JjL2FwcC9zaGFyZWQvY29udHJvbHMvbGF5b3V0L2Zvb3Rlci9mb290ZXIuY3RybC5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9zdHlsZXMvYmFzZS9fbWl4aW5zLnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvc2hhcmVkL3N0eWxlcy9iYXNlL19jb2xvcnMuc2NzcyIsIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX3NldHRpbmdzLnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvc2hhcmVkL2NvbnRyb2xzL2xheW91dC9mb290ZXIvZm9vdGVyLmN0cmwuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4QkE7O0NDNUJDO0FDMEtELG9DQUFBO0FDNUtBOzs7Ozs7Ozs7O0NGY0M7QUUrREQsU0FBQTtBQVVBLG9CQUFBO0FBS0EseUJBQUE7QUFJQSwyREFBQTtBQUVBLGlCQUFBO0FBb0JBLE9BQUE7QUNuSEEsK0JBQUE7QUFpQkE7O0VISUU7QUdtQkY7O0VIaEJFO0FHOEJGOztFSDNCRTtBR3lDRjs7RUh0Q0U7QUcrQ0Y7O0VINUNFO0FHa0VGOztFSC9ERTtBR2lGRjs7RUg5RUU7QUdvRkY7O0VIakZFO0FHNEZGOztFSHpGRTtBR2dHRjs7Q0g3RkM7QUdxR0Q7O0VIbEdFO0FHd0dGOztFSHJHRTtBRzhHRjs7Q0gzR0M7QUdxSEQ7O0NIbEhDO0FHMEhEOztFSHZIRTtBRzhIRjs7RUgzSEU7QUdzSUYsa0JBQUE7QUN6TUE7RUFDRSxpQkFBNEI7RUFDNUIsZURvQnVDLEVBQUE7QUN0QnpDO0lBT00sa0JBQWtCLEVBQUE7QUFQeEI7SUFZSSx5QkFBeUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb250cm9scy9sYXlvdXQvZm9vdGVyL2Zvb3Rlci5jdHJsLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAgQXV0aG9yOiBSYWZhbCBCcm9taXJza2lcbi8vICB3d3c6IGh0dHA6Ly9yYWZhbGJyb21pcnNraS5jb20vXG4vLyAgZ2l0aHViOiBodHRwOi8vZ2l0aHViLmNvbS9wYXJhbm9pZGEvc2Fzcy1tZWRpYXF1ZXJpZXNcbi8vXG4vLyAgTGljZW5zZWQgdW5kZXIgYSBNSVQgTGljZW5zZVxuLy9cbi8vICBWZXJzaW9uOlxuLy8gIDEuNi4xXG4vLyAtLS0gZ2VuZXJhdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIG1xKCRhcmdzLi4uKSB7XG4gICRtZWRpYS10eXBlOiAnb25seSBzY3JlZW4nO1xuICAkbWVkaWEtdHlwZS1rZXk6ICdtZWRpYS10eXBlJztcbiAgJGFyZ3M6IGtleXdvcmRzKCRhcmdzKTtcbiAgJGV4cHI6ICcnO1xuICBAaWYgbWFwLWhhcy1rZXkoJGFyZ3MsICRtZWRpYS10eXBlLWtleSkge1xuICAgICRtZWRpYS10eXBlOiBtYXAtZ2V0KCRhcmdzLCAkbWVkaWEtdHlwZS1rZXkpO1xuICAgICRhcmdzOiBtYXAtcmVtb3ZlKCRhcmdzLCAkbWVkaWEtdHlwZS1rZXkpO1xuICB9XG4gIEBlYWNoICRrZXksXG4gICR2YWx1ZSBpbiAkYXJncyB7XG4gICAgQGlmICR2YWx1ZSB7XG4gICAgICAkZXhwcjogXCIjeyRleHByfSBhbmQgKCN7JGtleX06ICN7JHZhbHVlfSlcIjtcbiAgICB9XG4gIH1cbiAgQG1lZGlhICN7JG1lZGlhLXR5cGV9ICN7JGV4cHJ9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5cbi8qXG5IaWdoIERQSSBzY3JlZW5zIChyZXRpbmEgbWFjYm9va3MsIGhpZ2hyZXNvbHV0aW9uIGxhcHRvcHMsIGV0YylcbiovXG5cbkBtaXhpbiBoZHBpKCRyYXRpbzogMS4zKSB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSwgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogI3tyb3VuZCgkcmF0aW8qOTYpfWRwaSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vICRvcmllbnRhdGlvbjogbGFuZHNjYXBlIHwgcG9ydHJhaXRcbkBtaXhpbiB0YWJsZXQoJG9yaWVudGF0aW9uOiBmYWxzZSkge1xuICAkbWluOiAyNjhweDtcbiAgJG1heDogMTAyNHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCwgJG9yaWVudGF0aW9uOiAkb3JpZW50YXRpb24pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBzbWFsbCBkZXNrdG9wIC0gMTAyNSA8LT4gMTI4MFxuQG1peGluIHNtYWxsLWRlc2t0b3AoKSB7XG4gICRtaW46IDEwMjVweDtcbiAgJG1heDogMTI4MHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIG1lZGl1bSBkZXNrdG9wIC0gMTI4MSA8LT4gMTQ0MFxuQG1peGluIG1lZGl1bS1kZXNrdG9wKCkge1xuICAkbWluOiAxMjgxcHg7XG4gICRtYXg6IDE0NDBweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBsYXJnZSBkZXNrdG9wIC0gMTQ0MSA8LT4gMTYwMFxuQG1peGluIGxhcmdlLWRlc2t0b3AoKSB7XG4gICRtaW46IDE0NDFweDtcbiAgJG1heDogMTYwMHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIHhsYXJnZSBkZXNrdG9wIC0gMTYwMSAtPiBpbmZpbml0eVxuQG1peGluIHhsYXJnZS1kZXNrdG9wKCkge1xuICAkbWluOiAxNjAxcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gZGVza3RvcCBvdmVybGF5XG5AbWl4aW4gZGVza3RvcC1vdmVybGF5KCkge1xuICAgICRtaW46IDI2OHB4O1xuICAgICRtYXg6IDkyNnB4O1xuICAgIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cbiIsIi8qXG5IaWdoIERQSSBzY3JlZW5zIChyZXRpbmEgbWFjYm9va3MsIGhpZ2hyZXNvbHV0aW9uIGxhcHRvcHMsIGV0YylcbiovXG4vKiBGaXJlZm94IHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG4vKlxuQ09NTU9OIENPTE9SIE5BTUVTXG5cblRoZXNlIGNvbG9ycyBhcmUgbWFwcGVkIHRvIHRoZSBuYW1lcyBmcm9tIHRoZSBvZmZpY2lhbCBjb2xvcnMuXG5JbnN0ZWFkIG9mIGhhdmluZyBuYW1lcyBsaWtlIGBjcnVzaGAgb3IgYGJsYXplYCwgZGV2ZWxvcGVycyB3aWxsIHVzZSB0aGVpciBjb21tb24sIG5vbi1tYXJrZXRpemVkIG5hbWUuXG5lZy4gJHJlZDogY3J1c2hcbiAgICAkb3JhbmdlOiBibGF6ZVxuXG5UaGVuLCB1c2UgdGhlIGBocmEtY29sb3JgIGZ1bmN0aW9uIHRvIGdldCB0aGUgY29sb3JcbmVnLiBjb2xvcjogaHJhLWNvbG9yKCRyZWQpXG4qL1xuLyogKioqKiAqL1xuLyogKiBDaGFydHMgQ29sb3JzICovXG4vKiBpbmZvIHRleHQgYmFja2dyb3VuZCAqL1xuLyogVXNlIGZvbGxvd2luZyBjbGFzc2VzIGZvciBhZXN0aGV0aWNzIG9ubHkgLSBOZXcgVUkgS0lUICovXG4vKiBDb2xvciBNYXBwaW5nKi9cbi8qZW5kcyovXG4vKiBVc2VkIGZvciBncmlkcyBhbmQgbWFyZ2lucyAqL1xuLypcbiAgZm9udCBzaXplc1xuICovXG4vKlxuICogSGVhZGVyIHNpemVcbiAqL1xuLypcbiAqIERldmljZSBHcm91cCBzZXR0aW5nc1xuICovXG4vKlxuICogQm9yZGVyIHNldHRpbmdzXG4gKi9cbi8qXG4gKiBTaGFkb3dzIGdvIGJ5IGxldmVsXG4gKi9cbi8qXG4gKiBQYWRkaW5nIHNldHRpbmdzXG4gKi9cbi8qXG4gKiBJbnB1dHNcbiAqL1xuLypcbiAqIFRvb2xUaXBzXG4gKi9cbi8qXG4gKiBBY3Rpb24gYmFyIHNpemVzXG4gKi9cbi8qKlxuKiAgRGV2aWNlIGdyaWQgc2l6ZXNcbiovXG4vKlxuICogRm9jdXMgYm9yZGVyXG4gKi9cbi8qXG4gKiBCb3JkZXJcbiAqL1xuLypcbiAqIFBvcC11cFxuKi9cbi8qXG4qIFN0YXR1cyBOb3RpZmljYXRpb25cbiovXG4vKlxuICBSb3VuZCBidXR0b24gc2l6ZXNcbiAqL1xuLypcbiAqIEltYWdlIEljb24gU2l6ZXNcbiAqL1xuLyoqIE1vZGFsIHNpemVzICoqL1xuLmZvb3RlciB7XG4gIHBhZGRpbmc6IDEuNXJlbSAwO1xuICBmb250LXNpemU6IDFyZW07IH1cbiAgLmZvb3RlciBocmEtY29weXJpZ2h0IC5jb3B5cmlnaHQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuZm9vdGVyIGhyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGZkMjY5OyB9XG4iLCJAaW1wb3J0ICcuL21lZGlhcXVlcmllcyc7XG5cbi8vLyAvIHN0eWxlZ3VpZGU6aWdub3JlOnN0YXJ0XG4vLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2Vcbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcbi8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIFRoZSBiYXNlIHZhbHVlIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBgcmVtYC4gSWYgeW91J3JlIHVzaW5nIEZvdW5kYXRpb24gb3V0IG9mIHRoZSBib3gsIHRoaXMgaXMgMTZweC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgYG51bGxgLCB0aGUgZnVuY3Rpb24gd2lsbCByZWZlcmVuY2UgdGhlIGAkYmFzZS1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlPT1udWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpPT0nJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cbiAgQGlmICRjb3VudD09MSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XG59XG5cbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXG5AZnVuY3Rpb24gLXpmLWJwLXRvLWVtKCR2YWx1ZSkge1xuICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICBAaWYgdW5pdCgkdmFsdWUpPT0ncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9J251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSsnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW1cbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWU9PTByZW0ge1xuICAgICR2YWx1ZTogMDtcbiAgfVxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIEFuaW1hdGlvbiBrZXlmcmFtZXMgYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGFuaW1hdGlvbi1uYW1lIC0gTmFtZSBvZiB0aGUgYW5pbWF0aW9uLlxuQG1peGluIGtleWZyYW1lcygkYW5pbWF0aW9uLW5hbWUpIHtcbiAgQC13ZWJraXQta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1tb3ota2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1tcy1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW8ta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBBbmltYXRpb24gYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0ciAtIGNzczMgYW5pbWF0aW9uIHNwZWMuXG5AbWl4aW4gYW5pbWF0aW9uKCRzdHIpIHtcbiAgLXdlYmtpdC1hbmltYXRpb246ICN7JHN0cn07XG4gIC1tb3otYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtbXMtYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtby1hbmltYXRpb246ICN7JHN0cn07XG4gIGFuaW1hdGlvbjogI3skc3RyfTtcbn1cblxuLy8vIEJveCBzaGFkb3cgYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0ciAtIGNzczMgYm94LXNoYWRvdyBzcGVjLlxuQG1peGluIGJveC1zaGFkb3coJHN0cikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICN7JHN0cn07XG4gIC1tb3otYm94LXNoYWRvdzogI3skc3RyfTtcbiAgLW8tYm94LXNoYWRvdzogI3skc3RyfTtcbiAgYm94LXNoYWRvdzogI3skc3RyfTtcbn1cblxuLy8vIGdyYWRpZW50IGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gZ3JhZGllbnQoJGNvbG9yMSwgJGNvbG9yMikge1xuICBiYWNrZ3JvdW5kOiAjeyRjb2xvcjF9O1xuICAvKiBGb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBncmFkaWVudHMgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBTYWZhcmkgNS4xIHRvIDYuMCAqL1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBPcGVyYSAxMS4xIHRvIDEyLjAgKi9cbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBGaXJlZm94IDMuNiB0byAxNSAqL1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIFN0YW5kYXJkIHN5bnRheCAqL1xufVxuXG5AbWl4aW4gdmVydGljYWwtZ3JhZGllbnQtZGl2aWRlcigpe1xuICB3aWR0aDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6IDFweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgaHJhLWNvbG9yKCRncmV5LCAyMCksICR3aGl0ZSk7XG59XG5cblxuLy8vIElFIG9ubHkgcXVlcnlcbkBtaXhpbiBpZS1vbmx5KCkge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuICAgIC8qIElFMTArIHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG5AbWl4aW4gY3JlYXRlLWFuaW1hdGlvbigkYW5pLW5hbWUpIHtcbiAgYW5pbWF0aW9uOiAkYW5pLW5hbWUgZm9yd2FyZHMgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cblxuQG1peGluIGNyZWF0ZS10cmFuc2l0aW9uKCRwcm9wZXJ0eS1uYW1lKSB7XG4gIHRyYW5zaXRpb246ICRwcm9wZXJ0eS1uYW1lIDMwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG4vLy8gRWRnZSBvbmx5IHF1ZXJ5XG5AbWl4aW4gZWRnZS1vbmx5KCkge1xuICBAc3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAvKiBFZGdlIHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG4vKiBGaXJlZm94IHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG5AbWl4aW4gZmlyZWZveC1vbmx5KCkge1xuICBAc3VwcG9ydHMgKC1tb3otYXBwZWFyYW5jZTpub25lKSB7XG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG5cbi8vIHN0eWxlZ3VpZGU6aWdub3JlOmVuZCIsIi8qXG5DT01NT04gQ09MT1IgTkFNRVNcblxuVGhlc2UgY29sb3JzIGFyZSBtYXBwZWQgdG8gdGhlIG5hbWVzIGZyb20gdGhlIG9mZmljaWFsIGNvbG9ycy5cbkluc3RlYWQgb2YgaGF2aW5nIG5hbWVzIGxpa2UgYGNydXNoYCBvciBgYmxhemVgLCBkZXZlbG9wZXJzIHdpbGwgdXNlIHRoZWlyIGNvbW1vbiwgbm9uLW1hcmtldGl6ZWQgbmFtZS5cbmVnLiAkcmVkOiBjcnVzaFxuICAgICRvcmFuZ2U6IGJsYXplXG5cblRoZW4sIHVzZSB0aGUgYGhyYS1jb2xvcmAgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb2xvclxuZWcuIGNvbG9yOiBocmEtY29sb3IoJHJlZClcbiovXG5cbiR0aGVtZS1ncmVlbjogI2RmZDI2OTtcbiR0aGVtZS1jb2xvcjogJHRoZW1lLWdyZWVuO1xuJGJsdWU6IGJsdWU7XG4kY3lhbjogY3lhbjtcbiRncmV5OiBncmV5O1xuJHJlZDogY3J1c2g7XG4kb3JhbmdlOiBibGF6ZTtcbiR5ZWxsb3c6IHN1bnNldCwgNjA7XG4kZ3JlZW46IHNlYWZvYW07XG4kbGlnaHQtZ3JlZW46IHNlYXdlZWQ7XG4kZGFyay1ncmVlbjogbWFyaW5lO1xuJGJyb3duOiBicm93bjtcbiRwdXJwbGU6IHB1cnBsZTtcbiRzdW5zZXQ6IHN1bnNldDtcbiRwaW5rOiBwaW5rO1xuXG4kbmV3Z3JleTogbmV3Z3JleTtcbiRuZXdibHVlOiBuZXdibHVlO1xuJG5ld2N5YW46IG5ld2N5YW47XG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBobWEncyBDb2xvdXIgUGFsZXR0ZVxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuJGNvbG9yczogKFxuICAgIGJsdWU6ICg1OiAjZjNmYmZlLCAxMDogI2UyZjRmYiwgMjA6ICNiYWU1ZjUsIDQwOiAjNzFjOGYxLCA2MDogIzMyYjZlOSwgODA6ICMwMDk5ZDMsIDEwMDogIzAwNzRhYSwgMTIwOiAjMDY0YzdjKSxcbiAgICBjcnVzaDogKDU6ICNmZmY3ZjYsIDEwOiAjZmVmMGVkLCAyMDogI2ZkZGZkYywgNDA6ICNmYWMxYmEsIDYwOiAjZjQ4MjcyLCA4MDogI2YxNjE0ZiwgMTAwOiAjZTMyNzIyLCAxMTA6I2MxM2YyYiwgMTIwOiAjYTcxZTIyKSxcbiAgICBjeWFuOiAoNTogI2YyZjlmOSwgMTA6ICNlNmY0ZjQsIDIwOiAjY2NlYWVhLCA0MDogIzlhZDdkNiwgNjA6ICM2OGM1YzQsIDgwOiAjMzZiMWIwLCAxMDA6ICMwMjlmOWQsIDEyMDogIzAyNmY2ZiksXG4gICAgYmxhemU6ICg1OiAjZmZmN2YzLCAxMDogI2ZmZjFlOSwgMjA6ICNmY2UxZDMsIDQwOiAjZmNjNWE3LCA2MDogI2Y3YTc3YiwgODA6ICNmNjg5NGQsIDEwMDogI2YyNmIyMSwgMTIwOiAjYjczZTI1KSxcbiAgICBncmV5OiAoNTogI2ZhZmJmYiwgMTA6ICNlY2VmZjAsIDIwOiAjZTRlN2U5LCA0MDogI2E4YjJiNywgNjA6ICM4MjhkOTMsIDgwOiAjNUI2NjcwLCAxMDA6ICMzZDQ2NGQsIDEyMDogIzE0MWUyNSksXG4gICAgc2VhZm9hbTogKDU6ICNlZmY5ZjgsIDEwOiAjZTRmN2YzLCAyMDogI2NmZWRlOCwgNDA6ICNhNWVhZGIsIDYwOiAjNjFkNmI4LCA4MDogIzJmZDJhOCwgMTAwOiAjMWVhZDhhLCAxMjA6ICMwYjcwNWQpLFxuICAgIHNlYXdlZWQ6ICg1OiAjZjhmYmY2LCAxMDogI2YyZjhlZCwgMjA6ICNlM2YwZDksIDQwOiAjY2JlNGI1LCA2MDogI2IwZDc4ZSwgODA6ICM5NWNiNmEsIDEwMDogIzdhYzE0MiwgMTIwOiAjNDk5MTQyKSxcbiAgICBtYXJpbmU6ICg1OiAjZjdmOWYzLCAxMDogI2YxZjRlOCwgMjA6ICNlNGVhZDIsIDQwOiAjY2JkOWE3LCA2MDogI2JmZGI4NSwgODA6ICNhZWQyNTUsIDEwMDogIzdhYTEzZSwgMTIwOiAjNGM3MzM2KSxcbiAgICBwZWJibGU6ICg1OiAjZmJmY2ZjLCAxMDogI2Y1ZjZmNiwgMjA6ICNlOWU4ZTksIDQwOiAjZDVkNGQ1LCA2MDogI2FhYWFhYiwgODA6ICM3YzdjODEsIDEwMDogIzU0NTM1NSwgMTIwOiAjMjgyNzJiKSxcbiAgICBzdW5zZXQ6ICg1OiAjZmZmZGVlLCAxMDogI2ZmZmJkYiwgMjA6ICNmZGY3YjQsIDQwOiAjZmZmNTdlLCA2MDogI2ZmZjEwMCwgODA6ICNmYmFkMWMsIDEwMDogI2Y0N2YxZiwgMTIwOiAjYzk1NDI4KSxcbiAgICBicm93bjogKDU6ICNmN2Y0ZjIsIDEwOiAjZWFlNGUxLCAyMDogI2Q4Y2VjYiwgNDA6ICNiYWFiYTUsIDYwOiAjOTY4MzdjLCA4MDogIzc3NWQ1MywgMTAwOiAjNTkzODJjLCAxMjA6ICMyZjE4MGQpLFxuICAgIHB1cnBsZTogKDU6ICNmMmVmZjcsIDEwOiAjZThkZmVmLCAyMDogI2Q3YzllMywgNDA6ICNjMWFlZDUsIDYwOiAjYTA4NWJlLCA4MDogIzdiNjFhYSwgMTAwOiAjNjY0ZmExLCAxMjA6ICM0MjJlODUpLFxuICAgIHBpbms6ICg1OiAjZmVmNGY4LCAxMDogI2ZjZTdlZiwgMjA6ICNmYWRhZTEsIDQwOiAjZjRhMmMyLCA2MDogI2VkNzNhNCwgODA6ICNlOTQ1ODYsIDEwMDogI2UzMTU2NywgMTIwOiAjYWIxZDQxKSxcblxuICAgIC8vIE5ldyBVSSBLaXQgY29sb3JzIC0gbmV3IHByZWZpeCB3aWxsIGJlIHJlbW92ZWQgb25jZSB0aGUgbWlncmF0aW9uIGlzIGNvbXBsZXRlZFxuICAgIC8vIEl0IGFsc28gbWFrZXMgc3VyZSB0aGF0IGNvbG9yIHZhcmlhYmxlcyBhcmUgdXNlZFxuICAgIG5ld2dyZXk6ICg1OiAjZmNmY2ZjLCAxMDogI2Y3ZjdmNywgMjA6ICNmMmYyZjIsIDQwOiAjZTllOWU5LCA1MDogI2M3YzdjNywgNjA6ICNhOWE5YTksIDcwOiAjODA4MDgwLCA4MDogIzZiNmI2YiwxMDA6ICM0YjRiNGIsMTIwOiMyOTI5MjkpLFxuICAgIG5ld2JsdWU6ICg1OiAjZjBmNmZhLCAxMDogI2UyZWVmNSwgMjA6ICNiOGQ1ZTcsIDQwOiAjOGViYmQ3LCA1MDogIzY5YTFjNywgNTU6ICM0ZjhmYmQsIDY1OiAjMzg3ZWIzLCA3MDogIzJmNzJhOCwgODA6ICMyNTYyOTcsIDEwMDogIzFkNTI4NSwgMTIwOiAjMTAzNzY2KSxcbiAgICBuZXdjeWFuOiAoNTogI2YwZjZmYSwgMTA6ICNlMmVlZjUsIDIwOiAjYjhkNWU3LCA0MDogIzhlYmJkNywgNTA6ICM2OWExYzcsIDU1OiAjNGY4ZmJkLCA2NTogIzM4N2ViMywgMTAwOiAjMmY3MmE4LCAxMjA6ICMyNTYyOTcsIDE0MDogIzFkNTI4NSwgMTYwOiAjMTAzNzY2KSxcbik7XG5cbkBmdW5jdGlvbiBocmEtY29sb3IoJGNvbG9yLCAkdmFsdWU6IDEwMCkge1xuICAgICRzZWxlY3RlZENvbG9yOiAkY29sb3I7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGNvbG9yKSA9PSAnbGlzdCcpIHtcbiAgICAgICAgJHNlbGVjdGVkQ29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAgICAgICAkdmFsdWU6IG50aCgkY29sb3IsIDIpO1xuICAgIH1cblxuICAgICRjb2xvci1tYXA6IG1hcC1nZXQoJGNvbG9ycywgJHNlbGVjdGVkQ29sb3IpO1xuICAgIEBpZiAoJGNvbG9yLW1hcCA9PSBudWxsKSB7XG4gICAgICAgIEBlcnJvciAkc2VsZWN0ZWRDb2xvciArICcgaXMgbm90IHBhcnQgb2YgdGhlIGNvbG9yIHBhbGV0dGUnO1xuICAgIH1cbiAgICBAcmV0dXJuIG1hcC1nZXQoJGNvbG9yLW1hcCwgJHZhbHVlKTtcbn1cblxuJGJsYWNrOiBocmEtY29sb3IoJGdyZXksIDEyMCk7XG4kd2hpdGU6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiRjb2xvci1ncmF5LXRyYW5zcGFyZW50OiB0cmFuc3BhcmVudGl6ZShocmEtY29sb3IoJGdyZXkpLCAwLjgpO1xuJGhvdmVyLWNvbG9yOiBocmEtY29sb3IoJGdyZXksIDIwKTtcblxuXG4vKiAqKioqICovXG4kc3VjY2Vzcy1jb2xvcjogaHJhLWNvbG9yKCRncmVlbik7XG4kd2FybmluZy1jb2xvcjogaHJhLWNvbG9yKCR5ZWxsb3cpO1xuJGFsZXJ0LWNvbG9yOiBocmEtY29sb3IoJHJlZCk7XG4kY29sb3ItaW52YWxpZDogaHJhLWNvbG9yKCRyZWQpO1xuJGRpc2FibGVkLWNvbG9yOiBocmEtY29sb3IoJGdyZXksIDEwKTtcbiRkaXNhYmxlZC1ib3JkZXI6IGhyYS1jb2xvcigkZ3JleSwgNDApO1xuJGNvbG9yLWhyYS1hbmNob3I6IGhyYS1jb2xvcigkYmx1ZSk7XG4kZGlzYWJsZWQtZm9yZS1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCA0MCk7XG5cbi8qICogQ2hhcnRzIENvbG9ycyAqL1xuJHN0YWNrZWQtdG9vbHRpcC1jaXJjbGUtYmc6ICMzZjQwNDI7XG4kY2hhcnQtdG9vbHRpcC1jaXJjbGU6ICNmZjg5NGM7XG4kZG9udXQtY291bnQ6ICNmZjZiNTc7XG5cbi8qIGluZm8gdGV4dCBiYWNrZ3JvdW5kICovXG4kaW5mby1iYWNrZ3JvdW5kOiAjZmZmZGU2O1xuXG5cbi8qIFVzZSBmb2xsb3dpbmcgY2xhc3NlcyBmb3IgYWVzdGhldGljcyBvbmx5IC0gTmV3IFVJIEtJVCAqL1xuLy8gU3RhbmRhcmRpc2UgdmFyaWFibGVzIHNob3VsZCBiZSB1c2VkIGluc3RlYWQgb2YgZGlyZWN0IGNvbG9yc1xuLyogQ29sb3IgTWFwcGluZyovXG4kcHJpbWFyeS1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Ymx1ZSwgNzApO1xuJHByaW1hcnktaG92ZXItYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDEwMCk7XG4kcHJpbWFyeS10ZXh0OiR3aGl0ZTtcblxuJGRlbGV0ZS1iYWNrZ3JvdW5kOiBocmEtY29sb3IoJHJlZCwgMTEwKTtcblxuJHNlY29uZGFyeS10ZXh0OmhyYS1jb2xvcigkbmV3Ymx1ZSwgNTUpO1xuJHNlY29uZGFyeS1iYWNrZ3JvdW5kOiR3aGl0ZTtcbiRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDUpO1xuJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Z3JleSwgNTApO1xuJHNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZDokc2Vjb25kYXJ5LXRleHQ7XG5cbiRmbGF0LWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDgwKTtcbiRmbGF0LWhvdmVyOiBocmEtY29sb3IoJG5ld2dyZXksIDEwMCk7XG4kZmxhdC1kaXNhYmxlZDogaHJhLWNvbG9yKCRuZXdncmV5LCA3MCk7XG5cbiRhY3Rpb24taG92ZXItYmFja2dyb3VuZDogaHJhLWNvbG9yKCRuZXdibHVlLCA4MCk7XG4kYWN0aW9uLWRpc2FibGVkOiBocmEtY29sb3IoJG5ld2dyZXksIDU1KTtcbiRhY3Rpb24tYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDUwKTtcbi8qZW5kcyovXG5cbiRidXR0b24tcHJpbWFyeS10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktYmFja2dyb3VuZDtcbiRidXR0b24tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiRwcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLXByaW1hcnktZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1kZWxldGUtYmFja2dyb3VuZC1jb2xvcjogJGRlbGV0ZS1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1wcmltYXJ5LWRpc2FibGVkLWJvcmRlci1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuXG4vLyBTZWNvbmRhcnkgYnV0dG9ucyBhbmQgc2Vjb25kYXJ5IGFjdGlvbiBidXR0b25zIHNoYXJlIGNvbG9ycyBcbiRidXR0b24tc2Vjb25kYXJ5LWJvcmRlci1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1zZWNvbmRhcnktdGV4dC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItdGV4dC1jb2xvcjogJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1zZWNvbmRhcnktZGlzYWJsZWQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG5cbiRidXR0b24tZmxhdC1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiRidXR0b24tZmxhdC1jb2xvcjogJGZsYXQtY29sb3I7XG4kYnV0dG9uLWZsYXQtaG92ZXItY29sb3I6JGZsYXQtaG92ZXI7XG4kYnV0dG9uLWZsYXQtZGlzYWJsZWQtY29sb3I6ICRmbGF0LWRpc2FibGVkO1xuXG4kYnV0dG9uLWFjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1ob3Zlci10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1kaXNhYmxlZC10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1kZWxldGUtYmFja2dyb3VuZC1jb2xvcjokZGVsZXRlLWJhY2tncm91bmQ7XG5cbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWRpc2FibGVkLWNvbG9yOiAkYWN0aW9uLWRpc2FibGVkO1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG5cbiR1bnNlbGVjdGVkLWNob2ljZS1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJHNlbGVjdGVkLWNob2ljZS1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuXG4kcmFkaW8tbGFiZWwtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiR0b2dnbGUtb24tYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJHRvZ2dsZS1vZi1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kdG9nZ2xlLWhlYWQtY29sb3I6ICR3aGl0ZTtcblxuJGlucHV0LXRleHQtbGFiZWwtY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgMTIwKTtcbiRpbnB1dC10ZXh0LWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA0MCk7XG4kaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA2MCk7XG4kaW5wdXQtdGV4dC1hY3RpdmUtYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDgwKTtcbiRpbnB1dC10ZXh0LWFjdGl2ZS10ZXh0LWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDEyMCk7XG4kaW5wdXQtdGV4dC1lcnJvci1ib3JkZXItY29sb3I6IGhyYS1jb2xvcigkcmVkLCAxMTApO1xuJGlucHV0LXRleHQtZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDUwKTtcbiRpbnB1dC10ZXh0LWVycm9yLW1lc3NhZ2UtY29sb3I6ICRpbnB1dC10ZXh0LWVycm9yLWJvcmRlci1jb2xvcjtcbiRpbnB1dC10ZXh0LWRpc2FibGVkLWNvbG9yOiAkaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjtcbiRpbnB1dC10ZXh0LWxhYmVsLWRpc2FibGVkLWNvbG9yOiAkaW5wdXQtdGV4dC1ib3JkZXItY29sb3I7XG4kaW5wdXQtdGV4dC1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjsiLCJAaW1wb3J0ICdtaXhpbnMnO1xuQGltcG9ydCAnY29sb3JzJztcblxuLyogVXNlZCBmb3IgZ3JpZHMgYW5kIG1hcmdpbnMgKi9cblxuJHNtYWxsLXNpemU6IDQgIWRlZmF1bHQ7XG4kbGFyZ2Utc2l6ZTogMTIgIWRlZmF1bHQ7XG4kc21hbGwtc3F1YXJlOiByZW0tY2FsYygkc21hbGwtc2l6ZSkgIWRlZmF1bHQ7XG4kbGFyZ2Utc3F1YXJlOiByZW0tY2FsYygkbGFyZ2Utc2l6ZSkgIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtZ3JheTogdHJhbnNwYXJlbnRpemUoaHJhLWNvbG9yKCRncmV5LCA0MCksIDAuOCk7XG4kdHJhbnNwYXJlbnQtd2hpdGU6IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KTtcbiRhbmltYXRpb24tdGltaW5nOiAwLjI1cztcbiRyYWQtZ3JhZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyLCB0cmFuc3BhcmVudGl6ZShocmEtY29sb3IoJGdyZXkpLCAwLjUpIDgwJSwgdHJhbnNwYXJlbnRpemUoJGJsYWNrLCAwLjUpIDEwMCUpO1xuJGxpbmVhci1ncmFkOiByZ2JhKCRibGFjaywgMC43KTtcblxuJHNjcm9sbC1iYXItd2lkdGg6ICRzbWFsbC1zcXVhcmUgKiAyO1xuJHNjcm9sbC1iYXItd2lkdGgtZmlyZWZveDogcmVtLWNhbGMoMTcpO1xuJHNjcm9sbC1iYXItd2lkdGgtZWRnZTogcmVtLWNhbGMoMTcpO1xuJHNjcm9sbC1iYXItd2lkdGgtaWU6IHJlbS1jYWxjKDE3KTtcblxuLypcbiAgZm9udCBzaXplc1xuICovXG4kaWNvbi1mb250LXNpemUtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiAzICFkZWZhdWx0OyAvLyAxMnB4XG4kaWNvbi1mb250LXNpemUtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogNCAhZGVmYXVsdDsgLy8gMTZweFxuJGljb24tZm9udC1zaXplLXJlZ3VsYXI6ICRzbWFsbC1zcXVhcmUgKiA1ICFkZWZhdWx0OyAvLyAyMHB4XG4kaWNvbi1mb250LXNpemUtbGFyZ2U6ICRzbWFsbC1zcXVhcmUgKiA2OyAvLyAyNHB4XG4kaWNvbi1mb250LXNpemUteC1sYXJnZTogJHNtYWxsLXNxdWFyZSAqIDc7IC8vIDI4cHhcbiRpY29uLWZvbnQtc2l6ZS1wbGFjZWhvbGRlcjogJGxhcmdlLXNxdWFyZSAqIDc7XG4kZm9udC1zaXplOiAkaWNvbi1mb250LXNpemUtbWVkaXVtICFkZWZhdWx0OyAvLyAxM3B4XG4kZm9udC1zaXplLW1lZGl1bTogJGljb24tZm9udC1zaXplLW1lZGl1bTsgLy8xNnB4XG4kZm9udC1zaXplLWxhcmdlOiAkaWNvbi1mb250LXNpemUtcmVndWxhcjtcbiRmb250LXNpemUteC1sYXJnZTogJGljb24tZm9udC1zaXplLXgtbGFyZ2U7XG4kZm9udC1zaXplLWhlYWRlcjogMTRweDtcblxuXG4kZm9udC13ZWlnaHQtbGlnaHQ6IDMwMDsgLy8gU291cmNlIFNhbnMgUHJvIExpZ2h0XG4kZm9udC13ZWlnaHQtcmVndWxhcjogNDAwOyAvLyBTb3VyY2UgU2FucyBQcm8gTGlnaHRcbiRmb250LXdlaWdodC1zZW1pLWJvbGQ6IDYwMDsgLy8gU291cmNlIFNhbnMgUHJvIFNlbWkgQm9sZFxuJGZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDsgLy8gU291cmNlIFNhbnMgUHJvIEJvbGRcblxuXG5cbi8qXG4gKiBIZWFkZXIgc2l6ZVxuICovXG5cbiRoZWFkZXItaGVpZ2h0OiByZW0tY2FsYyg1MikgIWRlZmF1bHQ7XG4kaGVhZGVyLXRleHQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogOCAhZGVmYXVsdDsgLy8zMnB4XG4kc3ViLW5hdi1oZWlnaHQ6IDByZW0gIWRlZmF1bHQ7IC8vIDBweFxuJHNlYXJjaC1iYXItaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTUgIWRlZmF1bHQ7XG4vLyRwYWdpbmF0aW9uLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDI1ICFkZWZhdWx0O1xuJGNoYXJ0cy1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3NCAhZGVmYXVsdDtcbiRtYWluLWhlYWRlci1oZWlnaHQ6ICRoZWFkZXItaGVpZ2h0KyRzdWItbmF2LWhlaWdodCAhZGVmYXVsdDtcbiR2aXJ0dWFsLWdyb3VwLWluZGljYXRvci1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3O1xuJGhlYWRlci1zaWRlLW1hcmdpbjogcmVtLWNhbGMoMjQpO1xuXG4vKlxuICogRGV2aWNlIEdyb3VwIHNldHRpbmdzXG4gKi9cblxuJGRldmljZS1ncm91cC1wYWRkaW5nLWxlZnQ6ICRzbWFsbC1zcXVhcmUgKiA2O1xuJGRldmljZS1ncm91cC1pdGVtcy1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA5O1xuJGRldmljZS1ncm91cC13aWR0aDogJGxhcmdlLXNxdWFyZSAqIDI4O1xuJGRldmljZS1ncm91cC1taW4td2lkdGg6ICRzbWFsbC1zcXVhcmUgKiA1NTtcbiRkZXZpY2UtZ3JvdXAtbWF4LXdpZHRoOiAkc21hbGwtc3F1YXJlICogMTQwO1xuJGRldmljZS1ncm91cC1tYXJnaW4tdG9wOiAkc2VhcmNoLWJhci1oZWlnaHQ7XG4kZGV2aWNlLWdyb3VwLWJ1dHRvbi13aWR0aDogJGxhcmdlLXNxdWFyZSAqIDIxO1xuJGRldmljZS1ncm91cC1idXR0b24taGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTE7XG4kZGV2aWNlLWdyb3VwLWJ1dHRvbi1ib3JkZXI6IDFweCBzb2xpZCBocmEtY29sb3IoJGdyZXksIDIwKTtcblxuLypcbiAqIEJvcmRlciBzZXR0aW5nc1xuICovXG5cbiRib3JkZXItYmFzZTogMXB4IHNvbGlkIHJnYigyMDQsIDIwNCwgMjA0KTtcbiRib3JkZXItcmFkaXVzLXNtYWxsOiAzcHg7XG4kYm9yZGVyLXJhZGl1cy1iYXNlOiA0cHg7XG4kYm9yZGVyLXJhZGl1cy1sYXJnZTogNnB4O1xuXG4vKlxuICogU2hhZG93cyBnbyBieSBsZXZlbFxuICovXG5cbiRzaGFkb3c6IDAgM3B4IDlweCByZ2JhKDAsIDAsIDAsIC41KTtcbiRzaGFkb3ctMTogMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiRzaGFkb3ctc21hbGw6IDAgMXB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xuJHNoYWRvdy1oZWFkZXI6IDBweCAxcHggMTNweCAycHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1zZWFyY2gtaGVhZGVyOiA4cHggMXB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctbGlnaHQ6IDFweCAxcHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiRzaGFkb3ctbGlnaHQtYm90dG9tLW9ubHk6IDBweCAxcHggOHB4IHJnYmEoJGJsYWNrLCAwLjEzKTtcbiRzaGFkb3ctYWJvdmU6IDAgLTFweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWFib3ZlLWxlZnQ6IC02cHggMHB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctYmVsb3c6IDBweCA5cHggOHB4IC01cHggcmdiYSgxNTgsIDE1OCwgMTU4LCAwLjI1KTtcbiRzaGFkb3ctZHJvcGRvd246IDAgMXB4IDEzcHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1kaWFsb2c6IDAgOHB4IDIwcHggNnB4IHJnYmEoJGJsYWNrLCAwLjYpO1xuJHNoYWRvdy1kaWFsb2ctc3VmZml4OiAwcHggMTZweCAyMHB4IDNweCByZ2JhKCRibGFjaywgMC42KTtcbiRzaGFkb3ctbGF5b3V0OiA2cHggMHB4IDlweCAwcHggcmdiYSgkYmxhY2ssIDAuMik7XG4kc2hhZG93LXNhdmVkLXNlYXJjaGVzOiA0cHggNHB4IDhweCAtMnB4IHJnYmEoNjcsNzAsNzQsLjEzKTtcbiRzaGFkb3ctY2hhcnQtY2FyZDogMCA2cHggMTZweCByZ2JhKDIwLDMwLDM3LDAuMDgpO1xuJHNoYWRvdy1jb25maWctY2FyZDogMCAwIDI0cHggMCByZ2JhKDIwLDMwLDM3LDAuMSk7XG5cbi8qXG4gKiBQYWRkaW5nIHNldHRpbmdzXG4gKi9cblxuJGJvZHktcGFkZGluZzogJGxhcmdlLXNxdWFyZSAqIDI7XG4kcGFkZGluZy1zbWFsbDogJGxhcmdlLXNxdWFyZTtcbiRiYXNlLXBhZGRpbmc6ICRzbWFsbC1zcXVhcmUgKiA0OyAvLyAxNnB4XG4kaGFsZi1iYXNlLXBhZGRpbmc6ICRiYXNlLXBhZGRpbmcgLyAyO1xuJG1vZGFsLXBhZGRpbmc6ICRiYXNlLXBhZGRpbmc7XG4kbGF5b3V0LXBhZGRpbmc6ICgkYmFzZS1wYWRkaW5nICogMikgKCRib2R5LXBhZGRpbmcgKiAyKSAoJGJhc2UtcGFkZGluZyAqIDIpICgkYm9keS1wYWRkaW5nICogMik7XG4kcGFkZGluZy1iYXNlLXZlcnRpY2FsOiA2cHg7XG4kcGFkZGluZy1iYXNlLWhvcml6b250YWw6ICRzbWFsbC1zcXVhcmUgKiAzO1xuJHBhZGRpbmctbGFyZ2UtdmVydGljYWw6IDEwcHg7XG4kcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsOiAgJHNtYWxsLXNxdWFyZSAqIDQ7XG4kcGFkZGluZy1tZWRpdW0tdmVydGljYWw6IDE0cHg7XG4kcGFkZGluZy1zbWFsbC12ZXJ0aWNhbDogNXB4O1xuJHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDogMTBweDtcblxuLypcbiAqIElucHV0c1xuICovXG4kaW5wdXQtcGFkZGluZzogJHNtYWxsLXNxdWFyZSAkc21hbGwtc3F1YXJlICogMjtcbiRpbnB1dC1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA4O1xuXG4vKlxuICogVG9vbFRpcHNcbiAqL1xuXG4vLyBUb29sdGlwc1xuJHRvb2x0aXAtbWF4LXdpZHRoOiAyNTBweCAhZGVmYXVsdDtcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KSAhZGVmYXVsdDtcbiR0b29sdGlwLXRleHQtY29sb3I6ICNmZmYgIWRlZmF1bHQ7XG4kdG9vbHRpcC1kZWxheTogMC40cyAhZGVmYXVsdDtcbiR0b29sdGlwLWR1cmF0aW9uOiAwLjFzICFkZWZhdWx0O1xuXG4vKlxuICogQWN0aW9uIGJhciBzaXplc1xuICovXG5cbiRkZXZpY2UtYWN0aW9uLWJhci1oZWlnaHQ6ICRsYXJnZS1zcXVhcmUgKiA1O1xuJGNvdW50LWNvbnRhaW5lci1wYWRkaW5nOiAoJGxhcmdlLXNxdWFyZSAqIDIpICgkc21hbGwtc3F1YXJlICogNCkgKCRsYXJnZS1zcXVhcmUgKiAyKSAoJHNtYWxsLXNxdWFyZSAqIDQpO1xuXG4vKipcbiogIERldmljZSBncmlkIHNpemVzXG4qL1xuXG4kcm93LWFib3ZlLWdyaWQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTQ7XG4kY2hlY2stY2VsbC1wYWRkaW5nOiAwIDAgMCAkc21hbGwtc3F1YXJlKjI7XG4kZGV2aWNlLWdyaWQtbWluLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDcxO1xuXG4vKlxuICogRm9jdXMgYm9yZGVyXG4gKi9cblxuJGhyYS1mb2N1cy1vdXRsaW5lOiAycHggc29saWQgaHJhLWNvbG9yKCRjeWFuKTtcblxuLypcbiAqIEJvcmRlclxuICovXG5cbiRocmEtYm9yZGVyOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCAyMCk7XG4kaHJhLWJvcmRlci1lcnJvcjogMXB4IHNvbGlkIGhyYS1jb2xvcigkcmVkKTtcbiRocmEtYm9yZGVyLWlucHV0LWRpc2FibGVkOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCA0MCk7XG5cblxuLypcbiAqIFBvcC11cFxuKi9cbiRocmEtcG9wdXAtYmVhay1zaXplOiAkc21hbGwtc3F1YXJlKjM7XG4kaHJhLXBvcHVwLWJlYWstYm90dG9tLWNlbnRlcjogY2FsYyg1MCUgLSAoMS4yNXJlbSAvIDIpKTtcbiRwb3AtdXAtZm9vdGVyLWhlaWdodDogJGxhcmdlLXNxdWFyZSAqIDU7XG4kcG9wLXVwLXRpdGxlLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDEzO1xuJHBvcC11cC10aXRsZS1tYWpvci1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxNDtcbi8vIHN0eWxlZ3VpZGU6aWdub3JlOmVuZFxuXG4vKlxuKiBTdGF0dXMgTm90aWZpY2F0aW9uXG4qL1xuJGhyYS1zdGF0dXMtbm90aWZpY2F0aW9uLXdpZHRoOiAkc21hbGwtc3F1YXJlICogODM7XG4kaHJhLXN0YXR1cy1ub3RpZmljYXRpb24tdG9wOiAkc21hbGwtc3F1YXJlICogMTQ7XG4kaHJhLXN0YXR1cy1ub3RpZmljYXRpb24tYm90dG9tOiAkc21hbGwtc3F1YXJlICogMTU7XG5cblxuLypcbiAgUm91bmQgYnV0dG9uIHNpemVzXG4gKi9cbiAkcm91bmQtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiA3O1xuICRyb3VuZC1tZWRpdW06ICRzbWFsbC1zcXVhcmUgKiA4O1xuICRyb3VuZC1sYXJnZTogJHNtYWxsLXNxdWFyZSAqIDk7XG5cbi8qXG4gKiBJbWFnZSBJY29uIFNpemVzXG4gKi9cblxuJGltZy1pY29uLXNpemUtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiA4O1xuJGltZy1pY29uLXNpemUtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogMTA7XG5cblxuJGJlemllcjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcblxuXG4vKiogTW9kYWwgc2l6ZXMgKiovXG4kbW9kYWwtdGl0bGUtaGVpZ2h0OiByZW0tY2FsYyg1Mik7XG4kbW9kYWwtZm9vdGVyLWhlaWdodDogcmVtLWNhbGMoNjApO1xuIiwiQGltcG9ydCBcIi4uLy4uLy4uL3N0eWxlcy9iYXNlL3NldHRpbmdzXCI7XG5cbi5mb290ZXIge1xuICBwYWRkaW5nOiAkc21hbGwtc3F1YXJlICogNiAwO1xuICBmb250LXNpemU6ICRmb250LXNpemUtbWVkaXVtO1xuICAvLyBoZWlnaHQ6IDEwMCU7XG4gIC8vIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGhyYS1jb3B5cmlnaHQge1xuICAgIC5jb3B5cmlnaHQge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIGhye1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZmQyNjk7XG4gIH1cbn1cbiJdfQ== */\"","import { Component, Input } from '@angular/core';\nimport { AuthenticationService } from 'src/app/services/authentication.service';\nimport { UserToken } from 'src/app/models/UserToken';\n@Component({\n // tslint:disable-next-line: component-selector\n selector: 'hra-footer',\n templateUrl: './footer.ctrl.html',\n styleUrls: ['./footer.ctrl.scss']\n})\n// tslint:disable-next-line: component-class-suffix\nexport class FooterControl {\n @Input()\n showFooter: false;\n\n currentUser: UserToken;\n constructor(\n private authenticationService: AuthenticationService) {\n this.authenticationService.currentUser.subscribe(x => {\n this.currentUser = x;\n });\n }\n}\n","export default \"/*\\nHigh DPI screens (retina macbooks, highresolution laptops, etc)\\n*/\\n/* Firefox specific styles go here */\\n/*\\nCOMMON COLOR NAMES\\n\\nThese colors are mapped to the names from the official colors.\\nInstead of having names like `crush` or `blaze`, developers will use their common, non-marketized name.\\neg. $red: crush\\n $orange: blaze\\n\\nThen, use the `hra-color` function to get the color\\neg. color: hra-color($red)\\n*/\\n/* **** */\\n/* * Charts Colors */\\n/* info text background */\\n/* Use following classes for aesthetics only - New UI KIT */\\n/* Color Mapping*/\\n/*ends*/\\n/* Used for grids and margins */\\n/*\\n font sizes\\n */\\n/*\\n * Header size\\n */\\n/*\\n * Device Group settings\\n */\\n/*\\n * Border settings\\n */\\n/*\\n * Shadows go by level\\n */\\n/*\\n * Padding settings\\n */\\n/*\\n * Inputs\\n */\\n/*\\n * ToolTips\\n */\\n/*\\n * Action bar sizes\\n */\\n/**\\n* Device grid sizes\\n*/\\n/*\\n * Focus border\\n */\\n/*\\n * Border\\n */\\n/*\\n * Pop-up\\n*/\\n/*\\n* Status Notification\\n*/\\n/*\\n Round button sizes\\n */\\n/*\\n * Image Icon Sizes\\n */\\n/** Modal sizes **/\\n:host {\\n display: flex;\\n flex-flow: column nowrap;\\n justify-content: space-between;\\n height: 100%;\\n width: 100%;\\n padding: 2rem 3rem 2rem 3rem;\\n position: relative;\\n background-image: url('splash-background.jpg?0c651236');\\n background-color: #32b6e9;\\n background-size: cover;\\n background-repeat: no-repeat;\\n background-position: top right;\\n color: blaze;\\n margin-top: -6rem; }\\n.hero-logo hra-logo {\\n color: blaze; }\\n.hero-logo .hero-text {\\n position: relative;\\n top: 10.5rem;\\n text-transform: uppercase; }\\n.hero-logo .hero-text span {\\n display: block;\\n line-height: 3rem;\\n font-size: 2rem; }\\n.hero-logo .hero-text span.hero-tagline {\\n font-weight: 300; }\\n.hero-logo .hero-text span:nth-child(2n) {\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n font-size: 5.25rem; }\\n.hero-logo .hero-text span:first-child {\\n line-height: 2rem;\\n font-size: 28px; }\\n.hero-logo .hero-text span:last-child {\\n font-weight: 300; }\\n@media only screen and (min-width: 1025px) and (max-width: 1280px) {\\n .hero-logo .hero-text span {\\n font-size: 1.25rem;\\n line-height: 2rem; }\\n .hero-logo .hero-text span:nth-child(2n) {\\n font-size: 4.375rem; }\\n .hero-logo .hero-text span:first-child {\\n font-size: 1.25rem; } }\\n.hero-icon {\\n margin-left: -0.25rem; }\\n@media only screen and (min-width: 268px) and (max-width: 1024px) {\\n .hero-footer {\\n display: none; } }\\n.hero-footer hra-copyright {\\n position: absolute;\\n bottom: -2rem; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21lZGlhcXVlcmllcy5zY3NzIiwic3JjL2FwcC9zaGFyZWQvY29udHJvbHMvbGF5b3V0L2hlcm8taW1hZ2UvaGVyby1pbWFnZS5jdHJsLnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvc2hhcmVkL3N0eWxlcy9iYXNlL19taXhpbnMuc2NzcyIsIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX2NvbG9ycy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9zdHlsZXMvYmFzZS9fc2V0dGluZ3Muc2NzcyIsIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvY29udHJvbHMvbGF5b3V0L2hlcm8taW1hZ2UvaGVyby1pbWFnZS5jdHJsLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEJBOztDQzVCQztBQzBLRCxvQ0FBQTtBQzVLQTs7Ozs7Ozs7OztDRmNDO0FFK0RELFNBQUE7QUFVQSxvQkFBQTtBQUtBLHlCQUFBO0FBSUEsMkRBQUE7QUFFQSxpQkFBQTtBQW9CQSxPQUFBO0FDbkhBLCtCQUFBO0FBaUJBOztFSElFO0FHbUJGOztFSGhCRTtBRzhCRjs7RUgzQkU7QUd5Q0Y7O0VIdENFO0FHK0NGOztFSDVDRTtBR2tFRjs7RUgvREU7QUdpRkY7O0VIOUVFO0FHb0ZGOztFSGpGRTtBRzRGRjs7RUh6RkU7QUdnR0Y7O0NIN0ZDO0FHcUdEOztFSGxHRTtBR3dHRjs7RUhyR0U7QUc4R0Y7O0NIM0dDO0FHcUhEOztDSGxIQztBRzBIRDs7RUh2SEU7QUc4SEY7O0VIM0hFO0FHc0lGLGtCQUFBO0FDek1BO0VBQ0UsYUFBYTtFQUNiLHdCQUF3QjtFQUN4Qiw4QkFBOEI7RUFDOUIsWUFBWTtFQUNaLFdBQVc7RUFDWCw0QkR1RzhGO0VDdEc5RixrQkFBa0I7RUFDbEIsdURBQWlGO0VBQ2pGLHlCRndCdUU7RUV2QnZFLHNCQUFzQjtFQUN0Qiw0QkFBNEI7RUFDNUIsOEJBQThCO0VBQzlCLFlGR1k7RUVGWixpQkFBOEIsRUFBQTtBQUtoQztFQUVJLFlGTFUsRUFBQTtBRUdkO0VBTUksa0JBQWtCO0VBQ2xCLFlBQXVCO0VBQ3ZCLHlCQUF5QixFQUFBO0FBUjdCO0lBVU0sY0FBYztJQUNkLGlCQUE4QjtJQUM5QixlQWR1QixFQUFBO0FBRTdCO01BY1EsZ0JEQ2UsRUFBQTtBQ2Z2QjtNQWlCUSxtQkFBOEI7TUFDOUIsc0JBQWlDO01BQ2pDLGtCRFpzQyxFQUFBO0FDUDlDO01Bc0JRLGlCQUE4QjtNQUM5QixlQUFlLEVBQUE7QUF2QnZCO01BMEJRLGdCRFhlLEVBQUE7QUpackI7SUtIRjtNQWdDWSxrQkhtQjZDO01HbEI3QyxpQkhrQjZDLEVBQUE7TUduRHpEO1FBbUNjLG1CSGdCMkMsRUFBQTtNR25EekQ7UUFzQ2Msa0JIYTJDLEVBQUEsRUdaNUM7QUFNYjtFQUNFLHFCQUErQixFQUFBO0FMM0MvQjtFSytDRjtJQUVJLGFBQWEsRUFBQSxFQU1oQjtBQVJEO0VBS0ksa0JBQWtCO0VBQ2xCLGFBQW1DLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9zaGFyZWQvY29udHJvbHMvbGF5b3V0L2hlcm8taW1hZ2UvaGVyby1pbWFnZS5jdHJsLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAgQXV0aG9yOiBSYWZhbCBCcm9taXJza2lcbi8vICB3d3c6IGh0dHA6Ly9yYWZhbGJyb21pcnNraS5jb20vXG4vLyAgZ2l0aHViOiBodHRwOi8vZ2l0aHViLmNvbS9wYXJhbm9pZGEvc2Fzcy1tZWRpYXF1ZXJpZXNcbi8vXG4vLyAgTGljZW5zZWQgdW5kZXIgYSBNSVQgTGljZW5zZVxuLy9cbi8vICBWZXJzaW9uOlxuLy8gIDEuNi4xXG4vLyAtLS0gZ2VuZXJhdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIG1xKCRhcmdzLi4uKSB7XG4gICRtZWRpYS10eXBlOiAnb25seSBzY3JlZW4nO1xuICAkbWVkaWEtdHlwZS1rZXk6ICdtZWRpYS10eXBlJztcbiAgJGFyZ3M6IGtleXdvcmRzKCRhcmdzKTtcbiAgJGV4cHI6ICcnO1xuICBAaWYgbWFwLWhhcy1rZXkoJGFyZ3MsICRtZWRpYS10eXBlLWtleSkge1xuICAgICRtZWRpYS10eXBlOiBtYXAtZ2V0KCRhcmdzLCAkbWVkaWEtdHlwZS1rZXkpO1xuICAgICRhcmdzOiBtYXAtcmVtb3ZlKCRhcmdzLCAkbWVkaWEtdHlwZS1rZXkpO1xuICB9XG4gIEBlYWNoICRrZXksXG4gICR2YWx1ZSBpbiAkYXJncyB7XG4gICAgQGlmICR2YWx1ZSB7XG4gICAgICAkZXhwcjogXCIjeyRleHByfSBhbmQgKCN7JGtleX06ICN7JHZhbHVlfSlcIjtcbiAgICB9XG4gIH1cbiAgQG1lZGlhICN7JG1lZGlhLXR5cGV9ICN7JGV4cHJ9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5cbi8qXG5IaWdoIERQSSBzY3JlZW5zIChyZXRpbmEgbWFjYm9va3MsIGhpZ2hyZXNvbHV0aW9uIGxhcHRvcHMsIGV0YylcbiovXG5cbkBtaXhpbiBoZHBpKCRyYXRpbzogMS4zKSB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSwgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogI3tyb3VuZCgkcmF0aW8qOTYpfWRwaSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vICRvcmllbnRhdGlvbjogbGFuZHNjYXBlIHwgcG9ydHJhaXRcbkBtaXhpbiB0YWJsZXQoJG9yaWVudGF0aW9uOiBmYWxzZSkge1xuICAkbWluOiAyNjhweDtcbiAgJG1heDogMTAyNHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCwgJG9yaWVudGF0aW9uOiAkb3JpZW50YXRpb24pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBzbWFsbCBkZXNrdG9wIC0gMTAyNSA8LT4gMTI4MFxuQG1peGluIHNtYWxsLWRlc2t0b3AoKSB7XG4gICRtaW46IDEwMjVweDtcbiAgJG1heDogMTI4MHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIG1lZGl1bSBkZXNrdG9wIC0gMTI4MSA8LT4gMTQ0MFxuQG1peGluIG1lZGl1bS1kZXNrdG9wKCkge1xuICAkbWluOiAxMjgxcHg7XG4gICRtYXg6IDE0NDBweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBsYXJnZSBkZXNrdG9wIC0gMTQ0MSA8LT4gMTYwMFxuQG1peGluIGxhcmdlLWRlc2t0b3AoKSB7XG4gICRtaW46IDE0NDFweDtcbiAgJG1heDogMTYwMHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIHhsYXJnZSBkZXNrdG9wIC0gMTYwMSAtPiBpbmZpbml0eVxuQG1peGluIHhsYXJnZS1kZXNrdG9wKCkge1xuICAkbWluOiAxNjAxcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gZGVza3RvcCBvdmVybGF5XG5AbWl4aW4gZGVza3RvcC1vdmVybGF5KCkge1xuICAgICRtaW46IDI2OHB4O1xuICAgICRtYXg6IDkyNnB4O1xuICAgIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cbiIsIi8qXG5IaWdoIERQSSBzY3JlZW5zIChyZXRpbmEgbWFjYm9va3MsIGhpZ2hyZXNvbHV0aW9uIGxhcHRvcHMsIGV0YylcbiovXG4vKiBGaXJlZm94IHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG4vKlxuQ09NTU9OIENPTE9SIE5BTUVTXG5cblRoZXNlIGNvbG9ycyBhcmUgbWFwcGVkIHRvIHRoZSBuYW1lcyBmcm9tIHRoZSBvZmZpY2lhbCBjb2xvcnMuXG5JbnN0ZWFkIG9mIGhhdmluZyBuYW1lcyBsaWtlIGBjcnVzaGAgb3IgYGJsYXplYCwgZGV2ZWxvcGVycyB3aWxsIHVzZSB0aGVpciBjb21tb24sIG5vbi1tYXJrZXRpemVkIG5hbWUuXG5lZy4gJHJlZDogY3J1c2hcbiAgICAkb3JhbmdlOiBibGF6ZVxuXG5UaGVuLCB1c2UgdGhlIGBocmEtY29sb3JgIGZ1bmN0aW9uIHRvIGdldCB0aGUgY29sb3JcbmVnLiBjb2xvcjogaHJhLWNvbG9yKCRyZWQpXG4qL1xuLyogKioqKiAqL1xuLyogKiBDaGFydHMgQ29sb3JzICovXG4vKiBpbmZvIHRleHQgYmFja2dyb3VuZCAqL1xuLyogVXNlIGZvbGxvd2luZyBjbGFzc2VzIGZvciBhZXN0aGV0aWNzIG9ubHkgLSBOZXcgVUkgS0lUICovXG4vKiBDb2xvciBNYXBwaW5nKi9cbi8qZW5kcyovXG4vKiBVc2VkIGZvciBncmlkcyBhbmQgbWFyZ2lucyAqL1xuLypcbiAgZm9udCBzaXplc1xuICovXG4vKlxuICogSGVhZGVyIHNpemVcbiAqL1xuLypcbiAqIERldmljZSBHcm91cCBzZXR0aW5nc1xuICovXG4vKlxuICogQm9yZGVyIHNldHRpbmdzXG4gKi9cbi8qXG4gKiBTaGFkb3dzIGdvIGJ5IGxldmVsXG4gKi9cbi8qXG4gKiBQYWRkaW5nIHNldHRpbmdzXG4gKi9cbi8qXG4gKiBJbnB1dHNcbiAqL1xuLypcbiAqIFRvb2xUaXBzXG4gKi9cbi8qXG4gKiBBY3Rpb24gYmFyIHNpemVzXG4gKi9cbi8qKlxuKiAgRGV2aWNlIGdyaWQgc2l6ZXNcbiovXG4vKlxuICogRm9jdXMgYm9yZGVyXG4gKi9cbi8qXG4gKiBCb3JkZXJcbiAqL1xuLypcbiAqIFBvcC11cFxuKi9cbi8qXG4qIFN0YXR1cyBOb3RpZmljYXRpb25cbiovXG4vKlxuICBSb3VuZCBidXR0b24gc2l6ZXNcbiAqL1xuLypcbiAqIEltYWdlIEljb24gU2l6ZXNcbiAqL1xuLyoqIE1vZGFsIHNpemVzICoqL1xuOmhvc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMnJlbSAzcmVtIDJyZW0gM3JlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi8uLi8uLi8uLi9hc3NldHMvaW1nL3NwbGFzaC1iYWNrZ3JvdW5kLmpwZz8wYzY1MTIzNlwiKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMyYjZlOTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIHJpZ2h0O1xuICBjb2xvcjogYmxhemU7XG4gIG1hcmdpbi10b3A6IC02cmVtOyB9XG5cbi5oZXJvLWxvZ28gaHJhLWxvZ28ge1xuICBjb2xvcjogYmxhemU7IH1cblxuLmhlcm8tbG9nbyAuaGVyby10ZXh0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDEwLjVyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLmhlcm8tbG9nbyAuaGVyby10ZXh0IHNwYW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xuICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuICAgIC5oZXJvLWxvZ28gLmhlcm8tdGV4dCBzcGFuLmhlcm8tdGFnbGluZSB7XG4gICAgICBmb250LXdlaWdodDogMzAwOyB9XG4gICAgLmhlcm8tbG9nbyAuaGVyby10ZXh0IHNwYW46bnRoLWNoaWxkKDJuKSB7XG4gICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgIGZvbnQtc2l6ZTogNS4yNXJlbTsgfVxuICAgIC5oZXJvLWxvZ28gLmhlcm8tdGV4dCBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICAgICAgZm9udC1zaXplOiAyOHB4OyB9XG4gICAgLmhlcm8tbG9nbyAuaGVyby10ZXh0IHNwYW46bGFzdC1jaGlsZCB7XG4gICAgICBmb250LXdlaWdodDogMzAwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNXB4KSBhbmQgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gICAgLmhlcm8tbG9nbyAuaGVyby10ZXh0IHNwYW4ge1xuICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDJyZW07IH1cbiAgICAgIC5oZXJvLWxvZ28gLmhlcm8tdGV4dCBzcGFuOm50aC1jaGlsZCgybikge1xuICAgICAgICBmb250LXNpemU6IDQuMzc1cmVtOyB9XG4gICAgICAuaGVyby1sb2dvIC5oZXJvLXRleHQgc3BhbjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfSB9XG5cbi5oZXJvLWljb24ge1xuICBtYXJnaW4tbGVmdDogLTAuMjVyZW07IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAyNjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuaGVyby1mb290ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uaGVyby1mb290ZXIgaHJhLWNvcHlyaWdodCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtMnJlbTsgfVxuIiwiQGltcG9ydCAnLi9tZWRpYXF1ZXJpZXMnO1xuXG4vLy8gLyBzdHlsZWd1aWRlOmlnbm9yZTpzdGFydFxuLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZT09bnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKT09JyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG4gIEBpZiAkY291bnQ9PTEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY291bnQge1xuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcbiAgfVxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKT09J3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG4gIC8vIFRoZW4gdGhlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBlbXNcbiAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxZW07XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsIHZhbHVlIHRvIG1hdGNoaW5nIHJlbSB2YWx1ZS4gKkFueSogdmFsdWUgcGFzc2VkLCByZWdhcmRsZXNzIG9mIHVuaXQsIGlzIGFzc3VtZWQgdG8gYmUgYSBwaXhlbCB2YWx1ZS4gQnkgZGVmYXVsdCwgdGhlIGJhc2UgcGl4ZWwgdmFsdWUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHJlbSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciBpbiByZW1zLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGhlIGJhc2UgcGl4ZWwgdmFsdWUuIHJlbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLlxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSAhPSdudW1iZXInIHtcbiAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkrJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0ncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XG4gIH1cbiAgLy8gVHVybiAwcmVtIGludG8gMFxuICBAaWYgJHZhbHVlPT0wcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vLyBBbmltYXRpb24ga2V5ZnJhbWVzIGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRhbmltYXRpb24tbmFtZSAtIE5hbWUgb2YgdGhlIGFuaW1hdGlvbi5cbkBtaXhpbiBrZXlmcmFtZXMoJGFuaW1hdGlvbi1uYW1lKSB7XG4gIEAtd2Via2l0LWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtbW96LWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtbXMta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1vLWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBrZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gQW5pbWF0aW9uIGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHIgLSBjc3MzIGFuaW1hdGlvbiBzcGVjLlxuQG1peGluIGFuaW1hdGlvbigkc3RyKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtbW96LWFuaW1hdGlvbjogI3skc3RyfTtcbiAgLW1zLWFuaW1hdGlvbjogI3skc3RyfTtcbiAgLW8tYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICBhbmltYXRpb246ICN7JHN0cn07XG59XG5cbi8vLyBCb3ggc2hhZG93IGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHIgLSBjc3MzIGJveC1zaGFkb3cgc3BlYy5cbkBtaXhpbiBib3gtc2hhZG93KCRzdHIpIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAjeyRzdHJ9O1xuICAtbW96LWJveC1zaGFkb3c6ICN7JHN0cn07XG4gIC1vLWJveC1zaGFkb3c6ICN7JHN0cn07XG4gIGJveC1zaGFkb3c6ICN7JHN0cn07XG59XG5cbi8vLyBncmFkaWVudCBhdXRvcHJlZml4ZXJcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIGdyYWRpZW50KCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgYmFja2dyb3VuZDogI3skY29sb3IxfTtcbiAgLyogRm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgZ3JhZGllbnRzICovXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBGb3IgU2FmYXJpIDUuMSB0byA2LjAgKi9cbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBGb3IgT3BlcmEgMTEuMSB0byAxMi4wICovXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBGb3IgRmlyZWZveCAzLjYgdG8gMTUgKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCN7JGNvbG9yMX0sICN7JGNvbG9yMn0pO1xuICAvKiBTdGFuZGFyZCBzeW50YXggKi9cbn1cblxuQG1peGluIHZlcnRpY2FsLWdyYWRpZW50LWRpdmlkZXIoKXtcbiAgd2lkdGg6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAxcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIGhyYS1jb2xvcigkZ3JleSwgMjApLCAkd2hpdGUpO1xufVxuXG5cbi8vLyBJRSBvbmx5IHF1ZXJ5XG5AbWl4aW4gaWUtb25seSgpIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcbiAgICAvKiBJRTEwKyBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuQG1peGluIGNyZWF0ZS1hbmltYXRpb24oJGFuaS1uYW1lKSB7XG4gIGFuaW1hdGlvbjogJGFuaS1uYW1lIGZvcndhcmRzIDMwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG5cbkBtaXhpbiBjcmVhdGUtdHJhbnNpdGlvbigkcHJvcGVydHktbmFtZSkge1xuICB0cmFuc2l0aW9uOiAkcHJvcGVydHktbmFtZSAzMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuLy8vIEVkZ2Ugb25seSBxdWVyeVxuQG1peGluIGVkZ2Utb25seSgpIHtcbiAgQHN1cHBvcnRzICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgLyogRWRnZSBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuLyogRmlyZWZveCBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuQG1peGluIGZpcmVmb3gtb25seSgpIHtcbiAgQHN1cHBvcnRzICgtbW96LWFwcGVhcmFuY2U6bm9uZSkge1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuXG4vLyBzdHlsZWd1aWRlOmlnbm9yZTplbmQiLCIvKlxuQ09NTU9OIENPTE9SIE5BTUVTXG5cblRoZXNlIGNvbG9ycyBhcmUgbWFwcGVkIHRvIHRoZSBuYW1lcyBmcm9tIHRoZSBvZmZpY2lhbCBjb2xvcnMuXG5JbnN0ZWFkIG9mIGhhdmluZyBuYW1lcyBsaWtlIGBjcnVzaGAgb3IgYGJsYXplYCwgZGV2ZWxvcGVycyB3aWxsIHVzZSB0aGVpciBjb21tb24sIG5vbi1tYXJrZXRpemVkIG5hbWUuXG5lZy4gJHJlZDogY3J1c2hcbiAgICAkb3JhbmdlOiBibGF6ZVxuXG5UaGVuLCB1c2UgdGhlIGBocmEtY29sb3JgIGZ1bmN0aW9uIHRvIGdldCB0aGUgY29sb3JcbmVnLiBjb2xvcjogaHJhLWNvbG9yKCRyZWQpXG4qL1xuXG4kdGhlbWUtZ3JlZW46ICNkZmQyNjk7XG4kdGhlbWUtY29sb3I6ICR0aGVtZS1ncmVlbjtcbiRibHVlOiBibHVlO1xuJGN5YW46IGN5YW47XG4kZ3JleTogZ3JleTtcbiRyZWQ6IGNydXNoO1xuJG9yYW5nZTogYmxhemU7XG4keWVsbG93OiBzdW5zZXQsIDYwO1xuJGdyZWVuOiBzZWFmb2FtO1xuJGxpZ2h0LWdyZWVuOiBzZWF3ZWVkO1xuJGRhcmstZ3JlZW46IG1hcmluZTtcbiRicm93bjogYnJvd247XG4kcHVycGxlOiBwdXJwbGU7XG4kc3Vuc2V0OiBzdW5zZXQ7XG4kcGluazogcGluaztcblxuJG5ld2dyZXk6IG5ld2dyZXk7XG4kbmV3Ymx1ZTogbmV3Ymx1ZTtcbiRuZXdjeWFuOiBuZXdjeWFuO1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gaG1hJ3MgQ29sb3VyIFBhbGV0dGVcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiRjb2xvcnM6IChcbiAgICBibHVlOiAoNTogI2YzZmJmZSwgMTA6ICNlMmY0ZmIsIDIwOiAjYmFlNWY1LCA0MDogIzcxYzhmMSwgNjA6ICMzMmI2ZTksIDgwOiAjMDA5OWQzLCAxMDA6ICMwMDc0YWEsIDEyMDogIzA2NGM3YyksXG4gICAgY3J1c2g6ICg1OiAjZmZmN2Y2LCAxMDogI2ZlZjBlZCwgMjA6ICNmZGRmZGMsIDQwOiAjZmFjMWJhLCA2MDogI2Y0ODI3MiwgODA6ICNmMTYxNGYsIDEwMDogI2UzMjcyMiwgMTEwOiNjMTNmMmIsIDEyMDogI2E3MWUyMiksXG4gICAgY3lhbjogKDU6ICNmMmY5ZjksIDEwOiAjZTZmNGY0LCAyMDogI2NjZWFlYSwgNDA6ICM5YWQ3ZDYsIDYwOiAjNjhjNWM0LCA4MDogIzM2YjFiMCwgMTAwOiAjMDI5ZjlkLCAxMjA6ICMwMjZmNmYpLFxuICAgIGJsYXplOiAoNTogI2ZmZjdmMywgMTA6ICNmZmYxZTksIDIwOiAjZmNlMWQzLCA0MDogI2ZjYzVhNywgNjA6ICNmN2E3N2IsIDgwOiAjZjY4OTRkLCAxMDA6ICNmMjZiMjEsIDEyMDogI2I3M2UyNSksXG4gICAgZ3JleTogKDU6ICNmYWZiZmIsIDEwOiAjZWNlZmYwLCAyMDogI2U0ZTdlOSwgNDA6ICNhOGIyYjcsIDYwOiAjODI4ZDkzLCA4MDogIzVCNjY3MCwgMTAwOiAjM2Q0NjRkLCAxMjA6ICMxNDFlMjUpLFxuICAgIHNlYWZvYW06ICg1OiAjZWZmOWY4LCAxMDogI2U0ZjdmMywgMjA6ICNjZmVkZTgsIDQwOiAjYTVlYWRiLCA2MDogIzYxZDZiOCwgODA6ICMyZmQyYTgsIDEwMDogIzFlYWQ4YSwgMTIwOiAjMGI3MDVkKSxcbiAgICBzZWF3ZWVkOiAoNTogI2Y4ZmJmNiwgMTA6ICNmMmY4ZWQsIDIwOiAjZTNmMGQ5LCA0MDogI2NiZTRiNSwgNjA6ICNiMGQ3OGUsIDgwOiAjOTVjYjZhLCAxMDA6ICM3YWMxNDIsIDEyMDogIzQ5OTE0MiksXG4gICAgbWFyaW5lOiAoNTogI2Y3ZjlmMywgMTA6ICNmMWY0ZTgsIDIwOiAjZTRlYWQyLCA0MDogI2NiZDlhNywgNjA6ICNiZmRiODUsIDgwOiAjYWVkMjU1LCAxMDA6ICM3YWExM2UsIDEyMDogIzRjNzMzNiksXG4gICAgcGViYmxlOiAoNTogI2ZiZmNmYywgMTA6ICNmNWY2ZjYsIDIwOiAjZTllOGU5LCA0MDogI2Q1ZDRkNSwgNjA6ICNhYWFhYWIsIDgwOiAjN2M3YzgxLCAxMDA6ICM1NDUzNTUsIDEyMDogIzI4MjcyYiksXG4gICAgc3Vuc2V0OiAoNTogI2ZmZmRlZSwgMTA6ICNmZmZiZGIsIDIwOiAjZmRmN2I0LCA0MDogI2ZmZjU3ZSwgNjA6ICNmZmYxMDAsIDgwOiAjZmJhZDFjLCAxMDA6ICNmNDdmMWYsIDEyMDogI2M5NTQyOCksXG4gICAgYnJvd246ICg1OiAjZjdmNGYyLCAxMDogI2VhZTRlMSwgMjA6ICNkOGNlY2IsIDQwOiAjYmFhYmE1LCA2MDogIzk2ODM3YywgODA6ICM3NzVkNTMsIDEwMDogIzU5MzgyYywgMTIwOiAjMmYxODBkKSxcbiAgICBwdXJwbGU6ICg1OiAjZjJlZmY3LCAxMDogI2U4ZGZlZiwgMjA6ICNkN2M5ZTMsIDQwOiAjYzFhZWQ1LCA2MDogI2EwODViZSwgODA6ICM3YjYxYWEsIDEwMDogIzY2NGZhMSwgMTIwOiAjNDIyZTg1KSxcbiAgICBwaW5rOiAoNTogI2ZlZjRmOCwgMTA6ICNmY2U3ZWYsIDIwOiAjZmFkYWUxLCA0MDogI2Y0YTJjMiwgNjA6ICNlZDczYTQsIDgwOiAjZTk0NTg2LCAxMDA6ICNlMzE1NjcsIDEyMDogI2FiMWQ0MSksXG5cbiAgICAvLyBOZXcgVUkgS2l0IGNvbG9ycyAtIG5ldyBwcmVmaXggd2lsbCBiZSByZW1vdmVkIG9uY2UgdGhlIG1pZ3JhdGlvbiBpcyBjb21wbGV0ZWRcbiAgICAvLyBJdCBhbHNvIG1ha2VzIHN1cmUgdGhhdCBjb2xvciB2YXJpYWJsZXMgYXJlIHVzZWRcbiAgICBuZXdncmV5OiAoNTogI2ZjZmNmYywgMTA6ICNmN2Y3ZjcsIDIwOiAjZjJmMmYyLCA0MDogI2U5ZTllOSwgNTA6ICNjN2M3YzcsIDYwOiAjYTlhOWE5LCA3MDogIzgwODA4MCwgODA6ICM2YjZiNmIsMTAwOiAjNGI0YjRiLDEyMDojMjkyOTI5KSxcbiAgICBuZXdibHVlOiAoNTogI2YwZjZmYSwgMTA6ICNlMmVlZjUsIDIwOiAjYjhkNWU3LCA0MDogIzhlYmJkNywgNTA6ICM2OWExYzcsIDU1OiAjNGY4ZmJkLCA2NTogIzM4N2ViMywgNzA6ICMyZjcyYTgsIDgwOiAjMjU2Mjk3LCAxMDA6ICMxZDUyODUsIDEyMDogIzEwMzc2NiksXG4gICAgbmV3Y3lhbjogKDU6ICNmMGY2ZmEsIDEwOiAjZTJlZWY1LCAyMDogI2I4ZDVlNywgNDA6ICM4ZWJiZDcsIDUwOiAjNjlhMWM3LCA1NTogIzRmOGZiZCwgNjU6ICMzODdlYjMsIDEwMDogIzJmNzJhOCwgMTIwOiAjMjU2Mjk3LCAxNDA6ICMxZDUyODUsIDE2MDogIzEwMzc2NiksXG4pO1xuXG5AZnVuY3Rpb24gaHJhLWNvbG9yKCRjb2xvciwgJHZhbHVlOiAxMDApIHtcbiAgICAkc2VsZWN0ZWRDb2xvcjogJGNvbG9yO1xuXG4gICAgQGlmICh0eXBlLW9mKCRjb2xvcikgPT0gJ2xpc3QnKSB7XG4gICAgICAgICRzZWxlY3RlZENvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgICAgICAgJHZhbHVlOiBudGgoJGNvbG9yLCAyKTtcbiAgICB9XG5cbiAgICAkY29sb3ItbWFwOiBtYXAtZ2V0KCRjb2xvcnMsICRzZWxlY3RlZENvbG9yKTtcbiAgICBAaWYgKCRjb2xvci1tYXAgPT0gbnVsbCkge1xuICAgICAgICBAZXJyb3IgJHNlbGVjdGVkQ29sb3IgKyAnIGlzIG5vdCBwYXJ0IG9mIHRoZSBjb2xvciBwYWxldHRlJztcbiAgICB9XG4gICAgQHJldHVybiBtYXAtZ2V0KCRjb2xvci1tYXAsICR2YWx1ZSk7XG59XG5cbiRibGFjazogaHJhLWNvbG9yKCRncmV5LCAxMjApO1xuJHdoaXRlOiByZ2IoMjU1LCAyNTUsIDI1NSk7XG4kY29sb3ItZ3JheS10cmFuc3BhcmVudDogdHJhbnNwYXJlbnRpemUoaHJhLWNvbG9yKCRncmV5KSwgMC44KTtcbiRob3Zlci1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCAyMCk7XG5cblxuLyogKioqKiAqL1xuJHN1Y2Nlc3MtY29sb3I6IGhyYS1jb2xvcigkZ3JlZW4pO1xuJHdhcm5pbmctY29sb3I6IGhyYS1jb2xvcigkeWVsbG93KTtcbiRhbGVydC1jb2xvcjogaHJhLWNvbG9yKCRyZWQpO1xuJGNvbG9yLWludmFsaWQ6IGhyYS1jb2xvcigkcmVkKTtcbiRkaXNhYmxlZC1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCAxMCk7XG4kZGlzYWJsZWQtYm9yZGVyOiBocmEtY29sb3IoJGdyZXksIDQwKTtcbiRjb2xvci1ocmEtYW5jaG9yOiBocmEtY29sb3IoJGJsdWUpO1xuJGRpc2FibGVkLWZvcmUtY29sb3I6IGhyYS1jb2xvcigkZ3JleSwgNDApO1xuXG4vKiAqIENoYXJ0cyBDb2xvcnMgKi9cbiRzdGFja2VkLXRvb2x0aXAtY2lyY2xlLWJnOiAjM2Y0MDQyO1xuJGNoYXJ0LXRvb2x0aXAtY2lyY2xlOiAjZmY4OTRjO1xuJGRvbnV0LWNvdW50OiAjZmY2YjU3O1xuXG4vKiBpbmZvIHRleHQgYmFja2dyb3VuZCAqL1xuJGluZm8tYmFja2dyb3VuZDogI2ZmZmRlNjtcblxuXG4vKiBVc2UgZm9sbG93aW5nIGNsYXNzZXMgZm9yIGFlc3RoZXRpY3Mgb25seSAtIE5ldyBVSSBLSVQgKi9cbi8vIFN0YW5kYXJkaXNlIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mIGRpcmVjdCBjb2xvcnNcbi8qIENvbG9yIE1hcHBpbmcqL1xuJHByaW1hcnktYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDcwKTtcbiRwcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCAxMDApO1xuJHByaW1hcnktdGV4dDokd2hpdGU7XG5cbiRkZWxldGUtYmFja2dyb3VuZDogaHJhLWNvbG9yKCRyZWQsIDExMCk7XG5cbiRzZWNvbmRhcnktdGV4dDpocmEtY29sb3IoJG5ld2JsdWUsIDU1KTtcbiRzZWNvbmRhcnktYmFja2dyb3VuZDokd2hpdGU7XG4kc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCA1KTtcbiRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2dyZXksIDUwKTtcbiRzZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQ6JHNlY29uZGFyeS10ZXh0O1xuXG4kZmxhdC1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA4MCk7XG4kZmxhdC1ob3ZlcjogaHJhLWNvbG9yKCRuZXdncmV5LCAxMDApO1xuJGZsYXQtZGlzYWJsZWQ6IGhyYS1jb2xvcigkbmV3Z3JleSwgNzApO1xuXG4kYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ6IGhyYS1jb2xvcigkbmV3Ymx1ZSwgODApO1xuJGFjdGlvbi1kaXNhYmxlZDogaHJhLWNvbG9yKCRuZXdncmV5LCA1NSk7XG4kYWN0aW9uLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCA1MCk7XG4vKmVuZHMqL1xuXG4kYnV0dG9uLXByaW1hcnktdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWJhY2tncm91bmQ7XG4kYnV0dG9uLXByaW1hcnktaG92ZXItYmFja2dyb3VuZC1jb2xvcjokcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1wcmltYXJ5LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRidXR0b24tZGVsZXRlLWJhY2tncm91bmQtY29sb3I6ICRkZWxldGUtYmFja2dyb3VuZDtcbiRidXR0b24tcHJpbWFyeS1kaXNhYmxlZC1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcblxuLy8gU2Vjb25kYXJ5IGJ1dHRvbnMgYW5kIHNlY29uZGFyeSBhY3Rpb24gYnV0dG9ucyBzaGFyZSBjb2xvcnMgXG4kYnV0dG9uLXNlY29uZGFyeS1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiRidXR0b24tc2Vjb25kYXJ5LXRleHQtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiRidXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWhvdmVyLXRleHQtY29sb3I6ICRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLXNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuXG4kYnV0dG9uLWZsYXQtYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4kYnV0dG9uLWZsYXQtY29sb3I6ICRmbGF0LWNvbG9yO1xuJGJ1dHRvbi1mbGF0LWhvdmVyLWNvbG9yOiRmbGF0LWhvdmVyO1xuJGJ1dHRvbi1mbGF0LWRpc2FibGVkLWNvbG9yOiAkZmxhdC1kaXNhYmxlZDtcblxuJGJ1dHRvbi1hY3Rpb24tYmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24tdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1hY3Rpb24taG92ZXItYmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24taG92ZXItdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1hY3Rpb24tZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24tZGlzYWJsZWQtdGV4dC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1hY3Rpb24tZGVsZXRlLWJhY2tncm91bmQtY29sb3I6JGRlbGV0ZS1iYWNrZ3JvdW5kO1xuXG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1kaXNhYmxlZC1jb2xvcjogJGFjdGlvbi1kaXNhYmxlZDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuXG4kdW5zZWxlY3RlZC1jaG9pY2UtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRzZWxlY3RlZC1jaG9pY2UtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcblxuJHJhZGlvLWxhYmVsLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kdG9nZ2xlLW9uLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcbiR0b2dnbGUtb2YtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJHRvZ2dsZS1oZWFkLWNvbG9yOiAkd2hpdGU7XG5cbiRpbnB1dC10ZXh0LWxhYmVsLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDEyMCk7XG4kaW5wdXQtdGV4dC1ib3JkZXItY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgNDApO1xuJGlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgNjApO1xuJGlucHV0LXRleHQtYWN0aXZlLWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA4MCk7XG4kaW5wdXQtdGV4dC1hY3RpdmUtdGV4dC1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCAxMjApO1xuJGlucHV0LXRleHQtZXJyb3ItYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJHJlZCwgMTEwKTtcbiRpbnB1dC10ZXh0LWRpc2FibGVkLWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA1MCk7XG4kaW5wdXQtdGV4dC1lcnJvci1tZXNzYWdlLWNvbG9yOiAkaW5wdXQtdGV4dC1lcnJvci1ib3JkZXItY29sb3I7XG4kaW5wdXQtdGV4dC1kaXNhYmxlZC1jb2xvcjogJGlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I7XG4kaW5wdXQtdGV4dC1sYWJlbC1kaXNhYmxlZC1jb2xvcjogJGlucHV0LXRleHQtYm9yZGVyLWNvbG9yO1xuJGlucHV0LXRleHQtZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LXRleHQtcGxhY2Vob2xkZXItY29sb3I7IiwiQGltcG9ydCAnbWl4aW5zJztcbkBpbXBvcnQgJ2NvbG9ycyc7XG5cbi8qIFVzZWQgZm9yIGdyaWRzIGFuZCBtYXJnaW5zICovXG5cbiRzbWFsbC1zaXplOiA0ICFkZWZhdWx0O1xuJGxhcmdlLXNpemU6IDEyICFkZWZhdWx0O1xuJHNtYWxsLXNxdWFyZTogcmVtLWNhbGMoJHNtYWxsLXNpemUpICFkZWZhdWx0O1xuJGxhcmdlLXNxdWFyZTogcmVtLWNhbGMoJGxhcmdlLXNpemUpICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWdyYXk6IHRyYW5zcGFyZW50aXplKGhyYS1jb2xvcigkZ3JleSwgNDApLCAwLjgpO1xuJHRyYW5zcGFyZW50LXdoaXRlOiB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIDAuNik7XG4kYW5pbWF0aW9uLXRpbWluZzogMC4yNXM7XG4kcmFkLWdyYWQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGNlbnRlciwgdHJhbnNwYXJlbnRpemUoaHJhLWNvbG9yKCRncmV5KSwgMC41KSA4MCUsIHRyYW5zcGFyZW50aXplKCRibGFjaywgMC41KSAxMDAlKTtcbiRsaW5lYXItZ3JhZDogcmdiYSgkYmxhY2ssIDAuNyk7XG5cbiRzY3JvbGwtYmFyLXdpZHRoOiAkc21hbGwtc3F1YXJlICogMjtcbiRzY3JvbGwtYmFyLXdpZHRoLWZpcmVmb3g6IHJlbS1jYWxjKDE3KTtcbiRzY3JvbGwtYmFyLXdpZHRoLWVkZ2U6IHJlbS1jYWxjKDE3KTtcbiRzY3JvbGwtYmFyLXdpZHRoLWllOiByZW0tY2FsYygxNyk7XG5cbi8qXG4gIGZvbnQgc2l6ZXNcbiAqL1xuJGljb24tZm9udC1zaXplLXNtYWxsOiAkc21hbGwtc3F1YXJlICogMyAhZGVmYXVsdDsgLy8gMTJweFxuJGljb24tZm9udC1zaXplLW1lZGl1bTogJHNtYWxsLXNxdWFyZSAqIDQgIWRlZmF1bHQ7IC8vIDE2cHhcbiRpY29uLWZvbnQtc2l6ZS1yZWd1bGFyOiAkc21hbGwtc3F1YXJlICogNSAhZGVmYXVsdDsgLy8gMjBweFxuJGljb24tZm9udC1zaXplLWxhcmdlOiAkc21hbGwtc3F1YXJlICogNjsgLy8gMjRweFxuJGljb24tZm9udC1zaXplLXgtbGFyZ2U6ICRzbWFsbC1zcXVhcmUgKiA3OyAvLyAyOHB4XG4kaWNvbi1mb250LXNpemUtcGxhY2Vob2xkZXI6ICRsYXJnZS1zcXVhcmUgKiA3O1xuJGZvbnQtc2l6ZTogJGljb24tZm9udC1zaXplLW1lZGl1bSAhZGVmYXVsdDsgLy8gMTNweFxuJGZvbnQtc2l6ZS1tZWRpdW06ICRpY29uLWZvbnQtc2l6ZS1tZWRpdW07IC8vMTZweFxuJGZvbnQtc2l6ZS1sYXJnZTogJGljb24tZm9udC1zaXplLXJlZ3VsYXI7XG4kZm9udC1zaXplLXgtbGFyZ2U6ICRpY29uLWZvbnQtc2l6ZS14LWxhcmdlO1xuJGZvbnQtc2l6ZS1oZWFkZXI6IDE0cHg7XG5cblxuJGZvbnQtd2VpZ2h0LWxpZ2h0OiAzMDA7IC8vIFNvdXJjZSBTYW5zIFBybyBMaWdodFxuJGZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDsgLy8gU291cmNlIFNhbnMgUHJvIExpZ2h0XG4kZm9udC13ZWlnaHQtc2VtaS1ib2xkOiA2MDA7IC8vIFNvdXJjZSBTYW5zIFBybyBTZW1pIEJvbGRcbiRmb250LXdlaWdodC1ib2xkOiA3MDA7IC8vIFNvdXJjZSBTYW5zIFBybyBCb2xkXG5cblxuXG4vKlxuICogSGVhZGVyIHNpemVcbiAqL1xuXG4kaGVhZGVyLWhlaWdodDogcmVtLWNhbGMoNTIpICFkZWZhdWx0O1xuJGhlYWRlci10ZXh0LWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDggIWRlZmF1bHQ7IC8vMzJweFxuJHN1Yi1uYXYtaGVpZ2h0OiAwcmVtICFkZWZhdWx0OyAvLyAwcHhcbiRzZWFyY2gtYmFyLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDE1ICFkZWZhdWx0O1xuLy8kcGFnaW5hdGlvbi1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAyNSAhZGVmYXVsdDtcbiRjaGFydHMtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogNzQgIWRlZmF1bHQ7XG4kbWFpbi1oZWFkZXItaGVpZ2h0OiAkaGVhZGVyLWhlaWdodCskc3ViLW5hdi1oZWlnaHQgIWRlZmF1bHQ7XG4kdmlydHVhbC1ncm91cC1pbmRpY2F0b3ItaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogNztcbiRoZWFkZXItc2lkZS1tYXJnaW46IHJlbS1jYWxjKDI0KTtcblxuLypcbiAqIERldmljZSBHcm91cCBzZXR0aW5nc1xuICovXG5cbiRkZXZpY2UtZ3JvdXAtcGFkZGluZy1sZWZ0OiAkc21hbGwtc3F1YXJlICogNjtcbiRkZXZpY2UtZ3JvdXAtaXRlbXMtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogOTtcbiRkZXZpY2UtZ3JvdXAtd2lkdGg6ICRsYXJnZS1zcXVhcmUgKiAyODtcbiRkZXZpY2UtZ3JvdXAtbWluLXdpZHRoOiAkc21hbGwtc3F1YXJlICogNTU7XG4kZGV2aWNlLWdyb3VwLW1heC13aWR0aDogJHNtYWxsLXNxdWFyZSAqIDE0MDtcbiRkZXZpY2UtZ3JvdXAtbWFyZ2luLXRvcDogJHNlYXJjaC1iYXItaGVpZ2h0O1xuJGRldmljZS1ncm91cC1idXR0b24td2lkdGg6ICRsYXJnZS1zcXVhcmUgKiAyMTtcbiRkZXZpY2UtZ3JvdXAtYnV0dG9uLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDExO1xuJGRldmljZS1ncm91cC1idXR0b24tYm9yZGVyOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCAyMCk7XG5cbi8qXG4gKiBCb3JkZXIgc2V0dGluZ3NcbiAqL1xuXG4kYm9yZGVyLWJhc2U6IDFweCBzb2xpZCByZ2IoMjA0LCAyMDQsIDIwNCk7XG4kYm9yZGVyLXJhZGl1cy1zbWFsbDogM3B4O1xuJGJvcmRlci1yYWRpdXMtYmFzZTogNHB4O1xuJGJvcmRlci1yYWRpdXMtbGFyZ2U6IDZweDtcblxuLypcbiAqIFNoYWRvd3MgZ28gYnkgbGV2ZWxcbiAqL1xuXG4kc2hhZG93OiAwIDNweCA5cHggcmdiYSgwLCAwLCAwLCAuNSk7XG4kc2hhZG93LTE6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4kc2hhZG93LXNtYWxsOiAwIDFweCA2cHggcmdiYSgwLCAwLCAwLCAwLjI0KTtcbiRzaGFkb3ctaGVhZGVyOiAwcHggMXB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctc2VhcmNoLWhlYWRlcjogOHB4IDFweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWxpZ2h0OiAxcHggMXB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4kc2hhZG93LWxpZ2h0LWJvdHRvbS1vbmx5OiAwcHggMXB4IDhweCByZ2JhKCRibGFjaywgMC4xMyk7XG4kc2hhZG93LWFib3ZlOiAwIC0xcHggMTNweCAycHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1hYm92ZS1sZWZ0OiAtNnB4IDBweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWJlbG93OiAwcHggOXB4IDhweCAtNXB4IHJnYmEoMTU4LCAxNTgsIDE1OCwgMC4yNSk7XG4kc2hhZG93LWRyb3Bkb3duOiAwIDFweCAxM3B4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctZGlhbG9nOiAwIDhweCAyMHB4IDZweCByZ2JhKCRibGFjaywgMC42KTtcbiRzaGFkb3ctZGlhbG9nLXN1ZmZpeDogMHB4IDE2cHggMjBweCAzcHggcmdiYSgkYmxhY2ssIDAuNik7XG4kc2hhZG93LWxheW91dDogNnB4IDBweCA5cHggMHB4IHJnYmEoJGJsYWNrLCAwLjIpO1xuJHNoYWRvdy1zYXZlZC1zZWFyY2hlczogNHB4IDRweCA4cHggLTJweCByZ2JhKDY3LDcwLDc0LC4xMyk7XG4kc2hhZG93LWNoYXJ0LWNhcmQ6IDAgNnB4IDE2cHggcmdiYSgyMCwzMCwzNywwLjA4KTtcbiRzaGFkb3ctY29uZmlnLWNhcmQ6IDAgMCAyNHB4IDAgcmdiYSgyMCwzMCwzNywwLjEpO1xuXG4vKlxuICogUGFkZGluZyBzZXR0aW5nc1xuICovXG5cbiRib2R5LXBhZGRpbmc6ICRsYXJnZS1zcXVhcmUgKiAyO1xuJHBhZGRpbmctc21hbGw6ICRsYXJnZS1zcXVhcmU7XG4kYmFzZS1wYWRkaW5nOiAkc21hbGwtc3F1YXJlICogNDsgLy8gMTZweFxuJGhhbGYtYmFzZS1wYWRkaW5nOiAkYmFzZS1wYWRkaW5nIC8gMjtcbiRtb2RhbC1wYWRkaW5nOiAkYmFzZS1wYWRkaW5nO1xuJGxheW91dC1wYWRkaW5nOiAoJGJhc2UtcGFkZGluZyAqIDIpICgkYm9keS1wYWRkaW5nICogMikgKCRiYXNlLXBhZGRpbmcgKiAyKSAoJGJvZHktcGFkZGluZyAqIDIpO1xuJHBhZGRpbmctYmFzZS12ZXJ0aWNhbDogNnB4O1xuJHBhZGRpbmctYmFzZS1ob3Jpem9udGFsOiAkc21hbGwtc3F1YXJlICogMztcbiRwYWRkaW5nLWxhcmdlLXZlcnRpY2FsOiAxMHB4O1xuJHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDogICRzbWFsbC1zcXVhcmUgKiA0O1xuJHBhZGRpbmctbWVkaXVtLXZlcnRpY2FsOiAxNHB4O1xuJHBhZGRpbmctc21hbGwtdmVydGljYWw6IDVweDtcbiRwYWRkaW5nLXNtYWxsLWhvcml6b250YWw6IDEwcHg7XG5cbi8qXG4gKiBJbnB1dHNcbiAqL1xuJGlucHV0LXBhZGRpbmc6ICRzbWFsbC1zcXVhcmUgJHNtYWxsLXNxdWFyZSAqIDI7XG4kaW5wdXQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogODtcblxuLypcbiAqIFRvb2xUaXBzXG4gKi9cblxuLy8gVG9vbHRpcHNcbiR0b29sdGlwLW1heC13aWR0aDogMjUwcHggIWRlZmF1bHQ7XG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCkgIWRlZmF1bHQ7XG4kdG9vbHRpcC10ZXh0LWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuJHRvb2x0aXAtZGVsYXk6IDAuNHMgIWRlZmF1bHQ7XG4kdG9vbHRpcC1kdXJhdGlvbjogMC4xcyAhZGVmYXVsdDtcblxuLypcbiAqIEFjdGlvbiBiYXIgc2l6ZXNcbiAqL1xuXG4kZGV2aWNlLWFjdGlvbi1iYXItaGVpZ2h0OiAkbGFyZ2Utc3F1YXJlICogNTtcbiRjb3VudC1jb250YWluZXItcGFkZGluZzogKCRsYXJnZS1zcXVhcmUgKiAyKSAoJHNtYWxsLXNxdWFyZSAqIDQpICgkbGFyZ2Utc3F1YXJlICogMikgKCRzbWFsbC1zcXVhcmUgKiA0KTtcblxuLyoqXG4qICBEZXZpY2UgZ3JpZCBzaXplc1xuKi9cblxuJHJvdy1hYm92ZS1ncmlkLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDE0O1xuJGNoZWNrLWNlbGwtcGFkZGluZzogMCAwIDAgJHNtYWxsLXNxdWFyZSoyO1xuJGRldmljZS1ncmlkLW1pbi1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3MTtcblxuLypcbiAqIEZvY3VzIGJvcmRlclxuICovXG5cbiRocmEtZm9jdXMtb3V0bGluZTogMnB4IHNvbGlkIGhyYS1jb2xvcigkY3lhbik7XG5cbi8qXG4gKiBCb3JkZXJcbiAqL1xuXG4kaHJhLWJvcmRlcjogMXB4IHNvbGlkIGhyYS1jb2xvcigkZ3JleSwgMjApO1xuJGhyYS1ib3JkZXItZXJyb3I6IDFweCBzb2xpZCBocmEtY29sb3IoJHJlZCk7XG4kaHJhLWJvcmRlci1pbnB1dC1kaXNhYmxlZDogMXB4IHNvbGlkIGhyYS1jb2xvcigkZ3JleSwgNDApO1xuXG5cbi8qXG4gKiBQb3AtdXBcbiovXG4kaHJhLXBvcHVwLWJlYWstc2l6ZTogJHNtYWxsLXNxdWFyZSozO1xuJGhyYS1wb3B1cC1iZWFrLWJvdHRvbS1jZW50ZXI6IGNhbGMoNTAlIC0gKDEuMjVyZW0gLyAyKSk7XG4kcG9wLXVwLWZvb3Rlci1oZWlnaHQ6ICRsYXJnZS1zcXVhcmUgKiA1O1xuJHBvcC11cC10aXRsZS1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxMztcbiRwb3AtdXAtdGl0bGUtbWFqb3ItaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTQ7XG4vLyBzdHlsZWd1aWRlOmlnbm9yZTplbmRcblxuLypcbiogU3RhdHVzIE5vdGlmaWNhdGlvblxuKi9cbiRocmEtc3RhdHVzLW5vdGlmaWNhdGlvbi13aWR0aDogJHNtYWxsLXNxdWFyZSAqIDgzO1xuJGhyYS1zdGF0dXMtbm90aWZpY2F0aW9uLXRvcDogJHNtYWxsLXNxdWFyZSAqIDE0O1xuJGhyYS1zdGF0dXMtbm90aWZpY2F0aW9uLWJvdHRvbTogJHNtYWxsLXNxdWFyZSAqIDE1O1xuXG5cbi8qXG4gIFJvdW5kIGJ1dHRvbiBzaXplc1xuICovXG4gJHJvdW5kLXNtYWxsOiAkc21hbGwtc3F1YXJlICogNztcbiAkcm91bmQtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogODtcbiAkcm91bmQtbGFyZ2U6ICRzbWFsbC1zcXVhcmUgKiA5O1xuXG4vKlxuICogSW1hZ2UgSWNvbiBTaXplc1xuICovXG5cbiRpbWctaWNvbi1zaXplLXNtYWxsOiAkc21hbGwtc3F1YXJlICogODtcbiRpbWctaWNvbi1zaXplLW1lZGl1bTogJHNtYWxsLXNxdWFyZSAqIDEwO1xuXG5cbiRiZXppZXI6IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG5cblxuLyoqIE1vZGFsIHNpemVzICoqL1xuJG1vZGFsLXRpdGxlLWhlaWdodDogcmVtLWNhbGMoNTIpO1xuJG1vZGFsLWZvb3Rlci1oZWlnaHQ6IHJlbS1jYWxjKDYwKTtcbiIsIkBpbXBvcnQgJy4uLy4uLy4uL3N0eWxlcy9iYXNlL3NldHRpbmdzJztcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogJGxheW91dC1wYWRkaW5nO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vLi4vLi4vLi4vYXNzZXRzL2ltZy9zcGxhc2gtYmFja2dyb3VuZC5qcGc/MGM2NTEyMzYnKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaHJhLWNvbG9yKCRibHVlLCA2MCk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCByaWdodDtcbiAgY29sb3I6ICRvcmFuZ2U7XG4gIG1hcmdpbi10b3A6IC0kbGFyZ2Utc3F1YXJlICogODtcbn1cblxuJGljb24tc2l6ZTogJHNtYWxsLXNxdWFyZSAqIDg7XG5cbi5oZXJvLWxvZ28ge1xuICBocmEtbG9nbyB7XG4gICAgY29sb3I6ICRvcmFuZ2U7XG4gIH1cblxuICAuaGVyby10ZXh0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAkbGFyZ2Utc3F1YXJlICogMTQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbGluZS1oZWlnaHQ6ICRsYXJnZS1zcXVhcmUgKiA0O1xuICAgICAgZm9udC1zaXplOiAkaWNvbi1zaXplO1xuICAgICAgJi5oZXJvLXRhZ2xpbmUge1xuICAgICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWxpZ2h0O1xuICAgICAgfVxuICAgICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgcGFkZGluZy10b3A6ICRzbWFsbC1zcXVhcmUgKiAyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHNtYWxsLXNxdWFyZSAqIDI7XG4gICAgICAgIGZvbnQtc2l6ZTogICRpY29uLWZvbnQtc2l6ZS1wbGFjZWhvbGRlcjtcbiAgICAgIH1cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBsaW5lLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDg7XG4gICAgICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICAgIH1cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbGlnaHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc21hbGwtZGVza3RvcCgpIHtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwcHgpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDMycHgpO1xuICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAgcmVtLWNhbGMoNzBweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5oZXJvLWljb24ge1xuICBtYXJnaW4tbGVmdDogLSN7JHNtYWxsLXNxdWFyZX07XG59XG5cblxuLmhlcm8tZm9vdGVyIHtcbiAgQGluY2x1ZGUgdGFibGV0KCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH0gIFxuICBocmEtY29weXJpZ2h0e1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IHJlbS1jYWxjKC0kc21hbGwtc3F1YXJlICogOCk7XG4gIH1cbn1cblxuXG4iXX0= */\"","import { Component } from '@angular/core';\n@Component({\n // tslint:disable-next-line: component-selector\n selector: 'hra-hero-image',\n templateUrl: './hero-image.ctrl.html',\n styleUrls: ['./hero-image.ctrl.scss']\n})\n\nexport class HeroImageControl { }\n","export default \"/*\\nHigh DPI screens (retina macbooks, highresolution laptops, etc)\\n*/\\n/* Firefox specific styles go here */\\n/*\\nCOMMON COLOR NAMES\\n\\nThese colors are mapped to the names from the official colors.\\nInstead of having names like `crush` or `blaze`, developers will use their common, non-marketized name.\\neg. $red: crush\\n $orange: blaze\\n\\nThen, use the `hra-color` function to get the color\\neg. color: hra-color($red)\\n*/\\n/* **** */\\n/* * Charts Colors */\\n/* info text background */\\n/* Use following classes for aesthetics only - New UI KIT */\\n/* Color Mapping*/\\n/*ends*/\\n/* Used for grids and margins */\\n/*\\n font sizes\\n */\\n/*\\n * Header size\\n */\\n/*\\n * Device Group settings\\n */\\n/*\\n * Border settings\\n */\\n/*\\n * Shadows go by level\\n */\\n/*\\n * Padding settings\\n */\\n/*\\n * Inputs\\n */\\n/*\\n * ToolTips\\n */\\n/*\\n * Action bar sizes\\n */\\n/**\\n* Device grid sizes\\n*/\\n/*\\n * Focus border\\n */\\n/*\\n * Border\\n */\\n/*\\n * Pop-up\\n*/\\n/*\\n* Status Notification\\n*/\\n/*\\n Round button sizes\\n */\\n/*\\n * Image Icon Sizes\\n */\\n/** Modal sizes **/\\n:host {\\n width: 100%;\\n padding-top: 13.75rem;\\n display: block; }\\n:host h1 {\\n color: #5B6670;\\n font-size: 3rem;\\n line-height: 3rem;\\n margin-top: 0.75rem; }\\n:host p {\\n font-size: 1rem;\\n line-height: 1.75rem;\\n margin-top: 0.75rem;\\n margin-bottom: 0.25rem; }\\n:host .form-error {\\n color: #e32722; }\\n:host form {\\n display: inline-block;\\n width: 100%;\\n margin-top: 1.5rem; }\\n:host form .form-group {\\n margin-top: 0 !important; }\\n:host form .form-footer {\\n display: flex;\\n justify-content: space-between; }\\n:host form .form-footer .left, :host form .form-footer .right {\\n display: inline-flex;\\n flex-flow: column nowrap; }\\n:host form .form-footer .left {\\n line-height: 2rem;\\n font-size: 14px; }\\n:host form .form-footer .right {\\n display: inline-flex;\\n margin-left: auto; }\\n/** Used to wrap a button so that the loader stays in the same space as the button **/\\n:host a {\\n color: #0074aa;\\n cursor: pointer; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21lZGlhcXVlcmllcy5zY3NzIiwic3JjL2FwcC9zaGFyZWQvY29udHJvbHMvbGF5b3V0L2xheW91dC1mb3JtL2xheW91dC1mb3JtLmN0cmwuc2NzcyIsIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21peGlucy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9zdHlsZXMvYmFzZS9fY29sb3JzLnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvc2hhcmVkL3N0eWxlcy9iYXNlL19zZXR0aW5ncy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9jb250cm9scy9sYXlvdXQvbGF5b3V0LWZvcm0vbGF5b3V0LWZvcm0uY3RybC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThCQTs7Q0M1QkM7QUMwS0Qsb0NBQUE7QUM1S0E7Ozs7Ozs7Ozs7Q0ZjQztBRStERCxTQUFBO0FBVUEsb0JBQUE7QUFLQSx5QkFBQTtBQUlBLDJEQUFBO0FBRUEsaUJBQUE7QUFvQkEsT0FBQTtBQ25IQSwrQkFBQTtBQWlCQTs7RUhJRTtBR21CRjs7RUhoQkU7QUc4QkY7O0VIM0JFO0FHeUNGOztFSHRDRTtBRytDRjs7RUg1Q0U7QUdrRUY7O0VIL0RFO0FHaUZGOztFSDlFRTtBR29GRjs7RUhqRkU7QUc0RkY7O0VIekZFO0FHZ0dGOztDSDdGQztBR3FHRDs7RUhsR0U7QUd3R0Y7O0VIckdFO0FHOEdGOztDSDNHQztBR3FIRDs7Q0hsSEM7QUcwSEQ7O0VIdkhFO0FHOEhGOztFSDNIRTtBR3NJRixrQkFBQTtBQ3RNQTtFQUNFLFdBQVc7RUFDWCxxQkFBK0I7RUFDL0IsY0FBYyxFQUFBO0FBR2hCO0VBQ0UsY0YyQm9GO0VFMUJwRixlQUE0QjtFQUM1QixpQkFBOEI7RUFDOUIsbUJIeUR1RCxFQUFBO0FHdER6RDtFQUNFLGVES3VDO0VDSnZDLG9CQUE4QjtFQUM5QixtQkhtRHVEO0VHbER2RCxzQkhrRHVELEVBQUE7QUcvQ3pEO0VBQ0UsY0ZVbUcsRUFBQTtBRVByRztFQUNFLHFCQUFxQjtFQUNyQixXQUFXO0VBQ1gsa0JBQTZCLEVBQUE7QUFIL0I7SUFNSSx3QkFBd0IsRUFBQTtBQU41QjtJQVNJLGFBQWE7SUFDYiw4QkFBOEIsRUFBQTtBQVZsQztNQVlNLG9CQUFvQjtNQUNwQix3QkFBd0IsRUFBQTtBQWI5QjtNQWdCTSxpQkEzQzJCO01BNEMzQixlRGJpQixFQUFBO0FDSnZCO01Bb0JNLG9CQUFvQjtNQUNwQixpQkFBaUIsRUFBQTtBQUt2QixxRkFBQTtBQUVBO0VBQ0UsY0Z2QmtHO0VFd0JsRyxlQUFlLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9zaGFyZWQvY29udHJvbHMvbGF5b3V0L2xheW91dC1mb3JtL2xheW91dC1mb3JtLmN0cmwuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vICBBdXRob3I6IFJhZmFsIEJyb21pcnNraVxuLy8gIHd3dzogaHR0cDovL3JhZmFsYnJvbWlyc2tpLmNvbS9cbi8vICBnaXRodWI6IGh0dHA6Ly9naXRodWIuY29tL3BhcmFub2lkYS9zYXNzLW1lZGlhcXVlcmllc1xuLy9cbi8vICBMaWNlbnNlZCB1bmRlciBhIE1JVCBMaWNlbnNlXG4vL1xuLy8gIFZlcnNpb246XG4vLyAgMS42LjFcbi8vIC0tLSBnZW5lcmF0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gbXEoJGFyZ3MuLi4pIHtcbiAgJG1lZGlhLXR5cGU6ICdvbmx5IHNjcmVlbic7XG4gICRtZWRpYS10eXBlLWtleTogJ21lZGlhLXR5cGUnO1xuICAkYXJnczoga2V5d29yZHMoJGFyZ3MpO1xuICAkZXhwcjogJyc7XG4gIEBpZiBtYXAtaGFzLWtleSgkYXJncywgJG1lZGlhLXR5cGUta2V5KSB7XG4gICAgJG1lZGlhLXR5cGU6IG1hcC1nZXQoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gICAgJGFyZ3M6IG1hcC1yZW1vdmUoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gIH1cbiAgQGVhY2ggJGtleSxcbiAgJHZhbHVlIGluICRhcmdzIHtcbiAgICBAaWYgJHZhbHVlIHtcbiAgICAgICRleHByOiBcIiN7JGV4cHJ9IGFuZCAoI3ska2V5fTogI3skdmFsdWV9KVwiO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgI3skbWVkaWEtdHlwZX0gI3skZXhwcn0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cblxuLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cblxuQG1peGluIGhkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAje3JvdW5kKCRyYXRpbyo5Nil9ZHBpKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gJG9yaWVudGF0aW9uOiBsYW5kc2NhcGUgfCBwb3J0cmFpdFxuQG1peGluIHRhYmxldCgkb3JpZW50YXRpb246IGZhbHNlKSB7XG4gICRtaW46IDI2OHB4O1xuICAkbWF4OiAxMDI0cHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4LCAkb3JpZW50YXRpb246ICRvcmllbnRhdGlvbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIHNtYWxsIGRlc2t0b3AgLSAxMDI1IDwtPiAxMjgwXG5AbWl4aW4gc21hbGwtZGVza3RvcCgpIHtcbiAgJG1pbjogMTAyNXB4O1xuICAkbWF4OiAxMjgwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gbWVkaXVtIGRlc2t0b3AgLSAxMjgxIDwtPiAxNDQwXG5AbWl4aW4gbWVkaXVtLWRlc2t0b3AoKSB7XG4gICRtaW46IDEyODFweDtcbiAgJG1heDogMTQ0MHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIGxhcmdlIGRlc2t0b3AgLSAxNDQxIDwtPiAxNjAwXG5AbWl4aW4gbGFyZ2UtZGVza3RvcCgpIHtcbiAgJG1pbjogMTQ0MXB4O1xuICAkbWF4OiAxNjAwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8geGxhcmdlIGRlc2t0b3AgLSAxNjAxIC0+IGluZmluaXR5XG5AbWl4aW4geGxhcmdlLWRlc2t0b3AoKSB7XG4gICRtaW46IDE2MDFweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBkZXNrdG9wIG92ZXJsYXlcbkBtaXhpbiBkZXNrdG9wLW92ZXJsYXkoKSB7XG4gICAgJG1pbjogMjY4cHg7XG4gICAgJG1heDogOTI2cHg7XG4gICAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cbi8qIEZpcmVmb3ggc3BlY2lmaWMgc3R5bGVzIGdvIGhlcmUgKi9cbi8qXG5DT01NT04gQ09MT1IgTkFNRVNcblxuVGhlc2UgY29sb3JzIGFyZSBtYXBwZWQgdG8gdGhlIG5hbWVzIGZyb20gdGhlIG9mZmljaWFsIGNvbG9ycy5cbkluc3RlYWQgb2YgaGF2aW5nIG5hbWVzIGxpa2UgYGNydXNoYCBvciBgYmxhemVgLCBkZXZlbG9wZXJzIHdpbGwgdXNlIHRoZWlyIGNvbW1vbiwgbm9uLW1hcmtldGl6ZWQgbmFtZS5cbmVnLiAkcmVkOiBjcnVzaFxuICAgICRvcmFuZ2U6IGJsYXplXG5cblRoZW4sIHVzZSB0aGUgYGhyYS1jb2xvcmAgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb2xvclxuZWcuIGNvbG9yOiBocmEtY29sb3IoJHJlZClcbiovXG4vKiAqKioqICovXG4vKiAqIENoYXJ0cyBDb2xvcnMgKi9cbi8qIGluZm8gdGV4dCBiYWNrZ3JvdW5kICovXG4vKiBVc2UgZm9sbG93aW5nIGNsYXNzZXMgZm9yIGFlc3RoZXRpY3Mgb25seSAtIE5ldyBVSSBLSVQgKi9cbi8qIENvbG9yIE1hcHBpbmcqL1xuLyplbmRzKi9cbi8qIFVzZWQgZm9yIGdyaWRzIGFuZCBtYXJnaW5zICovXG4vKlxuICBmb250IHNpemVzXG4gKi9cbi8qXG4gKiBIZWFkZXIgc2l6ZVxuICovXG4vKlxuICogRGV2aWNlIEdyb3VwIHNldHRpbmdzXG4gKi9cbi8qXG4gKiBCb3JkZXIgc2V0dGluZ3NcbiAqL1xuLypcbiAqIFNoYWRvd3MgZ28gYnkgbGV2ZWxcbiAqL1xuLypcbiAqIFBhZGRpbmcgc2V0dGluZ3NcbiAqL1xuLypcbiAqIElucHV0c1xuICovXG4vKlxuICogVG9vbFRpcHNcbiAqL1xuLypcbiAqIEFjdGlvbiBiYXIgc2l6ZXNcbiAqL1xuLyoqXG4qICBEZXZpY2UgZ3JpZCBzaXplc1xuKi9cbi8qXG4gKiBGb2N1cyBib3JkZXJcbiAqL1xuLypcbiAqIEJvcmRlclxuICovXG4vKlxuICogUG9wLXVwXG4qL1xuLypcbiogU3RhdHVzIE5vdGlmaWNhdGlvblxuKi9cbi8qXG4gIFJvdW5kIGJ1dHRvbiBzaXplc1xuICovXG4vKlxuICogSW1hZ2UgSWNvbiBTaXplc1xuICovXG4vKiogTW9kYWwgc2l6ZXMgKiovXG46aG9zdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXRvcDogMTMuNzVyZW07XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbjpob3N0IGgxIHtcbiAgY29sb3I6ICM1QjY2NzA7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDNyZW07XG4gIG1hcmdpbi10b3A6IDAuNzVyZW07IH1cblxuOmhvc3QgcCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gIG1hcmdpbi10b3A6IDAuNzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07IH1cblxuOmhvc3QgLmZvcm0tZXJyb3Ige1xuICBjb2xvcjogI2UzMjcyMjsgfVxuXG46aG9zdCBmb3JtIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMS41cmVtOyB9XG4gIDpob3N0IGZvcm0gLmZvcm0tZ3JvdXAge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsgfVxuICA6aG9zdCBmb3JtIC5mb3JtLWZvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgICA6aG9zdCBmb3JtIC5mb3JtLWZvb3RlciAubGVmdCwgOmhvc3QgZm9ybSAuZm9ybS1mb290ZXIgLnJpZ2h0IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwOyB9XG4gICAgOmhvc3QgZm9ybSAuZm9ybS1mb290ZXIgLmxlZnQge1xuICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICBmb250LXNpemU6IDE0cHg7IH1cbiAgICA6aG9zdCBmb3JtIC5mb3JtLWZvb3RlciAucmlnaHQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuXG4vKiogVXNlZCB0byB3cmFwIGEgYnV0dG9uIHNvIHRoYXQgdGhlIGxvYWRlciBzdGF5cyBpbiB0aGUgc2FtZSBzcGFjZSBhcyB0aGUgYnV0dG9uICoqL1xuOmhvc3QgYSB7XG4gIGNvbG9yOiAjMDA3NGFhO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiIsIkBpbXBvcnQgJy4vbWVkaWFxdWVyaWVzJztcblxuLy8vIC8gc3R5bGVndWlkZTppZ25vcmU6c3RhcnRcbi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcbi8vLyBSZW1vdmVzIHRoZSB1bml0IChlLmcuIHB4LCBlbSwgcmVtKSBmcm9tIGEgdmFsdWUsIHJldHVybmluZyB0aGUgbnVtYmVyIG9ubHkuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgc2FtZSBudW1iZXIsIHNhbnMgdW5pdC5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG5cbi8vLyBDb252ZXJ0cyBvbmUgb3IgbW9yZSBwaXhlbCB2YWx1ZXMgaW50byBtYXRjaGluZyByZW0gdmFsdWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gVGhlIGJhc2UgdmFsdWUgdG8gdXNlIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGByZW1gLiBJZiB5b3UncmUgdXNpbmcgRm91bmRhdGlvbiBvdXQgb2YgdGhlIGJveCwgdGhpcyBpcyAxNnB4LiBJZiB0aGlzIHBhcmFtZXRlciBpcyBgbnVsbGAsIHRoZSBmdW5jdGlvbiB3aWxsIHJlZmVyZW5jZSB0aGUgYCRiYXNlLWZvbnQtc2l6ZWAgdmFyaWFibGUgYXMgdGhlIGJhc2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gQSBsaXN0IG9mIGNvbnZlcnRlZCB2YWx1ZXMuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2U6IG51bGwpIHtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2U9PW51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgLy8gVGhpcyBpcyBiZWNhdXNlIDEwMCUgZm9udCBzaXplID0gMTZweCBpbiBtb3N0IGFsbCBicm93c2Vyc1xuICBAaWYgdW5pdCgkYmFzZSk9PSclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuICBAaWYgJGNvdW50PT0xIHtcbiAgICBAcmV0dXJuIC16Zi10by1yZW0oJHZhbHVlcywgJGJhc2UpO1xuICB9XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cbiAgQHJldHVybiAkcmVtLXZhbHVlcztcbn1cblxuLy8gQ29udmVydHMgYSB1bml0bGVzcywgcGl4ZWwsIG9yIHJlbSB2YWx1ZSB0byBlbSwgZm9yIHVzZSBpbiBicmVha3BvaW50cy5cbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XG4gIC8vIFBpeGVsIGFuZCB1bml0bGVzcyB2YWx1ZXMgYXJlIGNvbnZlcnRlZCB0byByZW1zXG4gIEBpZiB1bml0KCR2YWx1ZSk9PSdweCcgb3IgdW5pdGxlc3MoJHZhbHVlKSB7XG4gICAgJHZhbHVlOiByZW0tY2FsYygkdmFsdWUsICRiYXNlOiAxNnB4KTtcbiAgfVxuICAvLyBUaGVuIHRoZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gZW1zXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBCYXNlIGZvciBwaXhlbCBjb252ZXJzaW9uLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cbkBmdW5jdGlvbiAtemYtdG8tcmVtKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0nbnVtYmVyJyB7XG4gICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpKycgd2FzIHBhc3NlZCB0byByZW0tY2FsYygpLCB3aGljaCBpcyBub3QgYSBudW1iZXIuJztcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9J3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSkgKiAxcmVtO1xuICB9XG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZT09MHJlbSB7XG4gICAgJHZhbHVlOiAwO1xuICB9XG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vLy8gQW5pbWF0aW9uIGtleWZyYW1lcyBhdXRvcHJlZml4ZXJcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYW5pbWF0aW9uLW5hbWUgLSBOYW1lIG9mIHRoZSBhbmltYXRpb24uXG5AbWl4aW4ga2V5ZnJhbWVzKCRhbmltYXRpb24tbmFtZSkge1xuICBALXdlYmtpdC1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW1vei1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW1zLWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtby1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBAa2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIEFuaW1hdGlvbiBhdXRvcHJlZml4ZXJcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3RyIC0gY3NzMyBhbmltYXRpb24gc3BlYy5cbkBtaXhpbiBhbmltYXRpb24oJHN0cikge1xuICAtd2Via2l0LWFuaW1hdGlvbjogI3skc3RyfTtcbiAgLW1vei1hbmltYXRpb246ICN7JHN0cn07XG4gIC1tcy1hbmltYXRpb246ICN7JHN0cn07XG4gIC1vLWFuaW1hdGlvbjogI3skc3RyfTtcbiAgYW5pbWF0aW9uOiAjeyRzdHJ9O1xufVxuXG4vLy8gQm94IHNoYWRvdyBhdXRvcHJlZml4ZXJcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3RyIC0gY3NzMyBib3gtc2hhZG93IHNwZWMuXG5AbWl4aW4gYm94LXNoYWRvdygkc3RyKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogI3skc3RyfTtcbiAgLW1vei1ib3gtc2hhZG93OiAjeyRzdHJ9O1xuICAtby1ib3gtc2hhZG93OiAjeyRzdHJ9O1xuICBib3gtc2hhZG93OiAjeyRzdHJ9O1xufVxuXG4vLy8gZ3JhZGllbnQgYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBncmFkaWVudCgkY29sb3IxLCAkY29sb3IyKSB7XG4gIGJhY2tncm91bmQ6ICN7JGNvbG9yMX07XG4gIC8qIEZvciBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IGdyYWRpZW50cyAqL1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgjeyRjb2xvcjF9LCAjeyRjb2xvcjJ9KTtcbiAgLyogRm9yIFNhZmFyaSA1LjEgdG8gNi4wICovXG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCgjeyRjb2xvcjF9LCAjeyRjb2xvcjJ9KTtcbiAgLyogRm9yIE9wZXJhIDExLjEgdG8gMTIuMCAqL1xuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgjeyRjb2xvcjF9LCAjeyRjb2xvcjJ9KTtcbiAgLyogRm9yIEZpcmVmb3ggMy42IHRvIDE1ICovXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjeyRjb2xvcjF9LCAjeyRjb2xvcjJ9KTtcbiAgLyogU3RhbmRhcmQgc3ludGF4ICovXG59XG5cbkBtaXhpbiB2ZXJ0aWNhbC1ncmFkaWVudC1kaXZpZGVyKCl7XG4gIHdpZHRoOiAxcHg7XG4gIHBhZGRpbmctbGVmdDogMXB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCBocmEtY29sb3IoJGdyZXksIDIwKSwgJHdoaXRlKTtcbn1cblxuXG4vLy8gSUUgb25seSBxdWVyeVxuQG1peGluIGllLW9ubHkoKSB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSB7XG4gICAgLyogSUUxMCsgc3BlY2lmaWMgc3R5bGVzIGdvIGhlcmUgKi9cbiAgICBAY29udGVudFxuICB9XG59XG5cbkBtaXhpbiBjcmVhdGUtYW5pbWF0aW9uKCRhbmktbmFtZSkge1xuICBhbmltYXRpb246ICRhbmktbmFtZSBmb3J3YXJkcyAzMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuXG5AbWl4aW4gY3JlYXRlLXRyYW5zaXRpb24oJHByb3BlcnR5LW5hbWUpIHtcbiAgdHJhbnNpdGlvbjogJHByb3BlcnR5LW5hbWUgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cbi8vLyBFZGdlIG9ubHkgcXVlcnlcbkBtaXhpbiBlZGdlLW9ubHkoKSB7XG4gIEBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgIC8qIEVkZ2Ugc3BlY2lmaWMgc3R5bGVzIGdvIGhlcmUgKi9cbiAgICBAY29udGVudFxuICB9XG59XG5cbi8qIEZpcmVmb3ggc3BlY2lmaWMgc3R5bGVzIGdvIGhlcmUgKi9cbkBtaXhpbiBmaXJlZm94LW9ubHkoKSB7XG4gIEBzdXBwb3J0cyAoLW1vei1hcHBlYXJhbmNlOm5vbmUpIHtcbiAgICBAY29udGVudFxuICB9XG59XG5cblxuLy8gc3R5bGVndWlkZTppZ25vcmU6ZW5kIiwiLypcbkNPTU1PTiBDT0xPUiBOQU1FU1xuXG5UaGVzZSBjb2xvcnMgYXJlIG1hcHBlZCB0byB0aGUgbmFtZXMgZnJvbSB0aGUgb2ZmaWNpYWwgY29sb3JzLlxuSW5zdGVhZCBvZiBoYXZpbmcgbmFtZXMgbGlrZSBgY3J1c2hgIG9yIGBibGF6ZWAsIGRldmVsb3BlcnMgd2lsbCB1c2UgdGhlaXIgY29tbW9uLCBub24tbWFya2V0aXplZCBuYW1lLlxuZWcuICRyZWQ6IGNydXNoXG4gICAgJG9yYW5nZTogYmxhemVcblxuVGhlbiwgdXNlIHRoZSBgaHJhLWNvbG9yYCBmdW5jdGlvbiB0byBnZXQgdGhlIGNvbG9yXG5lZy4gY29sb3I6IGhyYS1jb2xvcigkcmVkKVxuKi9cblxuJHRoZW1lLWdyZWVuOiAjZGZkMjY5O1xuJHRoZW1lLWNvbG9yOiAkdGhlbWUtZ3JlZW47XG4kYmx1ZTogYmx1ZTtcbiRjeWFuOiBjeWFuO1xuJGdyZXk6IGdyZXk7XG4kcmVkOiBjcnVzaDtcbiRvcmFuZ2U6IGJsYXplO1xuJHllbGxvdzogc3Vuc2V0LCA2MDtcbiRncmVlbjogc2VhZm9hbTtcbiRsaWdodC1ncmVlbjogc2Vhd2VlZDtcbiRkYXJrLWdyZWVuOiBtYXJpbmU7XG4kYnJvd246IGJyb3duO1xuJHB1cnBsZTogcHVycGxlO1xuJHN1bnNldDogc3Vuc2V0O1xuJHBpbms6IHBpbms7XG5cbiRuZXdncmV5OiBuZXdncmV5O1xuJG5ld2JsdWU6IG5ld2JsdWU7XG4kbmV3Y3lhbjogbmV3Y3lhbjtcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIGhtYSdzIENvbG91ciBQYWxldHRlXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4kY29sb3JzOiAoXG4gICAgYmx1ZTogKDU6ICNmM2ZiZmUsIDEwOiAjZTJmNGZiLCAyMDogI2JhZTVmNSwgNDA6ICM3MWM4ZjEsIDYwOiAjMzJiNmU5LCA4MDogIzAwOTlkMywgMTAwOiAjMDA3NGFhLCAxMjA6ICMwNjRjN2MpLFxuICAgIGNydXNoOiAoNTogI2ZmZjdmNiwgMTA6ICNmZWYwZWQsIDIwOiAjZmRkZmRjLCA0MDogI2ZhYzFiYSwgNjA6ICNmNDgyNzIsIDgwOiAjZjE2MTRmLCAxMDA6ICNlMzI3MjIsIDExMDojYzEzZjJiLCAxMjA6ICNhNzFlMjIpLFxuICAgIGN5YW46ICg1OiAjZjJmOWY5LCAxMDogI2U2ZjRmNCwgMjA6ICNjY2VhZWEsIDQwOiAjOWFkN2Q2LCA2MDogIzY4YzVjNCwgODA6ICMzNmIxYjAsIDEwMDogIzAyOWY5ZCwgMTIwOiAjMDI2ZjZmKSxcbiAgICBibGF6ZTogKDU6ICNmZmY3ZjMsIDEwOiAjZmZmMWU5LCAyMDogI2ZjZTFkMywgNDA6ICNmY2M1YTcsIDYwOiAjZjdhNzdiLCA4MDogI2Y2ODk0ZCwgMTAwOiAjZjI2YjIxLCAxMjA6ICNiNzNlMjUpLFxuICAgIGdyZXk6ICg1OiAjZmFmYmZiLCAxMDogI2VjZWZmMCwgMjA6ICNlNGU3ZTksIDQwOiAjYThiMmI3LCA2MDogIzgyOGQ5MywgODA6ICM1QjY2NzAsIDEwMDogIzNkNDY0ZCwgMTIwOiAjMTQxZTI1KSxcbiAgICBzZWFmb2FtOiAoNTogI2VmZjlmOCwgMTA6ICNlNGY3ZjMsIDIwOiAjY2ZlZGU4LCA0MDogI2E1ZWFkYiwgNjA6ICM2MWQ2YjgsIDgwOiAjMmZkMmE4LCAxMDA6ICMxZWFkOGEsIDEyMDogIzBiNzA1ZCksXG4gICAgc2Vhd2VlZDogKDU6ICNmOGZiZjYsIDEwOiAjZjJmOGVkLCAyMDogI2UzZjBkOSwgNDA6ICNjYmU0YjUsIDYwOiAjYjBkNzhlLCA4MDogIzk1Y2I2YSwgMTAwOiAjN2FjMTQyLCAxMjA6ICM0OTkxNDIpLFxuICAgIG1hcmluZTogKDU6ICNmN2Y5ZjMsIDEwOiAjZjFmNGU4LCAyMDogI2U0ZWFkMiwgNDA6ICNjYmQ5YTcsIDYwOiAjYmZkYjg1LCA4MDogI2FlZDI1NSwgMTAwOiAjN2FhMTNlLCAxMjA6ICM0YzczMzYpLFxuICAgIHBlYmJsZTogKDU6ICNmYmZjZmMsIDEwOiAjZjVmNmY2LCAyMDogI2U5ZThlOSwgNDA6ICNkNWQ0ZDUsIDYwOiAjYWFhYWFiLCA4MDogIzdjN2M4MSwgMTAwOiAjNTQ1MzU1LCAxMjA6ICMyODI3MmIpLFxuICAgIHN1bnNldDogKDU6ICNmZmZkZWUsIDEwOiAjZmZmYmRiLCAyMDogI2ZkZjdiNCwgNDA6ICNmZmY1N2UsIDYwOiAjZmZmMTAwLCA4MDogI2ZiYWQxYywgMTAwOiAjZjQ3ZjFmLCAxMjA6ICNjOTU0MjgpLFxuICAgIGJyb3duOiAoNTogI2Y3ZjRmMiwgMTA6ICNlYWU0ZTEsIDIwOiAjZDhjZWNiLCA0MDogI2JhYWJhNSwgNjA6ICM5NjgzN2MsIDgwOiAjNzc1ZDUzLCAxMDA6ICM1OTM4MmMsIDEyMDogIzJmMTgwZCksXG4gICAgcHVycGxlOiAoNTogI2YyZWZmNywgMTA6ICNlOGRmZWYsIDIwOiAjZDdjOWUzLCA0MDogI2MxYWVkNSwgNjA6ICNhMDg1YmUsIDgwOiAjN2I2MWFhLCAxMDA6ICM2NjRmYTEsIDEyMDogIzQyMmU4NSksXG4gICAgcGluazogKDU6ICNmZWY0ZjgsIDEwOiAjZmNlN2VmLCAyMDogI2ZhZGFlMSwgNDA6ICNmNGEyYzIsIDYwOiAjZWQ3M2E0LCA4MDogI2U5NDU4NiwgMTAwOiAjZTMxNTY3LCAxMjA6ICNhYjFkNDEpLFxuXG4gICAgLy8gTmV3IFVJIEtpdCBjb2xvcnMgLSBuZXcgcHJlZml4IHdpbGwgYmUgcmVtb3ZlZCBvbmNlIHRoZSBtaWdyYXRpb24gaXMgY29tcGxldGVkXG4gICAgLy8gSXQgYWxzbyBtYWtlcyBzdXJlIHRoYXQgY29sb3IgdmFyaWFibGVzIGFyZSB1c2VkXG4gICAgbmV3Z3JleTogKDU6ICNmY2ZjZmMsIDEwOiAjZjdmN2Y3LCAyMDogI2YyZjJmMiwgNDA6ICNlOWU5ZTksIDUwOiAjYzdjN2M3LCA2MDogI2E5YTlhOSwgNzA6ICM4MDgwODAsIDgwOiAjNmI2YjZiLDEwMDogIzRiNGI0YiwxMjA6IzI5MjkyOSksXG4gICAgbmV3Ymx1ZTogKDU6ICNmMGY2ZmEsIDEwOiAjZTJlZWY1LCAyMDogI2I4ZDVlNywgNDA6ICM4ZWJiZDcsIDUwOiAjNjlhMWM3LCA1NTogIzRmOGZiZCwgNjU6ICMzODdlYjMsIDcwOiAjMmY3MmE4LCA4MDogIzI1NjI5NywgMTAwOiAjMWQ1Mjg1LCAxMjA6ICMxMDM3NjYpLFxuICAgIG5ld2N5YW46ICg1OiAjZjBmNmZhLCAxMDogI2UyZWVmNSwgMjA6ICNiOGQ1ZTcsIDQwOiAjOGViYmQ3LCA1MDogIzY5YTFjNywgNTU6ICM0ZjhmYmQsIDY1OiAjMzg3ZWIzLCAxMDA6ICMyZjcyYTgsIDEyMDogIzI1NjI5NywgMTQwOiAjMWQ1Mjg1LCAxNjA6ICMxMDM3NjYpLFxuKTtcblxuQGZ1bmN0aW9uIGhyYS1jb2xvcigkY29sb3IsICR2YWx1ZTogMTAwKSB7XG4gICAgJHNlbGVjdGVkQ29sb3I6ICRjb2xvcjtcblxuICAgIEBpZiAodHlwZS1vZigkY29sb3IpID09ICdsaXN0Jykge1xuICAgICAgICAkc2VsZWN0ZWRDb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICAgICAgICR2YWx1ZTogbnRoKCRjb2xvciwgMik7XG4gICAgfVxuXG4gICAgJGNvbG9yLW1hcDogbWFwLWdldCgkY29sb3JzLCAkc2VsZWN0ZWRDb2xvcik7XG4gICAgQGlmICgkY29sb3ItbWFwID09IG51bGwpIHtcbiAgICAgICAgQGVycm9yICRzZWxlY3RlZENvbG9yICsgJyBpcyBub3QgcGFydCBvZiB0aGUgY29sb3IgcGFsZXR0ZSc7XG4gICAgfVxuICAgIEByZXR1cm4gbWFwLWdldCgkY29sb3ItbWFwLCAkdmFsdWUpO1xufVxuXG4kYmxhY2s6IGhyYS1jb2xvcigkZ3JleSwgMTIwKTtcbiR3aGl0ZTogcmdiKDI1NSwgMjU1LCAyNTUpO1xuJGNvbG9yLWdyYXktdHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50aXplKGhyYS1jb2xvcigkZ3JleSksIDAuOCk7XG4kaG92ZXItY29sb3I6IGhyYS1jb2xvcigkZ3JleSwgMjApO1xuXG5cbi8qICoqKiogKi9cbiRzdWNjZXNzLWNvbG9yOiBocmEtY29sb3IoJGdyZWVuKTtcbiR3YXJuaW5nLWNvbG9yOiBocmEtY29sb3IoJHllbGxvdyk7XG4kYWxlcnQtY29sb3I6IGhyYS1jb2xvcigkcmVkKTtcbiRjb2xvci1pbnZhbGlkOiBocmEtY29sb3IoJHJlZCk7XG4kZGlzYWJsZWQtY29sb3I6IGhyYS1jb2xvcigkZ3JleSwgMTApO1xuJGRpc2FibGVkLWJvcmRlcjogaHJhLWNvbG9yKCRncmV5LCA0MCk7XG4kY29sb3ItaHJhLWFuY2hvcjogaHJhLWNvbG9yKCRibHVlKTtcbiRkaXNhYmxlZC1mb3JlLWNvbG9yOiBocmEtY29sb3IoJGdyZXksIDQwKTtcblxuLyogKiBDaGFydHMgQ29sb3JzICovXG4kc3RhY2tlZC10b29sdGlwLWNpcmNsZS1iZzogIzNmNDA0MjtcbiRjaGFydC10b29sdGlwLWNpcmNsZTogI2ZmODk0YztcbiRkb251dC1jb3VudDogI2ZmNmI1NztcblxuLyogaW5mbyB0ZXh0IGJhY2tncm91bmQgKi9cbiRpbmZvLWJhY2tncm91bmQ6ICNmZmZkZTY7XG5cblxuLyogVXNlIGZvbGxvd2luZyBjbGFzc2VzIGZvciBhZXN0aGV0aWNzIG9ubHkgLSBOZXcgVUkgS0lUICovXG4vLyBTdGFuZGFyZGlzZSB2YXJpYWJsZXMgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZiBkaXJlY3QgY29sb3JzXG4vKiBDb2xvciBNYXBwaW5nKi9cbiRwcmltYXJ5LWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdibHVlLCA3MCk7XG4kcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Ymx1ZSwgMTAwKTtcbiRwcmltYXJ5LXRleHQ6JHdoaXRlO1xuXG4kZGVsZXRlLWJhY2tncm91bmQ6IGhyYS1jb2xvcigkcmVkLCAxMTApO1xuXG4kc2Vjb25kYXJ5LXRleHQ6aHJhLWNvbG9yKCRuZXdibHVlLCA1NSk7XG4kc2Vjb25kYXJ5LWJhY2tncm91bmQ6JHdoaXRlO1xuJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Ymx1ZSwgNSk7XG4kc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ6aHJhLWNvbG9yKCRuZXdncmV5LCA1MCk7XG4kc2Vjb25kYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kOiRzZWNvbmRhcnktdGV4dDtcblxuJGZsYXQtY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgODApO1xuJGZsYXQtaG92ZXI6IGhyYS1jb2xvcigkbmV3Z3JleSwgMTAwKTtcbiRmbGF0LWRpc2FibGVkOiBocmEtY29sb3IoJG5ld2dyZXksIDcwKTtcblxuJGFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kOiBocmEtY29sb3IoJG5ld2JsdWUsIDgwKTtcbiRhY3Rpb24tZGlzYWJsZWQ6IGhyYS1jb2xvcigkbmV3Z3JleSwgNTUpO1xuJGFjdGlvbi1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Ymx1ZSwgNTApO1xuLyplbmRzKi9cblxuJGJ1dHRvbi1wcmltYXJ5LXRleHQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQtY29sb3I6JHByaW1hcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tcHJpbWFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kYnV0dG9uLWRlbGV0ZS1iYWNrZ3JvdW5kLWNvbG9yOiAkZGVsZXRlLWJhY2tncm91bmQ7XG4kYnV0dG9uLXByaW1hcnktZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG5cbi8vIFNlY29uZGFyeSBidXR0b25zIGFuZCBzZWNvbmRhcnkgYWN0aW9uIGJ1dHRvbnMgc2hhcmUgY29sb3JzIFxuJGJ1dHRvbi1zZWNvbmRhcnktYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG4kYnV0dG9uLXNlY29uZGFyeS10ZXh0LWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG4kYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLXNlY29uZGFyeS1ob3Zlci10ZXh0LWNvbG9yOiAkc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLXNlY29uZGFyeS1kaXNhYmxlZC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1zZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcblxuJGJ1dHRvbi1mbGF0LWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuJGJ1dHRvbi1mbGF0LWNvbG9yOiAkZmxhdC1jb2xvcjtcbiRidXR0b24tZmxhdC1ob3Zlci1jb2xvcjokZmxhdC1ob3ZlcjtcbiRidXR0b24tZmxhdC1kaXNhYmxlZC1jb2xvcjogJGZsYXQtZGlzYWJsZWQ7XG5cbiRidXR0b24tYWN0aW9uLWJhY2tncm91bmQtY29sb3I6ICRhY3Rpb24tYmFja2dyb3VuZDtcbiRidXR0b24tYWN0aW9uLXRleHQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tYWN0aW9uLWhvdmVyLWJhY2tncm91bmQtY29sb3I6ICRhY3Rpb24taG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tYWN0aW9uLWhvdmVyLXRleHQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tYWN0aW9uLWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRidXR0b24tYWN0aW9uLWRpc2FibGVkLXRleHQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tYWN0aW9uLWRlbGV0ZS1iYWNrZ3JvdW5kLWNvbG9yOiRkZWxldGUtYmFja2dyb3VuZDtcblxuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktZGlzYWJsZWQtY29sb3I6ICRhY3Rpb24tZGlzYWJsZWQ7XG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4kYnV0dG9uLWFjdGlvbi1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcblxuJHVuc2VsZWN0ZWQtY2hvaWNlLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kc2VsZWN0ZWQtY2hvaWNlLWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG5cbiRyYWRpby1sYWJlbC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJHRvZ2dsZS1vbi1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG4kdG9nZ2xlLW9mLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiR0b2dnbGUtaGVhZC1jb2xvcjogJHdoaXRlO1xuXG4kaW5wdXQtdGV4dC1sYWJlbC1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCAxMjApO1xuJGlucHV0LXRleHQtYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDQwKTtcbiRpbnB1dC10ZXh0LXBsYWNlaG9sZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDYwKTtcbiRpbnB1dC10ZXh0LWFjdGl2ZS1ib3JkZXItY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgODApO1xuJGlucHV0LXRleHQtYWN0aXZlLXRleHQtY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgMTIwKTtcbiRpbnB1dC10ZXh0LWVycm9yLWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRyZWQsIDExMCk7XG4kaW5wdXQtdGV4dC1kaXNhYmxlZC1ib3JkZXItY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgNTApO1xuJGlucHV0LXRleHQtZXJyb3ItbWVzc2FnZS1jb2xvcjogJGlucHV0LXRleHQtZXJyb3ItYm9yZGVyLWNvbG9yO1xuJGlucHV0LXRleHQtZGlzYWJsZWQtY29sb3I6ICRpbnB1dC10ZXh0LXBsYWNlaG9sZGVyLWNvbG9yO1xuJGlucHV0LXRleHQtbGFiZWwtZGlzYWJsZWQtY29sb3I6ICRpbnB1dC10ZXh0LWJvcmRlci1jb2xvcjtcbiRpbnB1dC10ZXh0LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRpbnB1dC10ZXh0LXBsYWNlaG9sZGVyLWNvbG9yOyIsIkBpbXBvcnQgJ21peGlucyc7XG5AaW1wb3J0ICdjb2xvcnMnO1xuXG4vKiBVc2VkIGZvciBncmlkcyBhbmQgbWFyZ2lucyAqL1xuXG4kc21hbGwtc2l6ZTogNCAhZGVmYXVsdDtcbiRsYXJnZS1zaXplOiAxMiAhZGVmYXVsdDtcbiRzbWFsbC1zcXVhcmU6IHJlbS1jYWxjKCRzbWFsbC1zaXplKSAhZGVmYXVsdDtcbiRsYXJnZS1zcXVhcmU6IHJlbS1jYWxjKCRsYXJnZS1zaXplKSAhZGVmYXVsdDtcbiR0cmFuc3BhcmVudC1ncmF5OiB0cmFuc3BhcmVudGl6ZShocmEtY29sb3IoJGdyZXksIDQwKSwgMC44KTtcbiR0cmFuc3BhcmVudC13aGl0ZTogdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAwLjYpO1xuJGFuaW1hdGlvbi10aW1pbmc6IDAuMjVzO1xuJHJhZC1ncmFkOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCBjZW50ZXIsIHRyYW5zcGFyZW50aXplKGhyYS1jb2xvcigkZ3JleSksIDAuNSkgODAlLCB0cmFuc3BhcmVudGl6ZSgkYmxhY2ssIDAuNSkgMTAwJSk7XG4kbGluZWFyLWdyYWQ6IHJnYmEoJGJsYWNrLCAwLjcpO1xuXG4kc2Nyb2xsLWJhci13aWR0aDogJHNtYWxsLXNxdWFyZSAqIDI7XG4kc2Nyb2xsLWJhci13aWR0aC1maXJlZm94OiByZW0tY2FsYygxNyk7XG4kc2Nyb2xsLWJhci13aWR0aC1lZGdlOiByZW0tY2FsYygxNyk7XG4kc2Nyb2xsLWJhci13aWR0aC1pZTogcmVtLWNhbGMoMTcpO1xuXG4vKlxuICBmb250IHNpemVzXG4gKi9cbiRpY29uLWZvbnQtc2l6ZS1zbWFsbDogJHNtYWxsLXNxdWFyZSAqIDMgIWRlZmF1bHQ7IC8vIDEycHhcbiRpY29uLWZvbnQtc2l6ZS1tZWRpdW06ICRzbWFsbC1zcXVhcmUgKiA0ICFkZWZhdWx0OyAvLyAxNnB4XG4kaWNvbi1mb250LXNpemUtcmVndWxhcjogJHNtYWxsLXNxdWFyZSAqIDUgIWRlZmF1bHQ7IC8vIDIwcHhcbiRpY29uLWZvbnQtc2l6ZS1sYXJnZTogJHNtYWxsLXNxdWFyZSAqIDY7IC8vIDI0cHhcbiRpY29uLWZvbnQtc2l6ZS14LWxhcmdlOiAkc21hbGwtc3F1YXJlICogNzsgLy8gMjhweFxuJGljb24tZm9udC1zaXplLXBsYWNlaG9sZGVyOiAkbGFyZ2Utc3F1YXJlICogNztcbiRmb250LXNpemU6ICRpY29uLWZvbnQtc2l6ZS1tZWRpdW0gIWRlZmF1bHQ7IC8vIDEzcHhcbiRmb250LXNpemUtbWVkaXVtOiAkaWNvbi1mb250LXNpemUtbWVkaXVtOyAvLzE2cHhcbiRmb250LXNpemUtbGFyZ2U6ICRpY29uLWZvbnQtc2l6ZS1yZWd1bGFyO1xuJGZvbnQtc2l6ZS14LWxhcmdlOiAkaWNvbi1mb250LXNpemUteC1sYXJnZTtcbiRmb250LXNpemUtaGVhZGVyOiAxNHB4O1xuXG5cbiRmb250LXdlaWdodC1saWdodDogMzAwOyAvLyBTb3VyY2UgU2FucyBQcm8gTGlnaHRcbiRmb250LXdlaWdodC1yZWd1bGFyOiA0MDA7IC8vIFNvdXJjZSBTYW5zIFBybyBMaWdodFxuJGZvbnQtd2VpZ2h0LXNlbWktYm9sZDogNjAwOyAvLyBTb3VyY2UgU2FucyBQcm8gU2VtaSBCb2xkXG4kZm9udC13ZWlnaHQtYm9sZDogNzAwOyAvLyBTb3VyY2UgU2FucyBQcm8gQm9sZFxuXG5cblxuLypcbiAqIEhlYWRlciBzaXplXG4gKi9cblxuJGhlYWRlci1oZWlnaHQ6IHJlbS1jYWxjKDUyKSAhZGVmYXVsdDtcbiRoZWFkZXItdGV4dC1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA4ICFkZWZhdWx0OyAvLzMycHhcbiRzdWItbmF2LWhlaWdodDogMHJlbSAhZGVmYXVsdDsgLy8gMHB4XG4kc2VhcmNoLWJhci1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxNSAhZGVmYXVsdDtcbi8vJHBhZ2luYXRpb24taGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMjUgIWRlZmF1bHQ7XG4kY2hhcnRzLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDc0ICFkZWZhdWx0O1xuJG1haW4taGVhZGVyLWhlaWdodDogJGhlYWRlci1oZWlnaHQrJHN1Yi1uYXYtaGVpZ2h0ICFkZWZhdWx0O1xuJHZpcnR1YWwtZ3JvdXAtaW5kaWNhdG9yLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDc7XG4kaGVhZGVyLXNpZGUtbWFyZ2luOiByZW0tY2FsYygyNCk7XG5cbi8qXG4gKiBEZXZpY2UgR3JvdXAgc2V0dGluZ3NcbiAqL1xuXG4kZGV2aWNlLWdyb3VwLXBhZGRpbmctbGVmdDogJHNtYWxsLXNxdWFyZSAqIDY7XG4kZGV2aWNlLWdyb3VwLWl0ZW1zLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDk7XG4kZGV2aWNlLWdyb3VwLXdpZHRoOiAkbGFyZ2Utc3F1YXJlICogMjg7XG4kZGV2aWNlLWdyb3VwLW1pbi13aWR0aDogJHNtYWxsLXNxdWFyZSAqIDU1O1xuJGRldmljZS1ncm91cC1tYXgtd2lkdGg6ICRzbWFsbC1zcXVhcmUgKiAxNDA7XG4kZGV2aWNlLWdyb3VwLW1hcmdpbi10b3A6ICRzZWFyY2gtYmFyLWhlaWdodDtcbiRkZXZpY2UtZ3JvdXAtYnV0dG9uLXdpZHRoOiAkbGFyZ2Utc3F1YXJlICogMjE7XG4kZGV2aWNlLWdyb3VwLWJ1dHRvbi1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxMTtcbiRkZXZpY2UtZ3JvdXAtYnV0dG9uLWJvcmRlcjogMXB4IHNvbGlkIGhyYS1jb2xvcigkZ3JleSwgMjApO1xuXG4vKlxuICogQm9yZGVyIHNldHRpbmdzXG4gKi9cblxuJGJvcmRlci1iYXNlOiAxcHggc29saWQgcmdiKDIwNCwgMjA0LCAyMDQpO1xuJGJvcmRlci1yYWRpdXMtc21hbGw6IDNweDtcbiRib3JkZXItcmFkaXVzLWJhc2U6IDRweDtcbiRib3JkZXItcmFkaXVzLWxhcmdlOiA2cHg7XG5cbi8qXG4gKiBTaGFkb3dzIGdvIGJ5IGxldmVsXG4gKi9cblxuJHNoYWRvdzogMCAzcHggOXB4IHJnYmEoMCwgMCwgMCwgLjUpO1xuJHNoYWRvdy0xOiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuJHNoYWRvdy1zbWFsbDogMCAxcHggNnB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7XG4kc2hhZG93LWhlYWRlcjogMHB4IDFweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LXNlYXJjaC1oZWFkZXI6IDhweCAxcHggMTNweCAycHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1saWdodDogMXB4IDFweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuJHNoYWRvdy1saWdodC1ib3R0b20tb25seTogMHB4IDFweCA4cHggcmdiYSgkYmxhY2ssIDAuMTMpO1xuJHNoYWRvdy1hYm92ZTogMCAtMXB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctYWJvdmUtbGVmdDogLTZweCAwcHggMTNweCAycHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1iZWxvdzogMHB4IDlweCA4cHggLTVweCByZ2JhKDE1OCwgMTU4LCAxNTgsIDAuMjUpO1xuJHNoYWRvdy1kcm9wZG93bjogMCAxcHggMTNweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWRpYWxvZzogMCA4cHggMjBweCA2cHggcmdiYSgkYmxhY2ssIDAuNik7XG4kc2hhZG93LWRpYWxvZy1zdWZmaXg6IDBweCAxNnB4IDIwcHggM3B4IHJnYmEoJGJsYWNrLCAwLjYpO1xuJHNoYWRvdy1sYXlvdXQ6IDZweCAwcHggOXB4IDBweCByZ2JhKCRibGFjaywgMC4yKTtcbiRzaGFkb3ctc2F2ZWQtc2VhcmNoZXM6IDRweCA0cHggOHB4IC0ycHggcmdiYSg2Nyw3MCw3NCwuMTMpO1xuJHNoYWRvdy1jaGFydC1jYXJkOiAwIDZweCAxNnB4IHJnYmEoMjAsMzAsMzcsMC4wOCk7XG4kc2hhZG93LWNvbmZpZy1jYXJkOiAwIDAgMjRweCAwIHJnYmEoMjAsMzAsMzcsMC4xKTtcblxuLypcbiAqIFBhZGRpbmcgc2V0dGluZ3NcbiAqL1xuXG4kYm9keS1wYWRkaW5nOiAkbGFyZ2Utc3F1YXJlICogMjtcbiRwYWRkaW5nLXNtYWxsOiAkbGFyZ2Utc3F1YXJlO1xuJGJhc2UtcGFkZGluZzogJHNtYWxsLXNxdWFyZSAqIDQ7IC8vIDE2cHhcbiRoYWxmLWJhc2UtcGFkZGluZzogJGJhc2UtcGFkZGluZyAvIDI7XG4kbW9kYWwtcGFkZGluZzogJGJhc2UtcGFkZGluZztcbiRsYXlvdXQtcGFkZGluZzogKCRiYXNlLXBhZGRpbmcgKiAyKSAoJGJvZHktcGFkZGluZyAqIDIpICgkYmFzZS1wYWRkaW5nICogMikgKCRib2R5LXBhZGRpbmcgKiAyKTtcbiRwYWRkaW5nLWJhc2UtdmVydGljYWw6IDZweDtcbiRwYWRkaW5nLWJhc2UtaG9yaXpvbnRhbDogJHNtYWxsLXNxdWFyZSAqIDM7XG4kcGFkZGluZy1sYXJnZS12ZXJ0aWNhbDogMTBweDtcbiRwYWRkaW5nLWxhcmdlLWhvcml6b250YWw6ICAkc21hbGwtc3F1YXJlICogNDtcbiRwYWRkaW5nLW1lZGl1bS12ZXJ0aWNhbDogMTRweDtcbiRwYWRkaW5nLXNtYWxsLXZlcnRpY2FsOiA1cHg7XG4kcGFkZGluZy1zbWFsbC1ob3Jpem9udGFsOiAxMHB4O1xuXG4vKlxuICogSW5wdXRzXG4gKi9cbiRpbnB1dC1wYWRkaW5nOiAkc21hbGwtc3F1YXJlICRzbWFsbC1zcXVhcmUgKiAyO1xuJGlucHV0LWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDg7XG5cbi8qXG4gKiBUb29sVGlwc1xuICovXG5cbi8vIFRvb2x0aXBzXG4kdG9vbHRpcC1tYXgtd2lkdGg6IDI1MHB4ICFkZWZhdWx0O1xuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpICFkZWZhdWx0O1xuJHRvb2x0aXAtdGV4dC1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiR0b29sdGlwLWRlbGF5OiAwLjRzICFkZWZhdWx0O1xuJHRvb2x0aXAtZHVyYXRpb246IDAuMXMgIWRlZmF1bHQ7XG5cbi8qXG4gKiBBY3Rpb24gYmFyIHNpemVzXG4gKi9cblxuJGRldmljZS1hY3Rpb24tYmFyLWhlaWdodDogJGxhcmdlLXNxdWFyZSAqIDU7XG4kY291bnQtY29udGFpbmVyLXBhZGRpbmc6ICgkbGFyZ2Utc3F1YXJlICogMikgKCRzbWFsbC1zcXVhcmUgKiA0KSAoJGxhcmdlLXNxdWFyZSAqIDIpICgkc21hbGwtc3F1YXJlICogNCk7XG5cbi8qKlxuKiAgRGV2aWNlIGdyaWQgc2l6ZXNcbiovXG5cbiRyb3ctYWJvdmUtZ3JpZC1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxNDtcbiRjaGVjay1jZWxsLXBhZGRpbmc6IDAgMCAwICRzbWFsbC1zcXVhcmUqMjtcbiRkZXZpY2UtZ3JpZC1taW4taGVpZ2h0OiAkc21hbGwtc3F1YXJlICogNzE7XG5cbi8qXG4gKiBGb2N1cyBib3JkZXJcbiAqL1xuXG4kaHJhLWZvY3VzLW91dGxpbmU6IDJweCBzb2xpZCBocmEtY29sb3IoJGN5YW4pO1xuXG4vKlxuICogQm9yZGVyXG4gKi9cblxuJGhyYS1ib3JkZXI6IDFweCBzb2xpZCBocmEtY29sb3IoJGdyZXksIDIwKTtcbiRocmEtYm9yZGVyLWVycm9yOiAxcHggc29saWQgaHJhLWNvbG9yKCRyZWQpO1xuJGhyYS1ib3JkZXItaW5wdXQtZGlzYWJsZWQ6IDFweCBzb2xpZCBocmEtY29sb3IoJGdyZXksIDQwKTtcblxuXG4vKlxuICogUG9wLXVwXG4qL1xuJGhyYS1wb3B1cC1iZWFrLXNpemU6ICRzbWFsbC1zcXVhcmUqMztcbiRocmEtcG9wdXAtYmVhay1ib3R0b20tY2VudGVyOiBjYWxjKDUwJSAtICgxLjI1cmVtIC8gMikpO1xuJHBvcC11cC1mb290ZXItaGVpZ2h0OiAkbGFyZ2Utc3F1YXJlICogNTtcbiRwb3AtdXAtdGl0bGUtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTM7XG4kcG9wLXVwLXRpdGxlLW1ham9yLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDE0O1xuLy8gc3R5bGVndWlkZTppZ25vcmU6ZW5kXG5cbi8qXG4qIFN0YXR1cyBOb3RpZmljYXRpb25cbiovXG4kaHJhLXN0YXR1cy1ub3RpZmljYXRpb24td2lkdGg6ICRzbWFsbC1zcXVhcmUgKiA4MztcbiRocmEtc3RhdHVzLW5vdGlmaWNhdGlvbi10b3A6ICRzbWFsbC1zcXVhcmUgKiAxNDtcbiRocmEtc3RhdHVzLW5vdGlmaWNhdGlvbi1ib3R0b206ICRzbWFsbC1zcXVhcmUgKiAxNTtcblxuXG4vKlxuICBSb3VuZCBidXR0b24gc2l6ZXNcbiAqL1xuICRyb3VuZC1zbWFsbDogJHNtYWxsLXNxdWFyZSAqIDc7XG4gJHJvdW5kLW1lZGl1bTogJHNtYWxsLXNxdWFyZSAqIDg7XG4gJHJvdW5kLWxhcmdlOiAkc21hbGwtc3F1YXJlICogOTtcblxuLypcbiAqIEltYWdlIEljb24gU2l6ZXNcbiAqL1xuXG4kaW1nLWljb24tc2l6ZS1zbWFsbDogJHNtYWxsLXNxdWFyZSAqIDg7XG4kaW1nLWljb24tc2l6ZS1tZWRpdW06ICRzbWFsbC1zcXVhcmUgKiAxMDtcblxuXG4kYmV6aWVyOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuXG5cbi8qKiBNb2RhbCBzaXplcyAqKi9cbiRtb2RhbC10aXRsZS1oZWlnaHQ6IHJlbS1jYWxjKDUyKTtcbiRtb2RhbC1mb290ZXItaGVpZ2h0OiByZW0tY2FsYyg2MCk7XG4iLCJAaW1wb3J0ICcuLi8uLi8uLi8uLi9zaGFyZWQvc3R5bGVzL2Jhc2Uvc2V0dGluZ3MnO1xuXG4kYnV0dG9uLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDg7XG4kYnV0dG9uLXdpZHRoOiAkbGFyZ2Utc3F1YXJlICogMTA7XG5cbjpob3N0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiAkc21hbGwtc3F1YXJlICogNTU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG46aG9zdCBoMSB7XG4gIGNvbG9yOiBocmEtY29sb3IoJGdyZXksIDgwKTtcbiAgZm9udC1zaXplOiAkbGFyZ2Utc3F1YXJlICogNDtcbiAgbGluZS1oZWlnaHQ6ICRsYXJnZS1zcXVhcmUgKiA0O1xuICBtYXJnaW4tdG9wOiAkbGFyZ2Utc3F1YXJlO1xufVxuXG46aG9zdCBwIHtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLW1lZGl1bTtcbiAgbGluZS1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3O1xuICBtYXJnaW4tdG9wOiAkbGFyZ2Utc3F1YXJlO1xuICBtYXJnaW4tYm90dG9tOiAkc21hbGwtc3F1YXJlO1xufVxuXG46aG9zdCAuZm9ybS1lcnJvciB7XG4gIGNvbG9yOiBocmEtY29sb3IoJHJlZCk7XG59XG5cbjpob3N0IGZvcm0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAkbGFyZ2Utc3F1YXJlICogMjtcbiAgLmZvcm0tZ3JvdXAge1xuICAgIC8vIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGZvcm0tZ3JvdXAgc3R5bGVcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZvcm0tZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAubGVmdCwgLnJpZ2h0IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgIH1cbiAgICAubGVmdCB7XG4gICAgICBsaW5lLWhlaWdodDogJGJ1dHRvbi1oZWlnaHQ7XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemUtaGVhZGVyO1xuICAgIH1cbiAgICAucmlnaHQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLyoqIFVzZWQgdG8gd3JhcCBhIGJ1dHRvbiBzbyB0aGF0IHRoZSBsb2FkZXIgc3RheXMgaW4gdGhlIHNhbWUgc3BhY2UgYXMgdGhlIGJ1dHRvbiAqKi9cblxuOmhvc3QgYSB7XG4gIGNvbG9yOiBocmEtY29sb3IoJGJsdWUpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4iXX0= */\"","import { Component } from '@angular/core';\n@Component({\n selector: 'layout-form',\n templateUrl: './layout-form.ctrl.html',\n styleUrls: ['./layout-form.ctrl.scss']\n})\n/**\n * Layout form control used as a common style for the two panel layout setup\n */\nexport class LayoutFormControl {\n\n}","import { NgModule } from '@angular/core';\nimport { TwoPanelLayoutControl } from './two-panel/two-panel-layout.ctrl';\nimport { CommonModule } from '@angular/common';\nimport { LayoutFormControl } from './layout-form/layout-form.ctrl';\nimport { CopyrightControl } from './copy-right/copyright.ctrl';\nimport { HeroImageControl } from './hero-image/hero-image.ctrl';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n TwoPanelLayoutControl,\n LayoutFormControl,\n CopyrightControl,\n HeroImageControl\n ],\n exports: [\n TwoPanelLayoutControl,\n LayoutFormControl,\n CopyrightControl,\n HeroImageControl\n ]\n})\n\nexport class SharedLayoutModule { }","export default \"/*\\nHigh DPI screens (retina macbooks, highresolution laptops, etc)\\n*/\\n/* Firefox specific styles go here */\\n/*\\nCOMMON COLOR NAMES\\n\\nThese colors are mapped to the names from the official colors.\\nInstead of having names like `crush` or `blaze`, developers will use their common, non-marketized name.\\neg. $red: crush\\n $orange: blaze\\n\\nThen, use the `hra-color` function to get the color\\neg. color: hra-color($red)\\n*/\\n/* **** */\\n/* * Charts Colors */\\n/* info text background */\\n/* Use following classes for aesthetics only - New UI KIT */\\n/* Color Mapping*/\\n/*ends*/\\n/* Used for grids and margins */\\n/*\\n font sizes\\n */\\n/*\\n * Header size\\n */\\n/*\\n * Device Group settings\\n */\\n/*\\n * Border settings\\n */\\n/*\\n * Shadows go by level\\n */\\n/*\\n * Padding settings\\n */\\n/*\\n * Inputs\\n */\\n/*\\n * ToolTips\\n */\\n/*\\n * Action bar sizes\\n */\\n/**\\n* Device grid sizes\\n*/\\n/*\\n * Focus border\\n */\\n/*\\n * Border\\n */\\n/*\\n * Pop-up\\n*/\\n/*\\n* Status Notification\\n*/\\n/*\\n Round button sizes\\n */\\n/*\\n * Image Icon Sizes\\n */\\n/** Modal sizes **/\\n:host {\\n width: 100%;\\n height: 100%;\\n display: flex;\\n flex-flow: row nowrap;\\n position: relative;\\n overflow: auto; }\\n#logo-container {\\n display: inline-flex;\\n flex-shrink: 0;\\n position: relative;\\n padding-top: 3.75rem; }\\n#logo-container .logo {\\n background-repeat: no-repeat;\\n background-position: center;\\n position: relative;\\n z-index: 1;\\n background-size: contain;\\n height: 9.0625rem;\\n width: 60%;\\n margin: 0 auto;\\n background-image: url('Logo.png'); }\\n.left-panel {\\n display: inline-flex;\\n height: 100%;\\n width: 100%;\\n flex: 1 1 0px;\\n min-width: 665px;\\n box-shadow: 6px 0px 9px 0px rgba(20, 30, 37, 0.2); }\\n@media only screen and (min-width: 268px) and (max-width: 1024px) {\\n .left-panel {\\n display: none; } }\\n@media only screen and (min-width: 1025px) and (max-width: 1280px) {\\n .left-panel {\\n min-width: 536px; } }\\n.right-panel {\\n display: inline-flex;\\n height: 100%;\\n width: 100%;\\n flex: 0 1 450px;\\n padding: 2rem 3rem 2rem 3rem;\\n flex-flow: column nowrap;\\n overflow-y: auto; }\\n.right-panel layout-form {\\n max-width: 450px;\\n margin: 0 auto;\\n padding-top: 3.75rem; }\\n@media only screen and (min-width: 268px) and (max-width: 1024px) {\\n .right-panel {\\n flex: 1 1 0px;\\n min-width: 18.75rem; } }\\nhra-logo {\\n display: none; }\\n@media only screen and (min-width: 268px) and (max-width: 1024px) {\\n hra-logo {\\n display: inline-block; } }\\nhra-copyright {\\n display: none; }\\n@media only screen and (min-width: 268px) and (max-width: 1024px) {\\n hra-copyright {\\n padding-top: 1.5rem;\\n margin-top: auto;\\n display: block; } }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21lZGlhcXVlcmllcy5zY3NzIiwic3JjL2FwcC9zaGFyZWQvY29udHJvbHMvbGF5b3V0L3R3by1wYW5lbC90d28tcGFuZWwtbGF5b3V0LmN0cmwuc2NzcyIsIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21peGlucy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9zdHlsZXMvYmFzZS9fY29sb3JzLnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvc2hhcmVkL3N0eWxlcy9iYXNlL19zZXR0aW5ncy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9jb250cm9scy9sYXlvdXQvdHdvLXBhbmVsL3R3by1wYW5lbC1sYXlvdXQuY3RybC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThCQTs7Q0M1QkM7QUMwS0Qsb0NBQUE7QUM1S0E7Ozs7Ozs7Ozs7Q0ZjQztBRStERCxTQUFBO0FBVUEsb0JBQUE7QUFLQSx5QkFBQTtBQUlBLDJEQUFBO0FBRUEsaUJBQUE7QUFvQkEsT0FBQTtBQ25IQSwrQkFBQTtBQWlCQTs7RUhJRTtBR21CRjs7RUhoQkU7QUc4QkY7O0VIM0JFO0FHeUNGOztFSHRDRTtBRytDRjs7RUg1Q0U7QUdrRUY7O0VIL0RFO0FHaUZGOztFSDlFRTtBR29GRjs7RUhqRkU7QUc0RkY7O0VIekZFO0FHZ0dGOztDSDdGQztBR3FHRDs7RUhsR0U7QUd3R0Y7O0VIckdFO0FHOEdGOztDSDNHQztBR3FIRDs7Q0hsSEM7QUcwSEQ7O0VIdkhFO0FHOEhGOztFSDNIRTtBR3NJRixrQkFBQTtBQ3BNQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0VBQ1osYUFBYTtFQUNiLHFCQUFxQjtFQUNyQixrQkFBa0I7RUFDbEIsY0FBYyxFQUFBO0FBU2hCO0VBQ0Usb0JBQW9CO0VBQ3BCLGNBQWM7RUFDZCxrQkFBa0I7RUFFbEIsb0JBQThCLEVBQUE7QUFMaEM7SUFRSSw0QkFBNEI7SUFDNUIsMkJBQTJCO0lBQzNCLGtCQUFrQjtJQUNsQixVQUFVO0lBQ1Ysd0JBQXdCO0lBQ3hCLGlCSHFDcUQ7SUdwQ3JELFVBQVU7SUFDVixjQUFjO0lBQ2QsaUNBQTJELEVBQUE7QUFJL0Q7RUF6QkUsb0JBQW9CO0VBQ3BCLFlBQVk7RUFDWixXQUFXO0VBeUJYLGFBQWE7RUFDYixnQkFBZ0I7RUFFaEIsaURGUmdILEVBQUE7QUhmaEg7SUtrQkY7TUFPSSxhQUFhLEVBQUEsRUFNaEI7QUwvQkM7SUtrQkY7TUFXSSxnQkFBZ0IsRUFBQSxFQUVuQjtBQUVEO0VBeENFLG9CQUFvQjtFQUNwQixZQUFZO0VBQ1osV0FBVztFQXdDWCxlQXpEaUI7RUEwRGpCLDRCRG1EOEY7RUNsRDlGLHdCQUF3QjtFQUN4QixnQkFBZ0IsRUFBQTtBQUxsQjtJQVNJLGdCQWhFZTtJQWlFZixjQUFjO0lBQ2Qsb0JBQThCLEVBQUE7QUw1Q2hDO0lLaUNGO01BZUksYUFBYTtNQUNiLG1CQXBFc0MsRUFBQSxFQXNFekM7QUFFRDtFQUNFLGFBQWEsRUFBQTtBTHREYjtJS3FERjtNQUdJLHFCQUFxQixFQUFBLEVBRXhCO0FBRUQ7RUFDRSxhQUFhLEVBQUE7QUw3RGI7SUs0REY7TUFJSSxtQkFBOEI7TUFDOUIsZ0JBQWdCO01BQ2hCLGNBQWMsRUFBQSxFQUVqQiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb250cm9scy9sYXlvdXQvdHdvLXBhbmVsL3R3by1wYW5lbC1sYXlvdXQuY3RybC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gIEF1dGhvcjogUmFmYWwgQnJvbWlyc2tpXG4vLyAgd3d3OiBodHRwOi8vcmFmYWxicm9taXJza2kuY29tL1xuLy8gIGdpdGh1YjogaHR0cDovL2dpdGh1Yi5jb20vcGFyYW5vaWRhL3Nhc3MtbWVkaWFxdWVyaWVzXG4vL1xuLy8gIExpY2Vuc2VkIHVuZGVyIGEgTUlUIExpY2Vuc2Vcbi8vXG4vLyAgVmVyc2lvbjpcbi8vICAxLjYuMVxuLy8gLS0tIGdlbmVyYXRvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBtcSgkYXJncy4uLikge1xuICAkbWVkaWEtdHlwZTogJ29ubHkgc2NyZWVuJztcbiAgJG1lZGlhLXR5cGUta2V5OiAnbWVkaWEtdHlwZSc7XG4gICRhcmdzOiBrZXl3b3JkcygkYXJncyk7XG4gICRleHByOiAnJztcbiAgQGlmIG1hcC1oYXMta2V5KCRhcmdzLCAkbWVkaWEtdHlwZS1rZXkpIHtcbiAgICAkbWVkaWEtdHlwZTogbWFwLWdldCgkYXJncywgJG1lZGlhLXR5cGUta2V5KTtcbiAgICAkYXJnczogbWFwLXJlbW92ZSgkYXJncywgJG1lZGlhLXR5cGUta2V5KTtcbiAgfVxuICBAZWFjaCAka2V5LFxuICAkdmFsdWUgaW4gJGFyZ3Mge1xuICAgIEBpZiAkdmFsdWUge1xuICAgICAgJGV4cHI6IFwiI3skZXhwcn0gYW5kICgjeyRrZXl9OiAjeyR2YWx1ZX0pXCI7XG4gICAgfVxuICB9XG4gIEBtZWRpYSAjeyRtZWRpYS10eXBlfSAjeyRleHByfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuXG4vKlxuSGlnaCBEUEkgc2NyZWVucyAocmV0aW5hIG1hY2Jvb2tzLCBoaWdocmVzb2x1dGlvbiBsYXB0b3BzLCBldGMpXG4qL1xuXG5AbWl4aW4gaGRwaSgkcmF0aW86IDEuMykge1xuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICN7cm91bmQoJHJhdGlvKjk2KX1kcGkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyAkb3JpZW50YXRpb246IGxhbmRzY2FwZSB8IHBvcnRyYWl0XG5AbWl4aW4gdGFibGV0KCRvcmllbnRhdGlvbjogZmFsc2UpIHtcbiAgJG1pbjogMjY4cHg7XG4gICRtYXg6IDEwMjRweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgsICRvcmllbnRhdGlvbjogJG9yaWVudGF0aW9uKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gc21hbGwgZGVza3RvcCAtIDEwMjUgPC0+IDEyODBcbkBtaXhpbiBzbWFsbC1kZXNrdG9wKCkge1xuICAkbWluOiAxMDI1cHg7XG4gICRtYXg6IDEyODBweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBtZWRpdW0gZGVza3RvcCAtIDEyODEgPC0+IDE0NDBcbkBtaXhpbiBtZWRpdW0tZGVza3RvcCgpIHtcbiAgJG1pbjogMTI4MXB4O1xuICAkbWF4OiAxNDQwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gbGFyZ2UgZGVza3RvcCAtIDE0NDEgPC0+IDE2MDBcbkBtaXhpbiBsYXJnZS1kZXNrdG9wKCkge1xuICAkbWluOiAxNDQxcHg7XG4gICRtYXg6IDE2MDBweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyB4bGFyZ2UgZGVza3RvcCAtIDE2MDEgLT4gaW5maW5pdHlcbkBtaXhpbiB4bGFyZ2UtZGVza3RvcCgpIHtcbiAgJG1pbjogMTYwMXB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIGRlc2t0b3Agb3ZlcmxheVxuQG1peGluIGRlc2t0b3Atb3ZlcmxheSgpIHtcbiAgICAkbWluOiAyNjhweDtcbiAgICAkbWF4OiA5MjZweDtcbiAgICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG4iLCIvKlxuSGlnaCBEUEkgc2NyZWVucyAocmV0aW5hIG1hY2Jvb2tzLCBoaWdocmVzb2x1dGlvbiBsYXB0b3BzLCBldGMpXG4qL1xuLyogRmlyZWZveCBzcGVjaWZpYyBzdHlsZXMgZ28gaGVyZSAqL1xuLypcbkNPTU1PTiBDT0xPUiBOQU1FU1xuXG5UaGVzZSBjb2xvcnMgYXJlIG1hcHBlZCB0byB0aGUgbmFtZXMgZnJvbSB0aGUgb2ZmaWNpYWwgY29sb3JzLlxuSW5zdGVhZCBvZiBoYXZpbmcgbmFtZXMgbGlrZSBgY3J1c2hgIG9yIGBibGF6ZWAsIGRldmVsb3BlcnMgd2lsbCB1c2UgdGhlaXIgY29tbW9uLCBub24tbWFya2V0aXplZCBuYW1lLlxuZWcuICRyZWQ6IGNydXNoXG4gICAgJG9yYW5nZTogYmxhemVcblxuVGhlbiwgdXNlIHRoZSBgaHJhLWNvbG9yYCBmdW5jdGlvbiB0byBnZXQgdGhlIGNvbG9yXG5lZy4gY29sb3I6IGhyYS1jb2xvcigkcmVkKVxuKi9cbi8qICoqKiogKi9cbi8qICogQ2hhcnRzIENvbG9ycyAqL1xuLyogaW5mbyB0ZXh0IGJhY2tncm91bmQgKi9cbi8qIFVzZSBmb2xsb3dpbmcgY2xhc3NlcyBmb3IgYWVzdGhldGljcyBvbmx5IC0gTmV3IFVJIEtJVCAqL1xuLyogQ29sb3IgTWFwcGluZyovXG4vKmVuZHMqL1xuLyogVXNlZCBmb3IgZ3JpZHMgYW5kIG1hcmdpbnMgKi9cbi8qXG4gIGZvbnQgc2l6ZXNcbiAqL1xuLypcbiAqIEhlYWRlciBzaXplXG4gKi9cbi8qXG4gKiBEZXZpY2UgR3JvdXAgc2V0dGluZ3NcbiAqL1xuLypcbiAqIEJvcmRlciBzZXR0aW5nc1xuICovXG4vKlxuICogU2hhZG93cyBnbyBieSBsZXZlbFxuICovXG4vKlxuICogUGFkZGluZyBzZXR0aW5nc1xuICovXG4vKlxuICogSW5wdXRzXG4gKi9cbi8qXG4gKiBUb29sVGlwc1xuICovXG4vKlxuICogQWN0aW9uIGJhciBzaXplc1xuICovXG4vKipcbiogIERldmljZSBncmlkIHNpemVzXG4qL1xuLypcbiAqIEZvY3VzIGJvcmRlclxuICovXG4vKlxuICogQm9yZGVyXG4gKi9cbi8qXG4gKiBQb3AtdXBcbiovXG4vKlxuKiBTdGF0dXMgTm90aWZpY2F0aW9uXG4qL1xuLypcbiAgUm91bmQgYnV0dG9uIHNpemVzXG4gKi9cbi8qXG4gKiBJbWFnZSBJY29uIFNpemVzXG4gKi9cbi8qKiBNb2RhbCBzaXplcyAqKi9cbjpob3N0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbiNsb2dvLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LXNocmluazogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLXRvcDogMy43NXJlbTsgfVxuICAjbG9nby1jb250YWluZXIgLmxvZ28ge1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBoZWlnaHQ6IDkuMDYyNXJlbTtcbiAgICB3aWR0aDogNjAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uLy4uLy4uLy4uL2Fzc2V0cy9pbWcvTG9nby5wbmdcIik7IH1cblxuLmxlZnQtcGFuZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgZmxleDogMSAxIDBweDtcbiAgbWluLXdpZHRoOiA2NjVweDtcbiAgYm94LXNoYWRvdzogNnB4IDBweCA5cHggMHB4IHJnYmEoMjAsIDMwLCAzNywgMC4yKTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDI2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLmxlZnQtcGFuZWwge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNXB4KSBhbmQgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gICAgLmxlZnQtcGFuZWwge1xuICAgICAgbWluLXdpZHRoOiA1MzZweDsgfSB9XG5cbi5yaWdodC1wYW5lbCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBmbGV4OiAwIDEgNDUwcHg7XG4gIHBhZGRpbmc6IDJyZW0gM3JlbSAycmVtIDNyZW07XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgb3ZlcmZsb3cteTogYXV0bzsgfVxuICAucmlnaHQtcGFuZWwgbGF5b3V0LWZvcm0ge1xuICAgIG1heC13aWR0aDogNDUwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZy10b3A6IDMuNzVyZW07IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAyNjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5yaWdodC1wYW5lbCB7XG4gICAgICBmbGV4OiAxIDEgMHB4O1xuICAgICAgbWluLXdpZHRoOiAxOC43NXJlbTsgfSB9XG5cbmhyYS1sb2dvIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDI2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgaHJhLWxvZ28ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cblxuaHJhLWNvcHlyaWdodCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAyNjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIGhyYS1jb3B5cmlnaHQge1xuICAgICAgcGFkZGluZy10b3A6IDEuNXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4iLCJAaW1wb3J0ICcuL21lZGlhcXVlcmllcyc7XG5cbi8vLyAvIHN0eWxlZ3VpZGU6aWdub3JlOnN0YXJ0XG4vLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2Vcbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcbi8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIFRoZSBiYXNlIHZhbHVlIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBgcmVtYC4gSWYgeW91J3JlIHVzaW5nIEZvdW5kYXRpb24gb3V0IG9mIHRoZSBib3gsIHRoaXMgaXMgMTZweC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgYG51bGxgLCB0aGUgZnVuY3Rpb24gd2lsbCByZWZlcmVuY2UgdGhlIGAkYmFzZS1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlPT1udWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpPT0nJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cbiAgQGlmICRjb3VudD09MSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XG59XG5cbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXG5AZnVuY3Rpb24gLXpmLWJwLXRvLWVtKCR2YWx1ZSkge1xuICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICBAaWYgdW5pdCgkdmFsdWUpPT0ncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9J251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSsnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW1cbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWU9PTByZW0ge1xuICAgICR2YWx1ZTogMDtcbiAgfVxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIEFuaW1hdGlvbiBrZXlmcmFtZXMgYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGFuaW1hdGlvbi1uYW1lIC0gTmFtZSBvZiB0aGUgYW5pbWF0aW9uLlxuQG1peGluIGtleWZyYW1lcygkYW5pbWF0aW9uLW5hbWUpIHtcbiAgQC13ZWJraXQta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1tb3ota2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1tcy1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW8ta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBBbmltYXRpb24gYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0ciAtIGNzczMgYW5pbWF0aW9uIHNwZWMuXG5AbWl4aW4gYW5pbWF0aW9uKCRzdHIpIHtcbiAgLXdlYmtpdC1hbmltYXRpb246ICN7JHN0cn07XG4gIC1tb3otYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtbXMtYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtby1hbmltYXRpb246ICN7JHN0cn07XG4gIGFuaW1hdGlvbjogI3skc3RyfTtcbn1cblxuLy8vIEJveCBzaGFkb3cgYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0ciAtIGNzczMgYm94LXNoYWRvdyBzcGVjLlxuQG1peGluIGJveC1zaGFkb3coJHN0cikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICN7JHN0cn07XG4gIC1tb3otYm94LXNoYWRvdzogI3skc3RyfTtcbiAgLW8tYm94LXNoYWRvdzogI3skc3RyfTtcbiAgYm94LXNoYWRvdzogI3skc3RyfTtcbn1cblxuLy8vIGdyYWRpZW50IGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gZ3JhZGllbnQoJGNvbG9yMSwgJGNvbG9yMikge1xuICBiYWNrZ3JvdW5kOiAjeyRjb2xvcjF9O1xuICAvKiBGb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBncmFkaWVudHMgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBTYWZhcmkgNS4xIHRvIDYuMCAqL1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBPcGVyYSAxMS4xIHRvIDEyLjAgKi9cbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBGaXJlZm94IDMuNiB0byAxNSAqL1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIFN0YW5kYXJkIHN5bnRheCAqL1xufVxuXG5AbWl4aW4gdmVydGljYWwtZ3JhZGllbnQtZGl2aWRlcigpe1xuICB3aWR0aDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6IDFweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgaHJhLWNvbG9yKCRncmV5LCAyMCksICR3aGl0ZSk7XG59XG5cblxuLy8vIElFIG9ubHkgcXVlcnlcbkBtaXhpbiBpZS1vbmx5KCkge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuICAgIC8qIElFMTArIHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG5AbWl4aW4gY3JlYXRlLWFuaW1hdGlvbigkYW5pLW5hbWUpIHtcbiAgYW5pbWF0aW9uOiAkYW5pLW5hbWUgZm9yd2FyZHMgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cblxuQG1peGluIGNyZWF0ZS10cmFuc2l0aW9uKCRwcm9wZXJ0eS1uYW1lKSB7XG4gIHRyYW5zaXRpb246ICRwcm9wZXJ0eS1uYW1lIDMwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG4vLy8gRWRnZSBvbmx5IHF1ZXJ5XG5AbWl4aW4gZWRnZS1vbmx5KCkge1xuICBAc3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAvKiBFZGdlIHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG4vKiBGaXJlZm94IHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG5AbWl4aW4gZmlyZWZveC1vbmx5KCkge1xuICBAc3VwcG9ydHMgKC1tb3otYXBwZWFyYW5jZTpub25lKSB7XG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG5cbi8vIHN0eWxlZ3VpZGU6aWdub3JlOmVuZCIsIi8qXG5DT01NT04gQ09MT1IgTkFNRVNcblxuVGhlc2UgY29sb3JzIGFyZSBtYXBwZWQgdG8gdGhlIG5hbWVzIGZyb20gdGhlIG9mZmljaWFsIGNvbG9ycy5cbkluc3RlYWQgb2YgaGF2aW5nIG5hbWVzIGxpa2UgYGNydXNoYCBvciBgYmxhemVgLCBkZXZlbG9wZXJzIHdpbGwgdXNlIHRoZWlyIGNvbW1vbiwgbm9uLW1hcmtldGl6ZWQgbmFtZS5cbmVnLiAkcmVkOiBjcnVzaFxuICAgICRvcmFuZ2U6IGJsYXplXG5cblRoZW4sIHVzZSB0aGUgYGhyYS1jb2xvcmAgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb2xvclxuZWcuIGNvbG9yOiBocmEtY29sb3IoJHJlZClcbiovXG5cbiR0aGVtZS1ncmVlbjogI2RmZDI2OTtcbiR0aGVtZS1jb2xvcjogJHRoZW1lLWdyZWVuO1xuJGJsdWU6IGJsdWU7XG4kY3lhbjogY3lhbjtcbiRncmV5OiBncmV5O1xuJHJlZDogY3J1c2g7XG4kb3JhbmdlOiBibGF6ZTtcbiR5ZWxsb3c6IHN1bnNldCwgNjA7XG4kZ3JlZW46IHNlYWZvYW07XG4kbGlnaHQtZ3JlZW46IHNlYXdlZWQ7XG4kZGFyay1ncmVlbjogbWFyaW5lO1xuJGJyb3duOiBicm93bjtcbiRwdXJwbGU6IHB1cnBsZTtcbiRzdW5zZXQ6IHN1bnNldDtcbiRwaW5rOiBwaW5rO1xuXG4kbmV3Z3JleTogbmV3Z3JleTtcbiRuZXdibHVlOiBuZXdibHVlO1xuJG5ld2N5YW46IG5ld2N5YW47XG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBobWEncyBDb2xvdXIgUGFsZXR0ZVxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuJGNvbG9yczogKFxuICAgIGJsdWU6ICg1OiAjZjNmYmZlLCAxMDogI2UyZjRmYiwgMjA6ICNiYWU1ZjUsIDQwOiAjNzFjOGYxLCA2MDogIzMyYjZlOSwgODA6ICMwMDk5ZDMsIDEwMDogIzAwNzRhYSwgMTIwOiAjMDY0YzdjKSxcbiAgICBjcnVzaDogKDU6ICNmZmY3ZjYsIDEwOiAjZmVmMGVkLCAyMDogI2ZkZGZkYywgNDA6ICNmYWMxYmEsIDYwOiAjZjQ4MjcyLCA4MDogI2YxNjE0ZiwgMTAwOiAjZTMyNzIyLCAxMTA6I2MxM2YyYiwgMTIwOiAjYTcxZTIyKSxcbiAgICBjeWFuOiAoNTogI2YyZjlmOSwgMTA6ICNlNmY0ZjQsIDIwOiAjY2NlYWVhLCA0MDogIzlhZDdkNiwgNjA6ICM2OGM1YzQsIDgwOiAjMzZiMWIwLCAxMDA6ICMwMjlmOWQsIDEyMDogIzAyNmY2ZiksXG4gICAgYmxhemU6ICg1OiAjZmZmN2YzLCAxMDogI2ZmZjFlOSwgMjA6ICNmY2UxZDMsIDQwOiAjZmNjNWE3LCA2MDogI2Y3YTc3YiwgODA6ICNmNjg5NGQsIDEwMDogI2YyNmIyMSwgMTIwOiAjYjczZTI1KSxcbiAgICBncmV5OiAoNTogI2ZhZmJmYiwgMTA6ICNlY2VmZjAsIDIwOiAjZTRlN2U5LCA0MDogI2E4YjJiNywgNjA6ICM4MjhkOTMsIDgwOiAjNUI2NjcwLCAxMDA6ICMzZDQ2NGQsIDEyMDogIzE0MWUyNSksXG4gICAgc2VhZm9hbTogKDU6ICNlZmY5ZjgsIDEwOiAjZTRmN2YzLCAyMDogI2NmZWRlOCwgNDA6ICNhNWVhZGIsIDYwOiAjNjFkNmI4LCA4MDogIzJmZDJhOCwgMTAwOiAjMWVhZDhhLCAxMjA6ICMwYjcwNWQpLFxuICAgIHNlYXdlZWQ6ICg1OiAjZjhmYmY2LCAxMDogI2YyZjhlZCwgMjA6ICNlM2YwZDksIDQwOiAjY2JlNGI1LCA2MDogI2IwZDc4ZSwgODA6ICM5NWNiNmEsIDEwMDogIzdhYzE0MiwgMTIwOiAjNDk5MTQyKSxcbiAgICBtYXJpbmU6ICg1OiAjZjdmOWYzLCAxMDogI2YxZjRlOCwgMjA6ICNlNGVhZDIsIDQwOiAjY2JkOWE3LCA2MDogI2JmZGI4NSwgODA6ICNhZWQyNTUsIDEwMDogIzdhYTEzZSwgMTIwOiAjNGM3MzM2KSxcbiAgICBwZWJibGU6ICg1OiAjZmJmY2ZjLCAxMDogI2Y1ZjZmNiwgMjA6ICNlOWU4ZTksIDQwOiAjZDVkNGQ1LCA2MDogI2FhYWFhYiwgODA6ICM3YzdjODEsIDEwMDogIzU0NTM1NSwgMTIwOiAjMjgyNzJiKSxcbiAgICBzdW5zZXQ6ICg1OiAjZmZmZGVlLCAxMDogI2ZmZmJkYiwgMjA6ICNmZGY3YjQsIDQwOiAjZmZmNTdlLCA2MDogI2ZmZjEwMCwgODA6ICNmYmFkMWMsIDEwMDogI2Y0N2YxZiwgMTIwOiAjYzk1NDI4KSxcbiAgICBicm93bjogKDU6ICNmN2Y0ZjIsIDEwOiAjZWFlNGUxLCAyMDogI2Q4Y2VjYiwgNDA6ICNiYWFiYTUsIDYwOiAjOTY4MzdjLCA4MDogIzc3NWQ1MywgMTAwOiAjNTkzODJjLCAxMjA6ICMyZjE4MGQpLFxuICAgIHB1cnBsZTogKDU6ICNmMmVmZjcsIDEwOiAjZThkZmVmLCAyMDogI2Q3YzllMywgNDA6ICNjMWFlZDUsIDYwOiAjYTA4NWJlLCA4MDogIzdiNjFhYSwgMTAwOiAjNjY0ZmExLCAxMjA6ICM0MjJlODUpLFxuICAgIHBpbms6ICg1OiAjZmVmNGY4LCAxMDogI2ZjZTdlZiwgMjA6ICNmYWRhZTEsIDQwOiAjZjRhMmMyLCA2MDogI2VkNzNhNCwgODA6ICNlOTQ1ODYsIDEwMDogI2UzMTU2NywgMTIwOiAjYWIxZDQxKSxcblxuICAgIC8vIE5ldyBVSSBLaXQgY29sb3JzIC0gbmV3IHByZWZpeCB3aWxsIGJlIHJlbW92ZWQgb25jZSB0aGUgbWlncmF0aW9uIGlzIGNvbXBsZXRlZFxuICAgIC8vIEl0IGFsc28gbWFrZXMgc3VyZSB0aGF0IGNvbG9yIHZhcmlhYmxlcyBhcmUgdXNlZFxuICAgIG5ld2dyZXk6ICg1OiAjZmNmY2ZjLCAxMDogI2Y3ZjdmNywgMjA6ICNmMmYyZjIsIDQwOiAjZTllOWU5LCA1MDogI2M3YzdjNywgNjA6ICNhOWE5YTksIDcwOiAjODA4MDgwLCA4MDogIzZiNmI2YiwxMDA6ICM0YjRiNGIsMTIwOiMyOTI5MjkpLFxuICAgIG5ld2JsdWU6ICg1OiAjZjBmNmZhLCAxMDogI2UyZWVmNSwgMjA6ICNiOGQ1ZTcsIDQwOiAjOGViYmQ3LCA1MDogIzY5YTFjNywgNTU6ICM0ZjhmYmQsIDY1OiAjMzg3ZWIzLCA3MDogIzJmNzJhOCwgODA6ICMyNTYyOTcsIDEwMDogIzFkNTI4NSwgMTIwOiAjMTAzNzY2KSxcbiAgICBuZXdjeWFuOiAoNTogI2YwZjZmYSwgMTA6ICNlMmVlZjUsIDIwOiAjYjhkNWU3LCA0MDogIzhlYmJkNywgNTA6ICM2OWExYzcsIDU1OiAjNGY4ZmJkLCA2NTogIzM4N2ViMywgMTAwOiAjMmY3MmE4LCAxMjA6ICMyNTYyOTcsIDE0MDogIzFkNTI4NSwgMTYwOiAjMTAzNzY2KSxcbik7XG5cbkBmdW5jdGlvbiBocmEtY29sb3IoJGNvbG9yLCAkdmFsdWU6IDEwMCkge1xuICAgICRzZWxlY3RlZENvbG9yOiAkY29sb3I7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGNvbG9yKSA9PSAnbGlzdCcpIHtcbiAgICAgICAgJHNlbGVjdGVkQ29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAgICAgICAkdmFsdWU6IG50aCgkY29sb3IsIDIpO1xuICAgIH1cblxuICAgICRjb2xvci1tYXA6IG1hcC1nZXQoJGNvbG9ycywgJHNlbGVjdGVkQ29sb3IpO1xuICAgIEBpZiAoJGNvbG9yLW1hcCA9PSBudWxsKSB7XG4gICAgICAgIEBlcnJvciAkc2VsZWN0ZWRDb2xvciArICcgaXMgbm90IHBhcnQgb2YgdGhlIGNvbG9yIHBhbGV0dGUnO1xuICAgIH1cbiAgICBAcmV0dXJuIG1hcC1nZXQoJGNvbG9yLW1hcCwgJHZhbHVlKTtcbn1cblxuJGJsYWNrOiBocmEtY29sb3IoJGdyZXksIDEyMCk7XG4kd2hpdGU6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiRjb2xvci1ncmF5LXRyYW5zcGFyZW50OiB0cmFuc3BhcmVudGl6ZShocmEtY29sb3IoJGdyZXkpLCAwLjgpO1xuJGhvdmVyLWNvbG9yOiBocmEtY29sb3IoJGdyZXksIDIwKTtcblxuXG4vKiAqKioqICovXG4kc3VjY2Vzcy1jb2xvcjogaHJhLWNvbG9yKCRncmVlbik7XG4kd2FybmluZy1jb2xvcjogaHJhLWNvbG9yKCR5ZWxsb3cpO1xuJGFsZXJ0LWNvbG9yOiBocmEtY29sb3IoJHJlZCk7XG4kY29sb3ItaW52YWxpZDogaHJhLWNvbG9yKCRyZWQpO1xuJGRpc2FibGVkLWNvbG9yOiBocmEtY29sb3IoJGdyZXksIDEwKTtcbiRkaXNhYmxlZC1ib3JkZXI6IGhyYS1jb2xvcigkZ3JleSwgNDApO1xuJGNvbG9yLWhyYS1hbmNob3I6IGhyYS1jb2xvcigkYmx1ZSk7XG4kZGlzYWJsZWQtZm9yZS1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCA0MCk7XG5cbi8qICogQ2hhcnRzIENvbG9ycyAqL1xuJHN0YWNrZWQtdG9vbHRpcC1jaXJjbGUtYmc6ICMzZjQwNDI7XG4kY2hhcnQtdG9vbHRpcC1jaXJjbGU6ICNmZjg5NGM7XG4kZG9udXQtY291bnQ6ICNmZjZiNTc7XG5cbi8qIGluZm8gdGV4dCBiYWNrZ3JvdW5kICovXG4kaW5mby1iYWNrZ3JvdW5kOiAjZmZmZGU2O1xuXG5cbi8qIFVzZSBmb2xsb3dpbmcgY2xhc3NlcyBmb3IgYWVzdGhldGljcyBvbmx5IC0gTmV3IFVJIEtJVCAqL1xuLy8gU3RhbmRhcmRpc2UgdmFyaWFibGVzIHNob3VsZCBiZSB1c2VkIGluc3RlYWQgb2YgZGlyZWN0IGNvbG9yc1xuLyogQ29sb3IgTWFwcGluZyovXG4kcHJpbWFyeS1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Ymx1ZSwgNzApO1xuJHByaW1hcnktaG92ZXItYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDEwMCk7XG4kcHJpbWFyeS10ZXh0OiR3aGl0ZTtcblxuJGRlbGV0ZS1iYWNrZ3JvdW5kOiBocmEtY29sb3IoJHJlZCwgMTEwKTtcblxuJHNlY29uZGFyeS10ZXh0OmhyYS1jb2xvcigkbmV3Ymx1ZSwgNTUpO1xuJHNlY29uZGFyeS1iYWNrZ3JvdW5kOiR3aGl0ZTtcbiRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDUpO1xuJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Z3JleSwgNTApO1xuJHNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZDokc2Vjb25kYXJ5LXRleHQ7XG5cbiRmbGF0LWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDgwKTtcbiRmbGF0LWhvdmVyOiBocmEtY29sb3IoJG5ld2dyZXksIDEwMCk7XG4kZmxhdC1kaXNhYmxlZDogaHJhLWNvbG9yKCRuZXdncmV5LCA3MCk7XG5cbiRhY3Rpb24taG92ZXItYmFja2dyb3VuZDogaHJhLWNvbG9yKCRuZXdibHVlLCA4MCk7XG4kYWN0aW9uLWRpc2FibGVkOiBocmEtY29sb3IoJG5ld2dyZXksIDU1KTtcbiRhY3Rpb24tYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDUwKTtcbi8qZW5kcyovXG5cbiRidXR0b24tcHJpbWFyeS10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktYmFja2dyb3VuZDtcbiRidXR0b24tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiRwcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLXByaW1hcnktZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1kZWxldGUtYmFja2dyb3VuZC1jb2xvcjogJGRlbGV0ZS1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1wcmltYXJ5LWRpc2FibGVkLWJvcmRlci1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuXG4vLyBTZWNvbmRhcnkgYnV0dG9ucyBhbmQgc2Vjb25kYXJ5IGFjdGlvbiBidXR0b25zIHNoYXJlIGNvbG9ycyBcbiRidXR0b24tc2Vjb25kYXJ5LWJvcmRlci1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1zZWNvbmRhcnktdGV4dC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItdGV4dC1jb2xvcjogJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1zZWNvbmRhcnktZGlzYWJsZWQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG5cbiRidXR0b24tZmxhdC1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiRidXR0b24tZmxhdC1jb2xvcjogJGZsYXQtY29sb3I7XG4kYnV0dG9uLWZsYXQtaG92ZXItY29sb3I6JGZsYXQtaG92ZXI7XG4kYnV0dG9uLWZsYXQtZGlzYWJsZWQtY29sb3I6ICRmbGF0LWRpc2FibGVkO1xuXG4kYnV0dG9uLWFjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1ob3Zlci10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1kaXNhYmxlZC10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1kZWxldGUtYmFja2dyb3VuZC1jb2xvcjokZGVsZXRlLWJhY2tncm91bmQ7XG5cbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWRpc2FibGVkLWNvbG9yOiAkYWN0aW9uLWRpc2FibGVkO1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG5cbiR1bnNlbGVjdGVkLWNob2ljZS1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJHNlbGVjdGVkLWNob2ljZS1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuXG4kcmFkaW8tbGFiZWwtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiR0b2dnbGUtb24tYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJHRvZ2dsZS1vZi1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kdG9nZ2xlLWhlYWQtY29sb3I6ICR3aGl0ZTtcblxuJGlucHV0LXRleHQtbGFiZWwtY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgMTIwKTtcbiRpbnB1dC10ZXh0LWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA0MCk7XG4kaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA2MCk7XG4kaW5wdXQtdGV4dC1hY3RpdmUtYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDgwKTtcbiRpbnB1dC10ZXh0LWFjdGl2ZS10ZXh0LWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDEyMCk7XG4kaW5wdXQtdGV4dC1lcnJvci1ib3JkZXItY29sb3I6IGhyYS1jb2xvcigkcmVkLCAxMTApO1xuJGlucHV0LXRleHQtZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDUwKTtcbiRpbnB1dC10ZXh0LWVycm9yLW1lc3NhZ2UtY29sb3I6ICRpbnB1dC10ZXh0LWVycm9yLWJvcmRlci1jb2xvcjtcbiRpbnB1dC10ZXh0LWRpc2FibGVkLWNvbG9yOiAkaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjtcbiRpbnB1dC10ZXh0LWxhYmVsLWRpc2FibGVkLWNvbG9yOiAkaW5wdXQtdGV4dC1ib3JkZXItY29sb3I7XG4kaW5wdXQtdGV4dC1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjsiLCJAaW1wb3J0ICdtaXhpbnMnO1xuQGltcG9ydCAnY29sb3JzJztcblxuLyogVXNlZCBmb3IgZ3JpZHMgYW5kIG1hcmdpbnMgKi9cblxuJHNtYWxsLXNpemU6IDQgIWRlZmF1bHQ7XG4kbGFyZ2Utc2l6ZTogMTIgIWRlZmF1bHQ7XG4kc21hbGwtc3F1YXJlOiByZW0tY2FsYygkc21hbGwtc2l6ZSkgIWRlZmF1bHQ7XG4kbGFyZ2Utc3F1YXJlOiByZW0tY2FsYygkbGFyZ2Utc2l6ZSkgIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtZ3JheTogdHJhbnNwYXJlbnRpemUoaHJhLWNvbG9yKCRncmV5LCA0MCksIDAuOCk7XG4kdHJhbnNwYXJlbnQtd2hpdGU6IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KTtcbiRhbmltYXRpb24tdGltaW5nOiAwLjI1cztcbiRyYWQtZ3JhZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyLCB0cmFuc3BhcmVudGl6ZShocmEtY29sb3IoJGdyZXkpLCAwLjUpIDgwJSwgdHJhbnNwYXJlbnRpemUoJGJsYWNrLCAwLjUpIDEwMCUpO1xuJGxpbmVhci1ncmFkOiByZ2JhKCRibGFjaywgMC43KTtcblxuJHNjcm9sbC1iYXItd2lkdGg6ICRzbWFsbC1zcXVhcmUgKiAyO1xuJHNjcm9sbC1iYXItd2lkdGgtZmlyZWZveDogcmVtLWNhbGMoMTcpO1xuJHNjcm9sbC1iYXItd2lkdGgtZWRnZTogcmVtLWNhbGMoMTcpO1xuJHNjcm9sbC1iYXItd2lkdGgtaWU6IHJlbS1jYWxjKDE3KTtcblxuLypcbiAgZm9udCBzaXplc1xuICovXG4kaWNvbi1mb250LXNpemUtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiAzICFkZWZhdWx0OyAvLyAxMnB4XG4kaWNvbi1mb250LXNpemUtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogNCAhZGVmYXVsdDsgLy8gMTZweFxuJGljb24tZm9udC1zaXplLXJlZ3VsYXI6ICRzbWFsbC1zcXVhcmUgKiA1ICFkZWZhdWx0OyAvLyAyMHB4XG4kaWNvbi1mb250LXNpemUtbGFyZ2U6ICRzbWFsbC1zcXVhcmUgKiA2OyAvLyAyNHB4XG4kaWNvbi1mb250LXNpemUteC1sYXJnZTogJHNtYWxsLXNxdWFyZSAqIDc7IC8vIDI4cHhcbiRpY29uLWZvbnQtc2l6ZS1wbGFjZWhvbGRlcjogJGxhcmdlLXNxdWFyZSAqIDc7XG4kZm9udC1zaXplOiAkaWNvbi1mb250LXNpemUtbWVkaXVtICFkZWZhdWx0OyAvLyAxM3B4XG4kZm9udC1zaXplLW1lZGl1bTogJGljb24tZm9udC1zaXplLW1lZGl1bTsgLy8xNnB4XG4kZm9udC1zaXplLWxhcmdlOiAkaWNvbi1mb250LXNpemUtcmVndWxhcjtcbiRmb250LXNpemUteC1sYXJnZTogJGljb24tZm9udC1zaXplLXgtbGFyZ2U7XG4kZm9udC1zaXplLWhlYWRlcjogMTRweDtcblxuXG4kZm9udC13ZWlnaHQtbGlnaHQ6IDMwMDsgLy8gU291cmNlIFNhbnMgUHJvIExpZ2h0XG4kZm9udC13ZWlnaHQtcmVndWxhcjogNDAwOyAvLyBTb3VyY2UgU2FucyBQcm8gTGlnaHRcbiRmb250LXdlaWdodC1zZW1pLWJvbGQ6IDYwMDsgLy8gU291cmNlIFNhbnMgUHJvIFNlbWkgQm9sZFxuJGZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDsgLy8gU291cmNlIFNhbnMgUHJvIEJvbGRcblxuXG5cbi8qXG4gKiBIZWFkZXIgc2l6ZVxuICovXG5cbiRoZWFkZXItaGVpZ2h0OiByZW0tY2FsYyg1MikgIWRlZmF1bHQ7XG4kaGVhZGVyLXRleHQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogOCAhZGVmYXVsdDsgLy8zMnB4XG4kc3ViLW5hdi1oZWlnaHQ6IDByZW0gIWRlZmF1bHQ7IC8vIDBweFxuJHNlYXJjaC1iYXItaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTUgIWRlZmF1bHQ7XG4vLyRwYWdpbmF0aW9uLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDI1ICFkZWZhdWx0O1xuJGNoYXJ0cy1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3NCAhZGVmYXVsdDtcbiRtYWluLWhlYWRlci1oZWlnaHQ6ICRoZWFkZXItaGVpZ2h0KyRzdWItbmF2LWhlaWdodCAhZGVmYXVsdDtcbiR2aXJ0dWFsLWdyb3VwLWluZGljYXRvci1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3O1xuJGhlYWRlci1zaWRlLW1hcmdpbjogcmVtLWNhbGMoMjQpO1xuXG4vKlxuICogRGV2aWNlIEdyb3VwIHNldHRpbmdzXG4gKi9cblxuJGRldmljZS1ncm91cC1wYWRkaW5nLWxlZnQ6ICRzbWFsbC1zcXVhcmUgKiA2O1xuJGRldmljZS1ncm91cC1pdGVtcy1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA5O1xuJGRldmljZS1ncm91cC13aWR0aDogJGxhcmdlLXNxdWFyZSAqIDI4O1xuJGRldmljZS1ncm91cC1taW4td2lkdGg6ICRzbWFsbC1zcXVhcmUgKiA1NTtcbiRkZXZpY2UtZ3JvdXAtbWF4LXdpZHRoOiAkc21hbGwtc3F1YXJlICogMTQwO1xuJGRldmljZS1ncm91cC1tYXJnaW4tdG9wOiAkc2VhcmNoLWJhci1oZWlnaHQ7XG4kZGV2aWNlLWdyb3VwLWJ1dHRvbi13aWR0aDogJGxhcmdlLXNxdWFyZSAqIDIxO1xuJGRldmljZS1ncm91cC1idXR0b24taGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTE7XG4kZGV2aWNlLWdyb3VwLWJ1dHRvbi1ib3JkZXI6IDFweCBzb2xpZCBocmEtY29sb3IoJGdyZXksIDIwKTtcblxuLypcbiAqIEJvcmRlciBzZXR0aW5nc1xuICovXG5cbiRib3JkZXItYmFzZTogMXB4IHNvbGlkIHJnYigyMDQsIDIwNCwgMjA0KTtcbiRib3JkZXItcmFkaXVzLXNtYWxsOiAzcHg7XG4kYm9yZGVyLXJhZGl1cy1iYXNlOiA0cHg7XG4kYm9yZGVyLXJhZGl1cy1sYXJnZTogNnB4O1xuXG4vKlxuICogU2hhZG93cyBnbyBieSBsZXZlbFxuICovXG5cbiRzaGFkb3c6IDAgM3B4IDlweCByZ2JhKDAsIDAsIDAsIC41KTtcbiRzaGFkb3ctMTogMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiRzaGFkb3ctc21hbGw6IDAgMXB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xuJHNoYWRvdy1oZWFkZXI6IDBweCAxcHggMTNweCAycHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1zZWFyY2gtaGVhZGVyOiA4cHggMXB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctbGlnaHQ6IDFweCAxcHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiRzaGFkb3ctbGlnaHQtYm90dG9tLW9ubHk6IDBweCAxcHggOHB4IHJnYmEoJGJsYWNrLCAwLjEzKTtcbiRzaGFkb3ctYWJvdmU6IDAgLTFweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWFib3ZlLWxlZnQ6IC02cHggMHB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctYmVsb3c6IDBweCA5cHggOHB4IC01cHggcmdiYSgxNTgsIDE1OCwgMTU4LCAwLjI1KTtcbiRzaGFkb3ctZHJvcGRvd246IDAgMXB4IDEzcHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1kaWFsb2c6IDAgOHB4IDIwcHggNnB4IHJnYmEoJGJsYWNrLCAwLjYpO1xuJHNoYWRvdy1kaWFsb2ctc3VmZml4OiAwcHggMTZweCAyMHB4IDNweCByZ2JhKCRibGFjaywgMC42KTtcbiRzaGFkb3ctbGF5b3V0OiA2cHggMHB4IDlweCAwcHggcmdiYSgkYmxhY2ssIDAuMik7XG4kc2hhZG93LXNhdmVkLXNlYXJjaGVzOiA0cHggNHB4IDhweCAtMnB4IHJnYmEoNjcsNzAsNzQsLjEzKTtcbiRzaGFkb3ctY2hhcnQtY2FyZDogMCA2cHggMTZweCByZ2JhKDIwLDMwLDM3LDAuMDgpO1xuJHNoYWRvdy1jb25maWctY2FyZDogMCAwIDI0cHggMCByZ2JhKDIwLDMwLDM3LDAuMSk7XG5cbi8qXG4gKiBQYWRkaW5nIHNldHRpbmdzXG4gKi9cblxuJGJvZHktcGFkZGluZzogJGxhcmdlLXNxdWFyZSAqIDI7XG4kcGFkZGluZy1zbWFsbDogJGxhcmdlLXNxdWFyZTtcbiRiYXNlLXBhZGRpbmc6ICRzbWFsbC1zcXVhcmUgKiA0OyAvLyAxNnB4XG4kaGFsZi1iYXNlLXBhZGRpbmc6ICRiYXNlLXBhZGRpbmcgLyAyO1xuJG1vZGFsLXBhZGRpbmc6ICRiYXNlLXBhZGRpbmc7XG4kbGF5b3V0LXBhZGRpbmc6ICgkYmFzZS1wYWRkaW5nICogMikgKCRib2R5LXBhZGRpbmcgKiAyKSAoJGJhc2UtcGFkZGluZyAqIDIpICgkYm9keS1wYWRkaW5nICogMik7XG4kcGFkZGluZy1iYXNlLXZlcnRpY2FsOiA2cHg7XG4kcGFkZGluZy1iYXNlLWhvcml6b250YWw6ICRzbWFsbC1zcXVhcmUgKiAzO1xuJHBhZGRpbmctbGFyZ2UtdmVydGljYWw6IDEwcHg7XG4kcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsOiAgJHNtYWxsLXNxdWFyZSAqIDQ7XG4kcGFkZGluZy1tZWRpdW0tdmVydGljYWw6IDE0cHg7XG4kcGFkZGluZy1zbWFsbC12ZXJ0aWNhbDogNXB4O1xuJHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDogMTBweDtcblxuLypcbiAqIElucHV0c1xuICovXG4kaW5wdXQtcGFkZGluZzogJHNtYWxsLXNxdWFyZSAkc21hbGwtc3F1YXJlICogMjtcbiRpbnB1dC1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA4O1xuXG4vKlxuICogVG9vbFRpcHNcbiAqL1xuXG4vLyBUb29sdGlwc1xuJHRvb2x0aXAtbWF4LXdpZHRoOiAyNTBweCAhZGVmYXVsdDtcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KSAhZGVmYXVsdDtcbiR0b29sdGlwLXRleHQtY29sb3I6ICNmZmYgIWRlZmF1bHQ7XG4kdG9vbHRpcC1kZWxheTogMC40cyAhZGVmYXVsdDtcbiR0b29sdGlwLWR1cmF0aW9uOiAwLjFzICFkZWZhdWx0O1xuXG4vKlxuICogQWN0aW9uIGJhciBzaXplc1xuICovXG5cbiRkZXZpY2UtYWN0aW9uLWJhci1oZWlnaHQ6ICRsYXJnZS1zcXVhcmUgKiA1O1xuJGNvdW50LWNvbnRhaW5lci1wYWRkaW5nOiAoJGxhcmdlLXNxdWFyZSAqIDIpICgkc21hbGwtc3F1YXJlICogNCkgKCRsYXJnZS1zcXVhcmUgKiAyKSAoJHNtYWxsLXNxdWFyZSAqIDQpO1xuXG4vKipcbiogIERldmljZSBncmlkIHNpemVzXG4qL1xuXG4kcm93LWFib3ZlLWdyaWQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTQ7XG4kY2hlY2stY2VsbC1wYWRkaW5nOiAwIDAgMCAkc21hbGwtc3F1YXJlKjI7XG4kZGV2aWNlLWdyaWQtbWluLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDcxO1xuXG4vKlxuICogRm9jdXMgYm9yZGVyXG4gKi9cblxuJGhyYS1mb2N1cy1vdXRsaW5lOiAycHggc29saWQgaHJhLWNvbG9yKCRjeWFuKTtcblxuLypcbiAqIEJvcmRlclxuICovXG5cbiRocmEtYm9yZGVyOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCAyMCk7XG4kaHJhLWJvcmRlci1lcnJvcjogMXB4IHNvbGlkIGhyYS1jb2xvcigkcmVkKTtcbiRocmEtYm9yZGVyLWlucHV0LWRpc2FibGVkOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCA0MCk7XG5cblxuLypcbiAqIFBvcC11cFxuKi9cbiRocmEtcG9wdXAtYmVhay1zaXplOiAkc21hbGwtc3F1YXJlKjM7XG4kaHJhLXBvcHVwLWJlYWstYm90dG9tLWNlbnRlcjogY2FsYyg1MCUgLSAoMS4yNXJlbSAvIDIpKTtcbiRwb3AtdXAtZm9vdGVyLWhlaWdodDogJGxhcmdlLXNxdWFyZSAqIDU7XG4kcG9wLXVwLXRpdGxlLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDEzO1xuJHBvcC11cC10aXRsZS1tYWpvci1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxNDtcbi8vIHN0eWxlZ3VpZGU6aWdub3JlOmVuZFxuXG4vKlxuKiBTdGF0dXMgTm90aWZpY2F0aW9uXG4qL1xuJGhyYS1zdGF0dXMtbm90aWZpY2F0aW9uLXdpZHRoOiAkc21hbGwtc3F1YXJlICogODM7XG4kaHJhLXN0YXR1cy1ub3RpZmljYXRpb24tdG9wOiAkc21hbGwtc3F1YXJlICogMTQ7XG4kaHJhLXN0YXR1cy1ub3RpZmljYXRpb24tYm90dG9tOiAkc21hbGwtc3F1YXJlICogMTU7XG5cblxuLypcbiAgUm91bmQgYnV0dG9uIHNpemVzXG4gKi9cbiAkcm91bmQtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiA3O1xuICRyb3VuZC1tZWRpdW06ICRzbWFsbC1zcXVhcmUgKiA4O1xuICRyb3VuZC1sYXJnZTogJHNtYWxsLXNxdWFyZSAqIDk7XG5cbi8qXG4gKiBJbWFnZSBJY29uIFNpemVzXG4gKi9cblxuJGltZy1pY29uLXNpemUtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiA4O1xuJGltZy1pY29uLXNpemUtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogMTA7XG5cblxuJGJlemllcjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcblxuXG4vKiogTW9kYWwgc2l6ZXMgKiovXG4kbW9kYWwtdGl0bGUtaGVpZ2h0OiByZW0tY2FsYyg1Mik7XG4kbW9kYWwtZm9vdGVyLWhlaWdodDogcmVtLWNhbGMoNjApO1xuIiwiQGltcG9ydCBcIi4uLy4uLy4uLy4uL3NoYXJlZC9zdHlsZXMvYmFzZS9zZXR0aW5nc1wiO1xuXG4kcmlnaHQtd2lkdGg6IDQ1MHB4OyAvLyBmbGV4IHJlbSBkb2VzIG5vdCB3b3JrIGluIGllMTFcbiRsb2dvLWNvbnRhaW5lci1oZWlnaHQ6ICRpbWctaWNvbi1zaXplLW1lZGl1bSArICRzbWFsbC1zcXVhcmUgKiA0O1xuJGJyYW5kaW5nLWxvZ28tbWFyZ2luOiAkc21hbGwtc3F1YXJlICogMjtcbiRyaWdodC1wYW5lbC1taW4td2lkdGg6ICRsYXJnZS1zcXVhcmUgKiAyNTtcblxuOmhvc3Qge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbkBtaXhpbiBwYW5lbCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4jbG9nby1jb250YWluZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBwYWRkaW5nLXRvcDogJGxhcmdlLXNxdWFyZSAqIDU7XG5cbiAgLmxvZ28ge1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDE0NSk7XG4gICAgd2lkdGg6IDYwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi8uLi8uLi8uLi9hc3NldHMvaW1nL0xvZ28ucG5nXCIpO1xuICB9XG59XG5cbi5sZWZ0LXBhbmVsIHtcbiAgQGluY2x1ZGUgcGFuZWwoKTtcbiAgZmxleDogMSAxIDBweDtcbiAgbWluLXdpZHRoOiA2NjVweDsgLy8gbmVlZCB0byBzdXBwb3J0IGllMTFcblxuICBib3gtc2hhZG93OiAkc2hhZG93LWxheW91dDtcbiAgQGluY2x1ZGUgdGFibGV0KCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBAaW5jbHVkZSBzbWFsbC1kZXNrdG9wKCkge1xuICAgIG1pbi13aWR0aDogNTM2cHg7IC8vIG5lZWQgdG8gc3VwcG9ydCBpZTExXG4gIH1cbn1cblxuLnJpZ2h0LXBhbmVsIHtcbiAgQGluY2x1ZGUgcGFuZWwoKTtcbiAgZmxleDogMCAxICRyaWdodC13aWR0aDtcbiAgcGFkZGluZzogJGxheW91dC1wYWRkaW5nO1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgLy8gZGVlcCBpcyB1c2VkIGJlY2F1c2UgbGF5b3V0LWZvcm0gaXMgcGFydCBvZiBuZy1jb250ZW50LiBXZSB1c2UgdG8gcGVuZXRyYXRlIGRpZmZlcmVudCBjb250ZW50c1xuICBsYXlvdXQtZm9ybSB7XG4gICAgbWF4LXdpZHRoOiAkcmlnaHQtd2lkdGg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZy10b3A6ICRsYXJnZS1zcXVhcmUgKiA1O1xuICB9XG5cbiAgQGluY2x1ZGUgdGFibGV0KCkge1xuICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgbWluLXdpZHRoOiAkcmlnaHQtcGFuZWwtbWluLXdpZHRoO1xuICB9XG59XG5cbmhyYS1sb2dvIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgQGluY2x1ZGUgdGFibGV0KCkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG5ocmEtY29weXJpZ2h0IHtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAaW5jbHVkZSB0YWJsZXQoKSB7XG4gICAgcGFkZGluZy10b3A6ICRzbWFsbC1zcXVhcmUgKiA2O1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n // tslint:disable-next-line: component-selector\n selector: 'two-panel-layout',\n templateUrl: './two-panel-layout.ctrl.html',\n styleUrls: ['./two-panel-layout.ctrl.scss']\n})\n// tslint:disable-next-line: component-class-suffix\nexport class TwoPanelLayoutControl {\n\n public brandingLogoSet = false;\n\n constructor() { }\n}\n","// mymodal.component.ts\nimport { Component, OnInit, Input } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ModalOptions } from 'src/app/models/modalOptions';\n@Component({\n selector: 'app-mymodal',\n templateUrl: './modal.component.html',\n// styleUrls: ['./modal.component.css']\n})\nexport class ModalComponent implements OnInit {\n\n @Input() \n options: ModalOptions;\n\n constructor(public activeModal: NgbActiveModal) {}\n\n ngOnInit() {\n }\n\n}\n","import { Injectable, Input } from '@angular/core';\nimport { NgbModal, ModalDismissReasons, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\nimport { ModalOptions } from 'src/app/models/modalOptions';\nimport { ModalComponent } from './modal.component';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n modalOptions: NgbModalOptions;\n\n constructor(\n private modalService: NgbModal\n ) {\n this.modalOptions = {\n backdrop: 'static',\n backdropClass: 'customBackdrop',\n centered: true,\n };\n }\n\n open(options: ModalOptions) {\n const modalRef = this.modalService.open(ModalComponent, this.modalOptions);\n modalRef.componentInstance.options = options;\n return modalRef.result;\n }\n\n private getDismissReason(reason: any): string {\n if (reason === ModalDismissReasons.ESC) {\n return 'by pressing ESC';\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\n return 'by clicking on a backdrop';\n } else {\n return `with: ${reason}`;\n }\n }\n\n}\n","export default \"/*\\nHigh DPI screens (retina macbooks, highresolution laptops, etc)\\n*/\\n/* Firefox specific styles go here */\\n/*\\nCOMMON COLOR NAMES\\n\\nThese colors are mapped to the names from the official colors.\\nInstead of having names like `crush` or `blaze`, developers will use their common, non-marketized name.\\neg. $red: crush\\n $orange: blaze\\n\\nThen, use the `hra-color` function to get the color\\neg. color: hra-color($red)\\n*/\\n/* **** */\\n/* * Charts Colors */\\n/* info text background */\\n/* Use following classes for aesthetics only - New UI KIT */\\n/* Color Mapping*/\\n/*ends*/\\n/* Used for grids and margins */\\n/*\\n font sizes\\n */\\n/*\\n * Header size\\n */\\n/*\\n * Device Group settings\\n */\\n/*\\n * Border settings\\n */\\n/*\\n * Shadows go by level\\n */\\n/*\\n * Padding settings\\n */\\n/*\\n * Inputs\\n */\\n/*\\n * ToolTips\\n */\\n/*\\n * Action bar sizes\\n */\\n/**\\n* Device grid sizes\\n*/\\n/*\\n * Focus border\\n */\\n/*\\n * Border\\n */\\n/*\\n * Pop-up\\n*/\\n/*\\n* Status Notification\\n*/\\n/*\\n Round button sizes\\n */\\n/*\\n * Image Icon Sizes\\n */\\n/** Modal sizes **/\\na .navbar-brand {\\n white-space: normal;\\n text-align: center;\\n word-break: normal; }\\nhtml {\\n font-size: 14px !important; }\\n@media (min-width: 768px) {\\n html {\\n font-size: 16px !important; } }\\n.navbar {\\n padding: 0 !important; }\\n.logo {\\n background-repeat: no-repeat;\\n background-position: center;\\n position: relative;\\n z-index: 1;\\n background-size: contain;\\n height: 4.375rem;\\n width: 5.625rem;\\n margin: 0 auto;\\n background-image: url('Logo.png'); }\\n.box-shadow {\\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.05); }\\nheader {\\n background-image: url('TWN_bg_img.jpg');\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: cover; }\\nheader .nav-link {\\n color: white; }\\nheader .header-container {\\n padding-left: 5%;\\n padding-right: 5%;\\n width: 100%;\\n display: flex;\\n padding-top: 10px;\\n padding-bottom: 10px; }\\nheader .main-logo {\\n font-size: 35px;\\n color: #FFF;\\n text-decoration: none; }\\nheader .main-center-text {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n height: 100%; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX21lZGlhcXVlcmllcy5zY3NzIiwic3JjL2FwcC9zaGFyZWQvY29udHJvbHMvbmF2LW1lbnUvbmF2LW1lbnUuY29tcG9uZW50LnNjc3MiLCIvaG9tZS92c3RzL3dvcmsvMS9zL0hSQS5XZWIvQ2xpZW50QXBwL3NyYy9hcHAvc2hhcmVkL3N0eWxlcy9iYXNlL19taXhpbnMuc2NzcyIsIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvc3R5bGVzL2Jhc2UvX2NvbG9ycy5zY3NzIiwiL2hvbWUvdnN0cy93b3JrLzEvcy9IUkEuV2ViL0NsaWVudEFwcC9zcmMvYXBwL3NoYXJlZC9zdHlsZXMvYmFzZS9fc2V0dGluZ3Muc2NzcyIsIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvY29udHJvbHMvbmF2LW1lbnUvbmF2LW1lbnUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEJBOztDQzVCQztBQzBLRCxvQ0FBQTtBQzVLQTs7Ozs7Ozs7OztDRmNDO0FFK0RELFNBQUE7QUFVQSxvQkFBQTtBQUtBLHlCQUFBO0FBSUEsMkRBQUE7QUFFQSxpQkFBQTtBQW9CQSxPQUFBO0FDbkhBLCtCQUFBO0FBaUJBOztFSElFO0FHbUJGOztFSGhCRTtBRzhCRjs7RUgzQkU7QUd5Q0Y7O0VIdENFO0FHK0NGOztFSDVDRTtBR2tFRjs7RUgvREU7QUdpRkY7O0VIOUVFO0FHb0ZGOztFSGpGRTtBRzRGRjs7RUh6RkU7QUdnR0Y7O0NIN0ZDO0FHcUdEOztFSGxHRTtBR3dHRjs7RUhyR0U7QUc4R0Y7O0NIM0dDO0FHcUhEOztDSGxIQztBRzBIRDs7RUh2SEU7QUc4SEY7O0VIM0hFO0FHc0lGLGtCQUFBO0FDek1BO0VBQ0UsbUJBQW1CO0VBQ25CLGtCQUFrQjtFQUNsQixrQkFBa0IsRUFBQTtBQUdwQjtFQUNFLDBCQUEwQixFQUFBO0FBRTVCO0VBQ0U7SUFDRSwwQkFBMEIsRUFBQSxFQUMzQjtBQUdIO0VBQ0UscUJBQW1CLEVBQUE7QUFFckI7RUFDRSw0QkFBNEI7RUFDNUIsMkJBQTJCO0VBQzNCLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1Ysd0JBQXdCO0VBQ3hCLGdCSDhDdUQ7RUc3Q3ZELGVINkN1RDtFRzVDdkQsY0FBYztFQUNkLGlDQUF3RCxFQUFBO0FBRzFEO0VBQ0UsaURBQWlELEVBQUE7QUFHbkQ7RUFDRSx1Q0FBOEQ7RUFFOUQsMkJBQTJCO0VBQzNCLDRCQUE0QjtFQUM1QixzQkFBc0IsRUFBQTtBQUx4QjtJQVFJLFlBQVksRUFBQTtBQVJoQjtJQVlJLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsV0FBVztJQUNYLGFBQWE7SUFDYixpQkFBaUI7SUFDakIsb0JBQW9CLEVBQUE7QUFqQnhCO0lBcUJJLGVBQWU7SUFDZixXQUFXO0lBQ1gscUJBQXFCLEVBQUE7QUF2QnpCO0lBMkJJLGFBQWE7SUFDYix1QkFBdUI7SUFDdkIsbUJBQW1CO0lBQ25CLFlBQVksRUFBQSIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb250cm9scy9uYXYtbWVudS9uYXYtbWVudS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vICBBdXRob3I6IFJhZmFsIEJyb21pcnNraVxuLy8gIHd3dzogaHR0cDovL3JhZmFsYnJvbWlyc2tpLmNvbS9cbi8vICBnaXRodWI6IGh0dHA6Ly9naXRodWIuY29tL3BhcmFub2lkYS9zYXNzLW1lZGlhcXVlcmllc1xuLy9cbi8vICBMaWNlbnNlZCB1bmRlciBhIE1JVCBMaWNlbnNlXG4vL1xuLy8gIFZlcnNpb246XG4vLyAgMS42LjFcbi8vIC0tLSBnZW5lcmF0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gbXEoJGFyZ3MuLi4pIHtcbiAgJG1lZGlhLXR5cGU6ICdvbmx5IHNjcmVlbic7XG4gICRtZWRpYS10eXBlLWtleTogJ21lZGlhLXR5cGUnO1xuICAkYXJnczoga2V5d29yZHMoJGFyZ3MpO1xuICAkZXhwcjogJyc7XG4gIEBpZiBtYXAtaGFzLWtleSgkYXJncywgJG1lZGlhLXR5cGUta2V5KSB7XG4gICAgJG1lZGlhLXR5cGU6IG1hcC1nZXQoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gICAgJGFyZ3M6IG1hcC1yZW1vdmUoJGFyZ3MsICRtZWRpYS10eXBlLWtleSk7XG4gIH1cbiAgQGVhY2ggJGtleSxcbiAgJHZhbHVlIGluICRhcmdzIHtcbiAgICBAaWYgJHZhbHVlIHtcbiAgICAgICRleHByOiBcIiN7JGV4cHJ9IGFuZCAoI3ska2V5fTogI3skdmFsdWV9KVwiO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgI3skbWVkaWEtdHlwZX0gI3skZXhwcn0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cblxuLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cblxuQG1peGluIGhkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAje3JvdW5kKCRyYXRpbyo5Nil9ZHBpKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gJG9yaWVudGF0aW9uOiBsYW5kc2NhcGUgfCBwb3J0cmFpdFxuQG1peGluIHRhYmxldCgkb3JpZW50YXRpb246IGZhbHNlKSB7XG4gICRtaW46IDI2OHB4O1xuICAkbWF4OiAxMDI0cHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4LCAkb3JpZW50YXRpb246ICRvcmllbnRhdGlvbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIHNtYWxsIGRlc2t0b3AgLSAxMDI1IDwtPiAxMjgwXG5AbWl4aW4gc21hbGwtZGVza3RvcCgpIHtcbiAgJG1pbjogMTAyNXB4O1xuICAkbWF4OiAxMjgwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gbWVkaXVtIGRlc2t0b3AgLSAxMjgxIDwtPiAxNDQwXG5AbWl4aW4gbWVkaXVtLWRlc2t0b3AoKSB7XG4gICRtaW46IDEyODFweDtcbiAgJG1heDogMTQ0MHB4O1xuICBAaW5jbHVkZSBtcSggJG1pbi13aWR0aDogJG1pbiwgJG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIGxhcmdlIGRlc2t0b3AgLSAxNDQxIDwtPiAxNjAwXG5AbWl4aW4gbGFyZ2UtZGVza3RvcCgpIHtcbiAgJG1pbjogMTQ0MXB4O1xuICAkbWF4OiAxNjAwcHg7XG4gIEBpbmNsdWRlIG1xKCAkbWluLXdpZHRoOiAkbWluLCAkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8geGxhcmdlIGRlc2t0b3AgLSAxNjAxIC0+IGluZmluaXR5XG5AbWl4aW4geGxhcmdlLWRlc2t0b3AoKSB7XG4gICRtaW46IDE2MDFweDtcbiAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBkZXNrdG9wIG92ZXJsYXlcbkBtaXhpbiBkZXNrdG9wLW92ZXJsYXkoKSB7XG4gICAgJG1pbjogMjY4cHg7XG4gICAgJG1heDogOTI2cHg7XG4gICAgQGluY2x1ZGUgbXEoICRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkhpZ2ggRFBJIHNjcmVlbnMgKHJldGluYSBtYWNib29rcywgaGlnaHJlc29sdXRpb24gbGFwdG9wcywgZXRjKVxuKi9cbi8qIEZpcmVmb3ggc3BlY2lmaWMgc3R5bGVzIGdvIGhlcmUgKi9cbi8qXG5DT01NT04gQ09MT1IgTkFNRVNcblxuVGhlc2UgY29sb3JzIGFyZSBtYXBwZWQgdG8gdGhlIG5hbWVzIGZyb20gdGhlIG9mZmljaWFsIGNvbG9ycy5cbkluc3RlYWQgb2YgaGF2aW5nIG5hbWVzIGxpa2UgYGNydXNoYCBvciBgYmxhemVgLCBkZXZlbG9wZXJzIHdpbGwgdXNlIHRoZWlyIGNvbW1vbiwgbm9uLW1hcmtldGl6ZWQgbmFtZS5cbmVnLiAkcmVkOiBjcnVzaFxuICAgICRvcmFuZ2U6IGJsYXplXG5cblRoZW4sIHVzZSB0aGUgYGhyYS1jb2xvcmAgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb2xvclxuZWcuIGNvbG9yOiBocmEtY29sb3IoJHJlZClcbiovXG4vKiAqKioqICovXG4vKiAqIENoYXJ0cyBDb2xvcnMgKi9cbi8qIGluZm8gdGV4dCBiYWNrZ3JvdW5kICovXG4vKiBVc2UgZm9sbG93aW5nIGNsYXNzZXMgZm9yIGFlc3RoZXRpY3Mgb25seSAtIE5ldyBVSSBLSVQgKi9cbi8qIENvbG9yIE1hcHBpbmcqL1xuLyplbmRzKi9cbi8qIFVzZWQgZm9yIGdyaWRzIGFuZCBtYXJnaW5zICovXG4vKlxuICBmb250IHNpemVzXG4gKi9cbi8qXG4gKiBIZWFkZXIgc2l6ZVxuICovXG4vKlxuICogRGV2aWNlIEdyb3VwIHNldHRpbmdzXG4gKi9cbi8qXG4gKiBCb3JkZXIgc2V0dGluZ3NcbiAqL1xuLypcbiAqIFNoYWRvd3MgZ28gYnkgbGV2ZWxcbiAqL1xuLypcbiAqIFBhZGRpbmcgc2V0dGluZ3NcbiAqL1xuLypcbiAqIElucHV0c1xuICovXG4vKlxuICogVG9vbFRpcHNcbiAqL1xuLypcbiAqIEFjdGlvbiBiYXIgc2l6ZXNcbiAqL1xuLyoqXG4qICBEZXZpY2UgZ3JpZCBzaXplc1xuKi9cbi8qXG4gKiBGb2N1cyBib3JkZXJcbiAqL1xuLypcbiAqIEJvcmRlclxuICovXG4vKlxuICogUG9wLXVwXG4qL1xuLypcbiogU3RhdHVzIE5vdGlmaWNhdGlvblxuKi9cbi8qXG4gIFJvdW5kIGJ1dHRvbiBzaXplc1xuICovXG4vKlxuICogSW1hZ2UgSWNvbiBTaXplc1xuICovXG4vKiogTW9kYWwgc2l6ZXMgKiovXG5hIC5uYXZiYXItYnJhbmQge1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDsgfVxuXG5odG1sIHtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIGh0bWwge1xuICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50OyB9IH1cblxuLm5hdmJhciB7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDsgfVxuXG4ubG9nbyB7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIGhlaWdodDogNC4zNzVyZW07XG4gIHdpZHRoOiA1LjYyNXJlbTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uLy4uLy4uL2Fzc2V0cy9pbWcvTG9nby5wbmdcIik7IH1cblxuLmJveC1zaGFkb3cge1xuICBib3gtc2hhZG93OiAwIDAuMjVyZW0gMC43NXJlbSByZ2JhKDAsIDAsIDAsIDAuMDUpOyB9XG5cbmhlYWRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uLy4uLy4uL2Fzc2V0cy9pbWcvVFdOX2JnX2ltZy5qcGdcIik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICBoZWFkZXIgLm5hdi1saW5rIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgaGVhZGVyIC5oZWFkZXItY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDUlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDUlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7IH1cbiAgaGVhZGVyIC5tYWluLWxvZ28ge1xuICAgIGZvbnQtc2l6ZTogMzVweDtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgaGVhZGVyIC5tYWluLWNlbnRlci10ZXh0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4iLCJAaW1wb3J0ICcuL21lZGlhcXVlcmllcyc7XG5cbi8vLyAvIHN0eWxlZ3VpZGU6aWdub3JlOnN0YXJ0XG4vLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2Vcbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcbi8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIFRoZSBiYXNlIHZhbHVlIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBgcmVtYC4gSWYgeW91J3JlIHVzaW5nIEZvdW5kYXRpb24gb3V0IG9mIHRoZSBib3gsIHRoaXMgaXMgMTZweC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgYG51bGxgLCB0aGUgZnVuY3Rpb24gd2lsbCByZWZlcmVuY2UgdGhlIGAkYmFzZS1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlPT1udWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpPT0nJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cbiAgQGlmICRjb3VudD09MSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XG59XG5cbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXG5AZnVuY3Rpb24gLXpmLWJwLXRvLWVtKCR2YWx1ZSkge1xuICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICBAaWYgdW5pdCgkdmFsdWUpPT0ncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9J251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSsnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW1cbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWU9PTByZW0ge1xuICAgICR2YWx1ZTogMDtcbiAgfVxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIEFuaW1hdGlvbiBrZXlmcmFtZXMgYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGFuaW1hdGlvbi1uYW1lIC0gTmFtZSBvZiB0aGUgYW5pbWF0aW9uLlxuQG1peGluIGtleWZyYW1lcygkYW5pbWF0aW9uLW5hbWUpIHtcbiAgQC13ZWJraXQta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1tb3ota2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1tcy1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW8ta2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBBbmltYXRpb24gYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0ciAtIGNzczMgYW5pbWF0aW9uIHNwZWMuXG5AbWl4aW4gYW5pbWF0aW9uKCRzdHIpIHtcbiAgLXdlYmtpdC1hbmltYXRpb246ICN7JHN0cn07XG4gIC1tb3otYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtbXMtYW5pbWF0aW9uOiAjeyRzdHJ9O1xuICAtby1hbmltYXRpb246ICN7JHN0cn07XG4gIGFuaW1hdGlvbjogI3skc3RyfTtcbn1cblxuLy8vIEJveCBzaGFkb3cgYXV0b3ByZWZpeGVyXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0ciAtIGNzczMgYm94LXNoYWRvdyBzcGVjLlxuQG1peGluIGJveC1zaGFkb3coJHN0cikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICN7JHN0cn07XG4gIC1tb3otYm94LXNoYWRvdzogI3skc3RyfTtcbiAgLW8tYm94LXNoYWRvdzogI3skc3RyfTtcbiAgYm94LXNoYWRvdzogI3skc3RyfTtcbn1cblxuLy8vIGdyYWRpZW50IGF1dG9wcmVmaXhlclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gZ3JhZGllbnQoJGNvbG9yMSwgJGNvbG9yMikge1xuICBiYWNrZ3JvdW5kOiAjeyRjb2xvcjF9O1xuICAvKiBGb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBncmFkaWVudHMgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBTYWZhcmkgNS4xIHRvIDYuMCAqL1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBPcGVyYSAxMS4xIHRvIDEyLjAgKi9cbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIEZvciBGaXJlZm94IDMuNiB0byAxNSAqL1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI3skY29sb3IxfSwgI3skY29sb3IyfSk7XG4gIC8qIFN0YW5kYXJkIHN5bnRheCAqL1xufVxuXG5AbWl4aW4gdmVydGljYWwtZ3JhZGllbnQtZGl2aWRlcigpe1xuICB3aWR0aDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6IDFweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgaHJhLWNvbG9yKCRncmV5LCAyMCksICR3aGl0ZSk7XG59XG5cblxuLy8vIElFIG9ubHkgcXVlcnlcbkBtaXhpbiBpZS1vbmx5KCkge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuICAgIC8qIElFMTArIHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG5AbWl4aW4gY3JlYXRlLWFuaW1hdGlvbigkYW5pLW5hbWUpIHtcbiAgYW5pbWF0aW9uOiAkYW5pLW5hbWUgZm9yd2FyZHMgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cblxuQG1peGluIGNyZWF0ZS10cmFuc2l0aW9uKCRwcm9wZXJ0eS1uYW1lKSB7XG4gIHRyYW5zaXRpb246ICRwcm9wZXJ0eS1uYW1lIDMwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG4vLy8gRWRnZSBvbmx5IHF1ZXJ5XG5AbWl4aW4gZWRnZS1vbmx5KCkge1xuICBAc3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAvKiBFZGdlIHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG4vKiBGaXJlZm94IHNwZWNpZmljIHN0eWxlcyBnbyBoZXJlICovXG5AbWl4aW4gZmlyZWZveC1vbmx5KCkge1xuICBAc3VwcG9ydHMgKC1tb3otYXBwZWFyYW5jZTpub25lKSB7XG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG5cbi8vIHN0eWxlZ3VpZGU6aWdub3JlOmVuZCIsIi8qXG5DT01NT04gQ09MT1IgTkFNRVNcblxuVGhlc2UgY29sb3JzIGFyZSBtYXBwZWQgdG8gdGhlIG5hbWVzIGZyb20gdGhlIG9mZmljaWFsIGNvbG9ycy5cbkluc3RlYWQgb2YgaGF2aW5nIG5hbWVzIGxpa2UgYGNydXNoYCBvciBgYmxhemVgLCBkZXZlbG9wZXJzIHdpbGwgdXNlIHRoZWlyIGNvbW1vbiwgbm9uLW1hcmtldGl6ZWQgbmFtZS5cbmVnLiAkcmVkOiBjcnVzaFxuICAgICRvcmFuZ2U6IGJsYXplXG5cblRoZW4sIHVzZSB0aGUgYGhyYS1jb2xvcmAgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb2xvclxuZWcuIGNvbG9yOiBocmEtY29sb3IoJHJlZClcbiovXG5cbiR0aGVtZS1ncmVlbjogI2RmZDI2OTtcbiR0aGVtZS1jb2xvcjogJHRoZW1lLWdyZWVuO1xuJGJsdWU6IGJsdWU7XG4kY3lhbjogY3lhbjtcbiRncmV5OiBncmV5O1xuJHJlZDogY3J1c2g7XG4kb3JhbmdlOiBibGF6ZTtcbiR5ZWxsb3c6IHN1bnNldCwgNjA7XG4kZ3JlZW46IHNlYWZvYW07XG4kbGlnaHQtZ3JlZW46IHNlYXdlZWQ7XG4kZGFyay1ncmVlbjogbWFyaW5lO1xuJGJyb3duOiBicm93bjtcbiRwdXJwbGU6IHB1cnBsZTtcbiRzdW5zZXQ6IHN1bnNldDtcbiRwaW5rOiBwaW5rO1xuXG4kbmV3Z3JleTogbmV3Z3JleTtcbiRuZXdibHVlOiBuZXdibHVlO1xuJG5ld2N5YW46IG5ld2N5YW47XG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBobWEncyBDb2xvdXIgUGFsZXR0ZVxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuJGNvbG9yczogKFxuICAgIGJsdWU6ICg1OiAjZjNmYmZlLCAxMDogI2UyZjRmYiwgMjA6ICNiYWU1ZjUsIDQwOiAjNzFjOGYxLCA2MDogIzMyYjZlOSwgODA6ICMwMDk5ZDMsIDEwMDogIzAwNzRhYSwgMTIwOiAjMDY0YzdjKSxcbiAgICBjcnVzaDogKDU6ICNmZmY3ZjYsIDEwOiAjZmVmMGVkLCAyMDogI2ZkZGZkYywgNDA6ICNmYWMxYmEsIDYwOiAjZjQ4MjcyLCA4MDogI2YxNjE0ZiwgMTAwOiAjZTMyNzIyLCAxMTA6I2MxM2YyYiwgMTIwOiAjYTcxZTIyKSxcbiAgICBjeWFuOiAoNTogI2YyZjlmOSwgMTA6ICNlNmY0ZjQsIDIwOiAjY2NlYWVhLCA0MDogIzlhZDdkNiwgNjA6ICM2OGM1YzQsIDgwOiAjMzZiMWIwLCAxMDA6ICMwMjlmOWQsIDEyMDogIzAyNmY2ZiksXG4gICAgYmxhemU6ICg1OiAjZmZmN2YzLCAxMDogI2ZmZjFlOSwgMjA6ICNmY2UxZDMsIDQwOiAjZmNjNWE3LCA2MDogI2Y3YTc3YiwgODA6ICNmNjg5NGQsIDEwMDogI2YyNmIyMSwgMTIwOiAjYjczZTI1KSxcbiAgICBncmV5OiAoNTogI2ZhZmJmYiwgMTA6ICNlY2VmZjAsIDIwOiAjZTRlN2U5LCA0MDogI2E4YjJiNywgNjA6ICM4MjhkOTMsIDgwOiAjNUI2NjcwLCAxMDA6ICMzZDQ2NGQsIDEyMDogIzE0MWUyNSksXG4gICAgc2VhZm9hbTogKDU6ICNlZmY5ZjgsIDEwOiAjZTRmN2YzLCAyMDogI2NmZWRlOCwgNDA6ICNhNWVhZGIsIDYwOiAjNjFkNmI4LCA4MDogIzJmZDJhOCwgMTAwOiAjMWVhZDhhLCAxMjA6ICMwYjcwNWQpLFxuICAgIHNlYXdlZWQ6ICg1OiAjZjhmYmY2LCAxMDogI2YyZjhlZCwgMjA6ICNlM2YwZDksIDQwOiAjY2JlNGI1LCA2MDogI2IwZDc4ZSwgODA6ICM5NWNiNmEsIDEwMDogIzdhYzE0MiwgMTIwOiAjNDk5MTQyKSxcbiAgICBtYXJpbmU6ICg1OiAjZjdmOWYzLCAxMDogI2YxZjRlOCwgMjA6ICNlNGVhZDIsIDQwOiAjY2JkOWE3LCA2MDogI2JmZGI4NSwgODA6ICNhZWQyNTUsIDEwMDogIzdhYTEzZSwgMTIwOiAjNGM3MzM2KSxcbiAgICBwZWJibGU6ICg1OiAjZmJmY2ZjLCAxMDogI2Y1ZjZmNiwgMjA6ICNlOWU4ZTksIDQwOiAjZDVkNGQ1LCA2MDogI2FhYWFhYiwgODA6ICM3YzdjODEsIDEwMDogIzU0NTM1NSwgMTIwOiAjMjgyNzJiKSxcbiAgICBzdW5zZXQ6ICg1OiAjZmZmZGVlLCAxMDogI2ZmZmJkYiwgMjA6ICNmZGY3YjQsIDQwOiAjZmZmNTdlLCA2MDogI2ZmZjEwMCwgODA6ICNmYmFkMWMsIDEwMDogI2Y0N2YxZiwgMTIwOiAjYzk1NDI4KSxcbiAgICBicm93bjogKDU6ICNmN2Y0ZjIsIDEwOiAjZWFlNGUxLCAyMDogI2Q4Y2VjYiwgNDA6ICNiYWFiYTUsIDYwOiAjOTY4MzdjLCA4MDogIzc3NWQ1MywgMTAwOiAjNTkzODJjLCAxMjA6ICMyZjE4MGQpLFxuICAgIHB1cnBsZTogKDU6ICNmMmVmZjcsIDEwOiAjZThkZmVmLCAyMDogI2Q3YzllMywgNDA6ICNjMWFlZDUsIDYwOiAjYTA4NWJlLCA4MDogIzdiNjFhYSwgMTAwOiAjNjY0ZmExLCAxMjA6ICM0MjJlODUpLFxuICAgIHBpbms6ICg1OiAjZmVmNGY4LCAxMDogI2ZjZTdlZiwgMjA6ICNmYWRhZTEsIDQwOiAjZjRhMmMyLCA2MDogI2VkNzNhNCwgODA6ICNlOTQ1ODYsIDEwMDogI2UzMTU2NywgMTIwOiAjYWIxZDQxKSxcblxuICAgIC8vIE5ldyBVSSBLaXQgY29sb3JzIC0gbmV3IHByZWZpeCB3aWxsIGJlIHJlbW92ZWQgb25jZSB0aGUgbWlncmF0aW9uIGlzIGNvbXBsZXRlZFxuICAgIC8vIEl0IGFsc28gbWFrZXMgc3VyZSB0aGF0IGNvbG9yIHZhcmlhYmxlcyBhcmUgdXNlZFxuICAgIG5ld2dyZXk6ICg1OiAjZmNmY2ZjLCAxMDogI2Y3ZjdmNywgMjA6ICNmMmYyZjIsIDQwOiAjZTllOWU5LCA1MDogI2M3YzdjNywgNjA6ICNhOWE5YTksIDcwOiAjODA4MDgwLCA4MDogIzZiNmI2YiwxMDA6ICM0YjRiNGIsMTIwOiMyOTI5MjkpLFxuICAgIG5ld2JsdWU6ICg1OiAjZjBmNmZhLCAxMDogI2UyZWVmNSwgMjA6ICNiOGQ1ZTcsIDQwOiAjOGViYmQ3LCA1MDogIzY5YTFjNywgNTU6ICM0ZjhmYmQsIDY1OiAjMzg3ZWIzLCA3MDogIzJmNzJhOCwgODA6ICMyNTYyOTcsIDEwMDogIzFkNTI4NSwgMTIwOiAjMTAzNzY2KSxcbiAgICBuZXdjeWFuOiAoNTogI2YwZjZmYSwgMTA6ICNlMmVlZjUsIDIwOiAjYjhkNWU3LCA0MDogIzhlYmJkNywgNTA6ICM2OWExYzcsIDU1OiAjNGY4ZmJkLCA2NTogIzM4N2ViMywgMTAwOiAjMmY3MmE4LCAxMjA6ICMyNTYyOTcsIDE0MDogIzFkNTI4NSwgMTYwOiAjMTAzNzY2KSxcbik7XG5cbkBmdW5jdGlvbiBocmEtY29sb3IoJGNvbG9yLCAkdmFsdWU6IDEwMCkge1xuICAgICRzZWxlY3RlZENvbG9yOiAkY29sb3I7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGNvbG9yKSA9PSAnbGlzdCcpIHtcbiAgICAgICAgJHNlbGVjdGVkQ29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAgICAgICAkdmFsdWU6IG50aCgkY29sb3IsIDIpO1xuICAgIH1cblxuICAgICRjb2xvci1tYXA6IG1hcC1nZXQoJGNvbG9ycywgJHNlbGVjdGVkQ29sb3IpO1xuICAgIEBpZiAoJGNvbG9yLW1hcCA9PSBudWxsKSB7XG4gICAgICAgIEBlcnJvciAkc2VsZWN0ZWRDb2xvciArICcgaXMgbm90IHBhcnQgb2YgdGhlIGNvbG9yIHBhbGV0dGUnO1xuICAgIH1cbiAgICBAcmV0dXJuIG1hcC1nZXQoJGNvbG9yLW1hcCwgJHZhbHVlKTtcbn1cblxuJGJsYWNrOiBocmEtY29sb3IoJGdyZXksIDEyMCk7XG4kd2hpdGU6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiRjb2xvci1ncmF5LXRyYW5zcGFyZW50OiB0cmFuc3BhcmVudGl6ZShocmEtY29sb3IoJGdyZXkpLCAwLjgpO1xuJGhvdmVyLWNvbG9yOiBocmEtY29sb3IoJGdyZXksIDIwKTtcblxuXG4vKiAqKioqICovXG4kc3VjY2Vzcy1jb2xvcjogaHJhLWNvbG9yKCRncmVlbik7XG4kd2FybmluZy1jb2xvcjogaHJhLWNvbG9yKCR5ZWxsb3cpO1xuJGFsZXJ0LWNvbG9yOiBocmEtY29sb3IoJHJlZCk7XG4kY29sb3ItaW52YWxpZDogaHJhLWNvbG9yKCRyZWQpO1xuJGRpc2FibGVkLWNvbG9yOiBocmEtY29sb3IoJGdyZXksIDEwKTtcbiRkaXNhYmxlZC1ib3JkZXI6IGhyYS1jb2xvcigkZ3JleSwgNDApO1xuJGNvbG9yLWhyYS1hbmNob3I6IGhyYS1jb2xvcigkYmx1ZSk7XG4kZGlzYWJsZWQtZm9yZS1jb2xvcjogaHJhLWNvbG9yKCRncmV5LCA0MCk7XG5cbi8qICogQ2hhcnRzIENvbG9ycyAqL1xuJHN0YWNrZWQtdG9vbHRpcC1jaXJjbGUtYmc6ICMzZjQwNDI7XG4kY2hhcnQtdG9vbHRpcC1jaXJjbGU6ICNmZjg5NGM7XG4kZG9udXQtY291bnQ6ICNmZjZiNTc7XG5cbi8qIGluZm8gdGV4dCBiYWNrZ3JvdW5kICovXG4kaW5mby1iYWNrZ3JvdW5kOiAjZmZmZGU2O1xuXG5cbi8qIFVzZSBmb2xsb3dpbmcgY2xhc3NlcyBmb3IgYWVzdGhldGljcyBvbmx5IC0gTmV3IFVJIEtJVCAqL1xuLy8gU3RhbmRhcmRpc2UgdmFyaWFibGVzIHNob3VsZCBiZSB1c2VkIGluc3RlYWQgb2YgZGlyZWN0IGNvbG9yc1xuLyogQ29sb3IgTWFwcGluZyovXG4kcHJpbWFyeS1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Ymx1ZSwgNzApO1xuJHByaW1hcnktaG92ZXItYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDEwMCk7XG4kcHJpbWFyeS10ZXh0OiR3aGl0ZTtcblxuJGRlbGV0ZS1iYWNrZ3JvdW5kOiBocmEtY29sb3IoJHJlZCwgMTEwKTtcblxuJHNlY29uZGFyeS10ZXh0OmhyYS1jb2xvcigkbmV3Ymx1ZSwgNTUpO1xuJHNlY29uZGFyeS1iYWNrZ3JvdW5kOiR3aGl0ZTtcbiRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDUpO1xuJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kOmhyYS1jb2xvcigkbmV3Z3JleSwgNTApO1xuJHNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZDokc2Vjb25kYXJ5LXRleHQ7XG5cbiRmbGF0LWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDgwKTtcbiRmbGF0LWhvdmVyOiBocmEtY29sb3IoJG5ld2dyZXksIDEwMCk7XG4kZmxhdC1kaXNhYmxlZDogaHJhLWNvbG9yKCRuZXdncmV5LCA3MCk7XG5cbiRhY3Rpb24taG92ZXItYmFja2dyb3VuZDogaHJhLWNvbG9yKCRuZXdibHVlLCA4MCk7XG4kYWN0aW9uLWRpc2FibGVkOiBocmEtY29sb3IoJG5ld2dyZXksIDU1KTtcbiRhY3Rpb24tYmFja2dyb3VuZDpocmEtY29sb3IoJG5ld2JsdWUsIDUwKTtcbi8qZW5kcyovXG5cbiRidXR0b24tcHJpbWFyeS10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktYmFja2dyb3VuZDtcbiRidXR0b24tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiRwcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLXByaW1hcnktZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1kZWxldGUtYmFja2dyb3VuZC1jb2xvcjogJGRlbGV0ZS1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1wcmltYXJ5LWRpc2FibGVkLWJvcmRlci1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuXG4vLyBTZWNvbmRhcnkgYnV0dG9ucyBhbmQgc2Vjb25kYXJ5IGFjdGlvbiBidXR0b25zIHNoYXJlIGNvbG9ycyBcbiRidXR0b24tc2Vjb25kYXJ5LWJvcmRlci1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1zZWNvbmRhcnktdGV4dC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItdGV4dC1jb2xvcjogJHNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuJGJ1dHRvbi1zZWNvbmRhcnktZGlzYWJsZWQtY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LXRleHQ7XG5cbiRidXR0b24tZmxhdC1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiRidXR0b24tZmxhdC1jb2xvcjogJGZsYXQtY29sb3I7XG4kYnV0dG9uLWZsYXQtaG92ZXItY29sb3I6JGZsYXQtaG92ZXI7XG4kYnV0dG9uLWZsYXQtZGlzYWJsZWQtY29sb3I6ICRmbGF0LWRpc2FibGVkO1xuXG4kYnV0dG9uLWFjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1ob3Zlci10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kYnV0dG9uLWFjdGlvbi1kaXNhYmxlZC10ZXh0LWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWFjdGlvbi1kZWxldGUtYmFja2dyb3VuZC1jb2xvcjokZGVsZXRlLWJhY2tncm91bmQ7XG5cbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWRpc2FibGVkLWNvbG9yOiAkYWN0aW9uLWRpc2FibGVkO1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuJGJ1dHRvbi1hY3Rpb24tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDtcbiRidXR0b24tYWN0aW9uLXNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG5cbiR1bnNlbGVjdGVkLWNob2ljZS1jb2xvcjogJHNlY29uZGFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuJHNlbGVjdGVkLWNob2ljZS1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuXG4kcmFkaW8tbGFiZWwtY29sb3I6ICRzZWNvbmRhcnktZGlzYWJsZWQtYmFja2dyb3VuZDtcbiR0b2dnbGUtb24tYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuJHRvZ2dsZS1vZi1iYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWRpc2FibGVkLWJhY2tncm91bmQ7XG4kdG9nZ2xlLWhlYWQtY29sb3I6ICR3aGl0ZTtcblxuJGlucHV0LXRleHQtbGFiZWwtY29sb3I6IGhyYS1jb2xvcigkbmV3Z3JleSwgMTIwKTtcbiRpbnB1dC10ZXh0LWJvcmRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA0MCk7XG4kaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjogaHJhLWNvbG9yKCRuZXdncmV5LCA2MCk7XG4kaW5wdXQtdGV4dC1hY3RpdmUtYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDgwKTtcbiRpbnB1dC10ZXh0LWFjdGl2ZS10ZXh0LWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDEyMCk7XG4kaW5wdXQtdGV4dC1lcnJvci1ib3JkZXItY29sb3I6IGhyYS1jb2xvcigkcmVkLCAxMTApO1xuJGlucHV0LXRleHQtZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiBocmEtY29sb3IoJG5ld2dyZXksIDUwKTtcbiRpbnB1dC10ZXh0LWVycm9yLW1lc3NhZ2UtY29sb3I6ICRpbnB1dC10ZXh0LWVycm9yLWJvcmRlci1jb2xvcjtcbiRpbnB1dC10ZXh0LWRpc2FibGVkLWNvbG9yOiAkaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjtcbiRpbnB1dC10ZXh0LWxhYmVsLWRpc2FibGVkLWNvbG9yOiAkaW5wdXQtdGV4dC1ib3JkZXItY29sb3I7XG4kaW5wdXQtdGV4dC1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtdGV4dC1wbGFjZWhvbGRlci1jb2xvcjsiLCJAaW1wb3J0ICdtaXhpbnMnO1xuQGltcG9ydCAnY29sb3JzJztcblxuLyogVXNlZCBmb3IgZ3JpZHMgYW5kIG1hcmdpbnMgKi9cblxuJHNtYWxsLXNpemU6IDQgIWRlZmF1bHQ7XG4kbGFyZ2Utc2l6ZTogMTIgIWRlZmF1bHQ7XG4kc21hbGwtc3F1YXJlOiByZW0tY2FsYygkc21hbGwtc2l6ZSkgIWRlZmF1bHQ7XG4kbGFyZ2Utc3F1YXJlOiByZW0tY2FsYygkbGFyZ2Utc2l6ZSkgIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtZ3JheTogdHJhbnNwYXJlbnRpemUoaHJhLWNvbG9yKCRncmV5LCA0MCksIDAuOCk7XG4kdHJhbnNwYXJlbnQtd2hpdGU6IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgMC42KTtcbiRhbmltYXRpb24tdGltaW5nOiAwLjI1cztcbiRyYWQtZ3JhZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyLCB0cmFuc3BhcmVudGl6ZShocmEtY29sb3IoJGdyZXkpLCAwLjUpIDgwJSwgdHJhbnNwYXJlbnRpemUoJGJsYWNrLCAwLjUpIDEwMCUpO1xuJGxpbmVhci1ncmFkOiByZ2JhKCRibGFjaywgMC43KTtcblxuJHNjcm9sbC1iYXItd2lkdGg6ICRzbWFsbC1zcXVhcmUgKiAyO1xuJHNjcm9sbC1iYXItd2lkdGgtZmlyZWZveDogcmVtLWNhbGMoMTcpO1xuJHNjcm9sbC1iYXItd2lkdGgtZWRnZTogcmVtLWNhbGMoMTcpO1xuJHNjcm9sbC1iYXItd2lkdGgtaWU6IHJlbS1jYWxjKDE3KTtcblxuLypcbiAgZm9udCBzaXplc1xuICovXG4kaWNvbi1mb250LXNpemUtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiAzICFkZWZhdWx0OyAvLyAxMnB4XG4kaWNvbi1mb250LXNpemUtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogNCAhZGVmYXVsdDsgLy8gMTZweFxuJGljb24tZm9udC1zaXplLXJlZ3VsYXI6ICRzbWFsbC1zcXVhcmUgKiA1ICFkZWZhdWx0OyAvLyAyMHB4XG4kaWNvbi1mb250LXNpemUtbGFyZ2U6ICRzbWFsbC1zcXVhcmUgKiA2OyAvLyAyNHB4XG4kaWNvbi1mb250LXNpemUteC1sYXJnZTogJHNtYWxsLXNxdWFyZSAqIDc7IC8vIDI4cHhcbiRpY29uLWZvbnQtc2l6ZS1wbGFjZWhvbGRlcjogJGxhcmdlLXNxdWFyZSAqIDc7XG4kZm9udC1zaXplOiAkaWNvbi1mb250LXNpemUtbWVkaXVtICFkZWZhdWx0OyAvLyAxM3B4XG4kZm9udC1zaXplLW1lZGl1bTogJGljb24tZm9udC1zaXplLW1lZGl1bTsgLy8xNnB4XG4kZm9udC1zaXplLWxhcmdlOiAkaWNvbi1mb250LXNpemUtcmVndWxhcjtcbiRmb250LXNpemUteC1sYXJnZTogJGljb24tZm9udC1zaXplLXgtbGFyZ2U7XG4kZm9udC1zaXplLWhlYWRlcjogMTRweDtcblxuXG4kZm9udC13ZWlnaHQtbGlnaHQ6IDMwMDsgLy8gU291cmNlIFNhbnMgUHJvIExpZ2h0XG4kZm9udC13ZWlnaHQtcmVndWxhcjogNDAwOyAvLyBTb3VyY2UgU2FucyBQcm8gTGlnaHRcbiRmb250LXdlaWdodC1zZW1pLWJvbGQ6IDYwMDsgLy8gU291cmNlIFNhbnMgUHJvIFNlbWkgQm9sZFxuJGZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDsgLy8gU291cmNlIFNhbnMgUHJvIEJvbGRcblxuXG5cbi8qXG4gKiBIZWFkZXIgc2l6ZVxuICovXG5cbiRoZWFkZXItaGVpZ2h0OiByZW0tY2FsYyg1MikgIWRlZmF1bHQ7XG4kaGVhZGVyLXRleHQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogOCAhZGVmYXVsdDsgLy8zMnB4XG4kc3ViLW5hdi1oZWlnaHQ6IDByZW0gIWRlZmF1bHQ7IC8vIDBweFxuJHNlYXJjaC1iYXItaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTUgIWRlZmF1bHQ7XG4vLyRwYWdpbmF0aW9uLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDI1ICFkZWZhdWx0O1xuJGNoYXJ0cy1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3NCAhZGVmYXVsdDtcbiRtYWluLWhlYWRlci1oZWlnaHQ6ICRoZWFkZXItaGVpZ2h0KyRzdWItbmF2LWhlaWdodCAhZGVmYXVsdDtcbiR2aXJ0dWFsLWdyb3VwLWluZGljYXRvci1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA3O1xuJGhlYWRlci1zaWRlLW1hcmdpbjogcmVtLWNhbGMoMjQpO1xuXG4vKlxuICogRGV2aWNlIEdyb3VwIHNldHRpbmdzXG4gKi9cblxuJGRldmljZS1ncm91cC1wYWRkaW5nLWxlZnQ6ICRzbWFsbC1zcXVhcmUgKiA2O1xuJGRldmljZS1ncm91cC1pdGVtcy1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA5O1xuJGRldmljZS1ncm91cC13aWR0aDogJGxhcmdlLXNxdWFyZSAqIDI4O1xuJGRldmljZS1ncm91cC1taW4td2lkdGg6ICRzbWFsbC1zcXVhcmUgKiA1NTtcbiRkZXZpY2UtZ3JvdXAtbWF4LXdpZHRoOiAkc21hbGwtc3F1YXJlICogMTQwO1xuJGRldmljZS1ncm91cC1tYXJnaW4tdG9wOiAkc2VhcmNoLWJhci1oZWlnaHQ7XG4kZGV2aWNlLWdyb3VwLWJ1dHRvbi13aWR0aDogJGxhcmdlLXNxdWFyZSAqIDIxO1xuJGRldmljZS1ncm91cC1idXR0b24taGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTE7XG4kZGV2aWNlLWdyb3VwLWJ1dHRvbi1ib3JkZXI6IDFweCBzb2xpZCBocmEtY29sb3IoJGdyZXksIDIwKTtcblxuLypcbiAqIEJvcmRlciBzZXR0aW5nc1xuICovXG5cbiRib3JkZXItYmFzZTogMXB4IHNvbGlkIHJnYigyMDQsIDIwNCwgMjA0KTtcbiRib3JkZXItcmFkaXVzLXNtYWxsOiAzcHg7XG4kYm9yZGVyLXJhZGl1cy1iYXNlOiA0cHg7XG4kYm9yZGVyLXJhZGl1cy1sYXJnZTogNnB4O1xuXG4vKlxuICogU2hhZG93cyBnbyBieSBsZXZlbFxuICovXG5cbiRzaGFkb3c6IDAgM3B4IDlweCByZ2JhKDAsIDAsIDAsIC41KTtcbiRzaGFkb3ctMTogMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiRzaGFkb3ctc21hbGw6IDAgMXB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xuJHNoYWRvdy1oZWFkZXI6IDBweCAxcHggMTNweCAycHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1zZWFyY2gtaGVhZGVyOiA4cHggMXB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctbGlnaHQ6IDFweCAxcHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiRzaGFkb3ctbGlnaHQtYm90dG9tLW9ubHk6IDBweCAxcHggOHB4IHJnYmEoJGJsYWNrLCAwLjEzKTtcbiRzaGFkb3ctYWJvdmU6IDAgLTFweCAxM3B4IDJweCByZ2JhKCRibGFjaywgMC4xNik7XG4kc2hhZG93LWFib3ZlLWxlZnQ6IC02cHggMHB4IDEzcHggMnB4IHJnYmEoJGJsYWNrLCAwLjE2KTtcbiRzaGFkb3ctYmVsb3c6IDBweCA5cHggOHB4IC01cHggcmdiYSgxNTgsIDE1OCwgMTU4LCAwLjI1KTtcbiRzaGFkb3ctZHJvcGRvd246IDAgMXB4IDEzcHggcmdiYSgkYmxhY2ssIDAuMTYpO1xuJHNoYWRvdy1kaWFsb2c6IDAgOHB4IDIwcHggNnB4IHJnYmEoJGJsYWNrLCAwLjYpO1xuJHNoYWRvdy1kaWFsb2ctc3VmZml4OiAwcHggMTZweCAyMHB4IDNweCByZ2JhKCRibGFjaywgMC42KTtcbiRzaGFkb3ctbGF5b3V0OiA2cHggMHB4IDlweCAwcHggcmdiYSgkYmxhY2ssIDAuMik7XG4kc2hhZG93LXNhdmVkLXNlYXJjaGVzOiA0cHggNHB4IDhweCAtMnB4IHJnYmEoNjcsNzAsNzQsLjEzKTtcbiRzaGFkb3ctY2hhcnQtY2FyZDogMCA2cHggMTZweCByZ2JhKDIwLDMwLDM3LDAuMDgpO1xuJHNoYWRvdy1jb25maWctY2FyZDogMCAwIDI0cHggMCByZ2JhKDIwLDMwLDM3LDAuMSk7XG5cbi8qXG4gKiBQYWRkaW5nIHNldHRpbmdzXG4gKi9cblxuJGJvZHktcGFkZGluZzogJGxhcmdlLXNxdWFyZSAqIDI7XG4kcGFkZGluZy1zbWFsbDogJGxhcmdlLXNxdWFyZTtcbiRiYXNlLXBhZGRpbmc6ICRzbWFsbC1zcXVhcmUgKiA0OyAvLyAxNnB4XG4kaGFsZi1iYXNlLXBhZGRpbmc6ICRiYXNlLXBhZGRpbmcgLyAyO1xuJG1vZGFsLXBhZGRpbmc6ICRiYXNlLXBhZGRpbmc7XG4kbGF5b3V0LXBhZGRpbmc6ICgkYmFzZS1wYWRkaW5nICogMikgKCRib2R5LXBhZGRpbmcgKiAyKSAoJGJhc2UtcGFkZGluZyAqIDIpICgkYm9keS1wYWRkaW5nICogMik7XG4kcGFkZGluZy1iYXNlLXZlcnRpY2FsOiA2cHg7XG4kcGFkZGluZy1iYXNlLWhvcml6b250YWw6ICRzbWFsbC1zcXVhcmUgKiAzO1xuJHBhZGRpbmctbGFyZ2UtdmVydGljYWw6IDEwcHg7XG4kcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsOiAgJHNtYWxsLXNxdWFyZSAqIDQ7XG4kcGFkZGluZy1tZWRpdW0tdmVydGljYWw6IDE0cHg7XG4kcGFkZGluZy1zbWFsbC12ZXJ0aWNhbDogNXB4O1xuJHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDogMTBweDtcblxuLypcbiAqIElucHV0c1xuICovXG4kaW5wdXQtcGFkZGluZzogJHNtYWxsLXNxdWFyZSAkc21hbGwtc3F1YXJlICogMjtcbiRpbnB1dC1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiA4O1xuXG4vKlxuICogVG9vbFRpcHNcbiAqL1xuXG4vLyBUb29sdGlwc1xuJHRvb2x0aXAtbWF4LXdpZHRoOiAyNTBweCAhZGVmYXVsdDtcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KSAhZGVmYXVsdDtcbiR0b29sdGlwLXRleHQtY29sb3I6ICNmZmYgIWRlZmF1bHQ7XG4kdG9vbHRpcC1kZWxheTogMC40cyAhZGVmYXVsdDtcbiR0b29sdGlwLWR1cmF0aW9uOiAwLjFzICFkZWZhdWx0O1xuXG4vKlxuICogQWN0aW9uIGJhciBzaXplc1xuICovXG5cbiRkZXZpY2UtYWN0aW9uLWJhci1oZWlnaHQ6ICRsYXJnZS1zcXVhcmUgKiA1O1xuJGNvdW50LWNvbnRhaW5lci1wYWRkaW5nOiAoJGxhcmdlLXNxdWFyZSAqIDIpICgkc21hbGwtc3F1YXJlICogNCkgKCRsYXJnZS1zcXVhcmUgKiAyKSAoJHNtYWxsLXNxdWFyZSAqIDQpO1xuXG4vKipcbiogIERldmljZSBncmlkIHNpemVzXG4qL1xuXG4kcm93LWFib3ZlLWdyaWQtaGVpZ2h0OiAkc21hbGwtc3F1YXJlICogMTQ7XG4kY2hlY2stY2VsbC1wYWRkaW5nOiAwIDAgMCAkc21hbGwtc3F1YXJlKjI7XG4kZGV2aWNlLWdyaWQtbWluLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDcxO1xuXG4vKlxuICogRm9jdXMgYm9yZGVyXG4gKi9cblxuJGhyYS1mb2N1cy1vdXRsaW5lOiAycHggc29saWQgaHJhLWNvbG9yKCRjeWFuKTtcblxuLypcbiAqIEJvcmRlclxuICovXG5cbiRocmEtYm9yZGVyOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCAyMCk7XG4kaHJhLWJvcmRlci1lcnJvcjogMXB4IHNvbGlkIGhyYS1jb2xvcigkcmVkKTtcbiRocmEtYm9yZGVyLWlucHV0LWRpc2FibGVkOiAxcHggc29saWQgaHJhLWNvbG9yKCRncmV5LCA0MCk7XG5cblxuLypcbiAqIFBvcC11cFxuKi9cbiRocmEtcG9wdXAtYmVhay1zaXplOiAkc21hbGwtc3F1YXJlKjM7XG4kaHJhLXBvcHVwLWJlYWstYm90dG9tLWNlbnRlcjogY2FsYyg1MCUgLSAoMS4yNXJlbSAvIDIpKTtcbiRwb3AtdXAtZm9vdGVyLWhlaWdodDogJGxhcmdlLXNxdWFyZSAqIDU7XG4kcG9wLXVwLXRpdGxlLWhlaWdodDogJHNtYWxsLXNxdWFyZSAqIDEzO1xuJHBvcC11cC10aXRsZS1tYWpvci1oZWlnaHQ6ICRzbWFsbC1zcXVhcmUgKiAxNDtcbi8vIHN0eWxlZ3VpZGU6aWdub3JlOmVuZFxuXG4vKlxuKiBTdGF0dXMgTm90aWZpY2F0aW9uXG4qL1xuJGhyYS1zdGF0dXMtbm90aWZpY2F0aW9uLXdpZHRoOiAkc21hbGwtc3F1YXJlICogODM7XG4kaHJhLXN0YXR1cy1ub3RpZmljYXRpb24tdG9wOiAkc21hbGwtc3F1YXJlICogMTQ7XG4kaHJhLXN0YXR1cy1ub3RpZmljYXRpb24tYm90dG9tOiAkc21hbGwtc3F1YXJlICogMTU7XG5cblxuLypcbiAgUm91bmQgYnV0dG9uIHNpemVzXG4gKi9cbiAkcm91bmQtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiA3O1xuICRyb3VuZC1tZWRpdW06ICRzbWFsbC1zcXVhcmUgKiA4O1xuICRyb3VuZC1sYXJnZTogJHNtYWxsLXNxdWFyZSAqIDk7XG5cbi8qXG4gKiBJbWFnZSBJY29uIFNpemVzXG4gKi9cblxuJGltZy1pY29uLXNpemUtc21hbGw6ICRzbWFsbC1zcXVhcmUgKiA4O1xuJGltZy1pY29uLXNpemUtbWVkaXVtOiAkc21hbGwtc3F1YXJlICogMTA7XG5cblxuJGJlemllcjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcblxuXG4vKiogTW9kYWwgc2l6ZXMgKiovXG4kbW9kYWwtdGl0bGUtaGVpZ2h0OiByZW0tY2FsYyg1Mik7XG4kbW9kYWwtZm9vdGVyLWhlaWdodDogcmVtLWNhbGMoNjApO1xuIiwiQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9iYXNlL3NldHRpbmdzXCI7XG5cbmEgLm5hdmJhci1icmFuZCB7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd29yZC1icmVhazogbm9ybWFsO1xufVxuXG5odG1sIHtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgaHRtbCB7XG4gICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLm5hdmJhciB7XG4gIHBhZGRpbmc6MCFpbXBvcnRhbnQ7XG59XG4ubG9nbyB7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIGhlaWdodDogcmVtLWNhbGMoNzApO1xuICB3aWR0aDogcmVtLWNhbGMoOTApO1xuICBtYXJnaW46IDAgYXV0bztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vLi4vLi4vYXNzZXRzL2ltZy9Mb2dvLnBuZ1wiKTtcbn1cblxuLmJveC1zaGFkb3cge1xuICBib3gtc2hhZG93OiAwIDAuMjVyZW0gMC43NXJlbSByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuXG5oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi8uLi8uLi9hc3NldHMvaW1nL1RXTl9iZ19pbWcuanBnXCIpO1xuICAvL2hlaWdodDogMzYwcHg7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcblxuICAubmF2LWxpbmsge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gIC5oZWFkZXItY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDUlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDUlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIH1cblxuICAubWFpbi1sb2dvIHtcbiAgICBmb250LXNpemU6IDM1cHg7XG4gICAgY29sb3I6ICNGRkY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLm1haW4tY2VudGVyLXRleHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cbiJdfQ== */\"","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { distinctUntilChanged } from 'rxjs/internal/operators/distinctUntilChanged';\nimport { filter } from 'rxjs/internal/operators/filter';\nimport { switchMap } from 'rxjs/internal/operators/switchMap';\nimport { Subscription } from 'rxjs/internal/Subscription';\nimport { UserQuery } from 'src/app/controls/StateManagement/User/user.query';\nimport { UserToken } from 'src/app/models/UserToken';\nimport { AuthenticationService } from 'src/app/services/authentication.service';\nimport { UserService } from 'src/app/services/user.service';\n\n@Component({\n selector: 'app-nav-menu',\n templateUrl: './nav-menu.component.html',\n styleUrls: ['./nav-menu.component.scss']\n})\nexport class NavMenuComponent implements OnInit {\n @Input()\n showHeaderForcefully: false;\n\n isExpanded = false;\n currentUser: UserToken;\n isAdmin = false;\n firstName: string;\n lastName: string;\n isHraCompleted = false;\n memberId:string;\n private _userData: Subscription;\n\n constructor(\n private router: Router,\n private authenticationService: AuthenticationService,\n private _userQuery: UserQuery,\n private _userService: UserService) {\n this.authenticationService.currentUser.subscribe(x => {\n this.currentUser = x;\n if (!!this.currentUser) {\n this.isAdmin = this.authenticationService.isAdmin;\n this._loadUserDetails();\n }\n }); \n }\n\n ngOnInit(): void {\n }\n\n logout() {\n this.authenticationService.logout();\n this.router.navigate(['/login']);\n }\n\n collapse() {\n this.isExpanded = false;\n }\n\n toggle() {\n this.isExpanded = !this.isExpanded;\n }\n\n private _loadUserDetails() {\n this._userData = this._userQuery.isUserDetailsLoaded$.pipe(\n filter(areCoursesLoaded => !areCoursesLoaded),\n switchMap(areCoursesLoaded => {\n if (!areCoursesLoaded) {\n return this._userService.getUserDetails();\n }\n })\n ).pipe(distinctUntilChanged()).subscribe(user => {\n if (!!user) {\n this.firstName = user.firstName;\n this.lastName = user.lastName;\n this.isHraCompleted = user.isHraCompleted;\n }\n });\n }\n manageProfile(){\n this.router.navigate(['manage-profile'], {\n queryParams: {\n memberid: this.memberId\n }\n })\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb250cm9scy9wb3B1cGNvbXBvbmVudC9wb3B1cGNvbXBvbmVudC5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\n@Component({\n selector: 'app-popupcomponent',\n templateUrl: './popupcomponent.component.html',\n styleUrls: ['./popupcomponent.component.css']\n})\nexport class PopupcomponentComponent implements OnInit {\n\n constructor(\n ) { }\n ngOnInit(): void {\n throw new Error('Method not implemented.');\n }\n\n \n\n \n}","export default \".popup {\\n position: relative;\\n display: inline-block;\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none; }\\n\\n.popup .popuptext {\\n visibility: hidden;\\n width: 160px;\\n background-color: #555;\\n color: #fff;\\n text-align: center;\\n border-radius: 6px;\\n padding: 8px 0;\\n position: absolute;\\n z-index: 1;\\n bottom: -10px;\\n left: 50%;\\n margin-left: -80px;\\n opacity: 0;\\n transition: opacity 0.5s; }\\n\\n/* Popup arrow */\\n\\n.popup .popuptext::after {\\n content: \\\"\\\";\\n position: absolute;\\n top: 100%;\\n left: 50%;\\n margin-left: -5px;\\n border-width: 5px;\\n border-style: solid;\\n border-color: #555 transparent transparent transparent; }\\n\\n/* Toggle this class - hide and show the popup */\\n\\n.popup .show {\\n visibility: visible;\\n opacity: 1; }\\n\\n/* Component's CSS file */\\n\\n.custom-dialog-container {\\n display: flex;\\n justify-content: center;\\n align-items: center; }\\n\\n.EnrollBtn {\\n background-color: #4CAF50;\\n color: white;\\n /* border-radius: 15px; */\\n font-size: 12px;\\n line-height: 18px;\\n border: 0px;\\n padding: 4px 12px; }\\n\\n.EnrollBtnBlue {\\n background-color: #1b6ec2;\\n color: white;\\n /* border-radius: 15px; */\\n font-size: 12px;\\n line-height: 18px;\\n border: 0px;\\n padding: 4px 12px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3ZzdHMvd29yay8xL3MvSFJBLldlYi9DbGllbnRBcHAvc3JjL2FwcC9zaGFyZWQvY29udHJvbHMvcmVuZGVyZXJzL2J1dHRvbi1yZW5kZXJlci9idG4ucmVuZGVyZXIuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGtCQUFrQjtFQUNsQixxQkFBcUI7RUFDckIsZUFBZTtFQUNmLHlCQUF5QjtFQUN6QixzQkFBc0I7RUFDdEIscUJBQXFCO0VBQ3JCLGlCQUFpQixFQUFBOztBQUduQjtFQUNFLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osc0JBQXNCO0VBQ3RCLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLGFBQWE7RUFDYixTQUFTO0VBQ1Qsa0JBQWtCO0VBQ2xCLFVBQVU7RUFDVix3QkFBd0IsRUFBQTs7QUFHMUIsZ0JBQUE7O0FBQ0E7RUFDRSxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxTQUFTO0VBQ1QsaUJBQWlCO0VBQ2pCLGlCQUFpQjtFQUNqQixtQkFBbUI7RUFDbkIsc0RBQXNELEVBQUE7O0FBR3hELGdEQUFBOztBQUNBO0VBQ0UsbUJBQW1CO0VBQ25CLFVBQVUsRUFBQTs7QUFHWix5QkFBQTs7QUFDQTtFQUNFLGFBQWE7RUFDYix1QkFBdUI7RUFDdkIsbUJBQW1CLEVBQUE7O0FBR3JCO0VBQ0UseUJBQXlCO0VBQ3pCLFlBQVk7RUFDWix5QkFBQTtFQUNBLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsV0FBVztFQUNYLGlCQUFpQixFQUFBOztBQUduQjtFQUNFLHlCQUF5QjtFQUN6QixZQUFZO0VBQ1oseUJBQUE7RUFDQSxlQUFlO0VBQ2YsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxpQkFBaUIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb250cm9scy9yZW5kZXJlcnMvYnV0dG9uLXJlbmRlcmVyL2J0bi5yZW5kZXJlci5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnBvcHVwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLnBvcHVwIC5wb3B1cHRleHQge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAxNjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBwYWRkaW5nOiA4cHggMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICBib3R0b206IC0xMHB4O1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtODBweDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzO1xufVxuXG4vKiBQb3B1cCBhcnJvdyAqL1xuLnBvcHVwIC5wb3B1cHRleHQ6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gIGJvcmRlci13aWR0aDogNXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICM1NTUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG59XG5cbi8qIFRvZ2dsZSB0aGlzIGNsYXNzIC0gaGlkZSBhbmQgc2hvdyB0aGUgcG9wdXAgKi9cbi5wb3B1cCAuc2hvdyB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qIENvbXBvbmVudCdzIENTUyBmaWxlICovXG4uY3VzdG9tLWRpYWxvZy1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLkVucm9sbEJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Q0FGNTA7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgLyogYm9yZGVyLXJhZGl1czogMTVweDsgKi9cbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgYm9yZGVyOiAwcHg7XG4gIHBhZGRpbmc6IDRweCAxMnB4O1xufVxuXG4uRW5yb2xsQnRuQmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYjZlYzI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgLyogYm9yZGVyLXJhZGl1czogMTVweDsgKi9cbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgYm9yZGVyOiAwcHg7XG4gIHBhZGRpbmc6IDRweCAxMnB4O1xufVxuIl19 */\"","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { IAfterGuiAttachedParams } from 'ag-grid-community';\nimport { ActivatedRoute, Router, UrlSerializer } from '@angular/router';\nimport { MatDialog } from '@angular/material/dialog';\nimport { PopupComponent } from 'src/app/controls/pop-up/popup/popup.component';\n\n@Component({\n selector: 'app-btn-cell-renderer',\n templateUrl: './btn.renderer.html',\n styleUrls: [\"./btn.renderer.scss\"],\n\n\n})\n\n\n\nexport class BtnCellRendererComponent implements ICellRendererAngularComp {\n\n constructor(private _ActivatedRoute: ActivatedRoute,private router: Router, private urlSerializer: UrlSerializer, private dialog: MatDialog) { }\n showModal = false;\n params: any;\n baseUrl: string = '';\n successMessage = '';\n refresh(params: any): boolean {\n return true;\n }\n\n afterGuiAttached?(params?: IAfterGuiAttachedParams,): void {\n\n }\n\n agInit(params: any): void {\n this.params = params;\n }\n\n btnClickedHandler(isDelete: boolean, data: any, isDownload: boolean) {\n this.params.clicked(isDelete, this.params.value, isDownload);\n }\n OnGroupView() {\n let groupid = this.params.data.referenceId;\n this.router.navigate(['/admin/group-view/' + groupid]);\n \n }\n\n // copy data on button click\n copyData() {\n this.successMessage = '';\n this.baseUrl = this.getBaseUrl();\n const routeUrlTree = this.router.createUrlTree(['/plans/selection'], {\n queryParams: { groupid: this.params.data.externalId },\n });\n const urlString = this.urlSerializer.serialize(routeUrlTree);\n this.copyTextToClipboard(this.baseUrl + urlString);\n this.successMessage = 'Link copied successfully.';\n // alert(this.successMessage)\n this.dialog.open(PopupComponent, {\n data: this.successMessage,\n panelClass: 'custom-dialog-container'\n });\n }\n\n // copy data \n private copyTextToClipboard(text: string) {\n const dummyInput = document.createElement('input');\n dummyInput.style.position = 'fixed';\n dummyInput.style.opacity = '0';\n dummyInput.value = text;\n document.body.appendChild(dummyInput);\n\n dummyInput.select();\n document.execCommand('copy');\n document.body.removeChild(dummyInput);\n }\n\n // get dynamic url\n private getBaseUrl(): string {\n const protocol = window.location.protocol;\n const hostname = window.location.hostname;\n const port = window.location.port;\n // Use the detected protocol, hostname, and port to form the base URL\n return `${protocol}//${hostname}${port ? ':' + port : ''}`;\n }\n\n openPopup(): void {\n this.showModal = true;\n }\n\n closePopup(): void {\n this.showModal = false;\n }\n\n OnRedirectToPlan() {\n let groupId = \"\";\n this._ActivatedRoute.queryParamMap.subscribe((param) => {\n groupId = param.get('groupid');\n });\n this.router.navigate(['enrollment/enroll'], {\n queryParams: {\n groupid: groupId,\n planid: this.params.data.id \n }\n })\n }\n RedirectToClaim() {\n let groupId = this.params.data.id;\n this.router.navigate(['admin/claim-payment-view/' + groupId])\n }\n RedirectToClaimItem() {\n let groupId = this.params.data.referenceId;\n this.router.navigate(['admin/claim-payment-list/' + groupId])\n }\n OnRedirectToPeriod() {\n let periodid = this.params.data.id;\n this.router.navigate(['admin/period/'+ periodid +'/period-schedule' ])\n }\n OnRedirectToPeriodSchedule() {\n let periodScheduleId = this.params.data.id;\n this.router.navigate(['admin/periodSchedule-plan/' + periodScheduleId])\n }\n RedirectToEditSchedulePlan() {\n let SchedulePlanId = this.params.data.id;\n this.router.navigate(['admin/period-schedule-plan/' + SchedulePlanId])\n }\n OnRedirectToMember() {\n let referenceId = this.params.data.referenceId; \n this.router.navigate(['admin/groups/' + referenceId + '/members'])\n }\n OnRedirectToInvoice() {\n let invoiceId = this.params.data.id;\n this.router.navigate(['admin/invoice-view/' + invoiceId])\n }\n OnRedirectToMemberEnroll() {\n let memberId = 0;\n this._ActivatedRoute.queryParamMap.subscribe((param) => {\n memberId = Number(param.get('memberid'));\n });\n this.router.navigate(['admin/enroll/member'], {\n queryParams: {\n memberid: memberId\n }\n })\n }\n\n OnRedirectToLeadList() {\n let groupid = this.params.data.externalId; \n this.router.navigate(['admin/groups/'+groupid+'/lead-list'])\n }\n OnRedirectToEnroll(){\n\n this.successMessage = '';\n this.baseUrl = this.getBaseUrl();\n const routeUrlTree = this.router.createUrlTree(['/enrollment/enroll'], {\n queryParams: { leadid: this.params.data.leadId },\n });\n const urlString = this.urlSerializer.serialize(routeUrlTree);\n this.copyTextToClipboard(this.baseUrl + urlString);\n this.successMessage = 'Link copied successfully.';\n // alert(this.successMessage)\n this.dialog.open(PopupComponent, {\n data: this.successMessage,\n panelClass: 'custom-dialog-container'\n });\n // this.router.navigate(['enrollment/enroll'], {\n // queryParams: {\n // leadid: this.params.data.leadId\n // }\n // });\n }\n\n OnRedirectToInvoiceForm(){\n let invoiceId = this.params.data.id;\n this.router.navigate([]).then(result => { window.open(`/admin/invoice-detail/${invoiceId}`, '_blank'); });\n }\n\n}\n","export default \"::ng-deep canvas {\\n display: block;\\n box-shadow: 0 0 5px 1px #999;\\n margin: 2em auto;\\n}\\n\\n::ng-deep .canvasbox{ width: 450px;}\\n\\n@media screen and (min-width: 992px) and (max-width: 1024px) {\\n\\n ::ng-deep .canvasbox{ width: 380px!important;}\\n\\n}\\n\\n@media screen and (min-width: 768px) and (max-width: 991px) {\\n\\n ::ng-deep .canvasbox{ width: 380px!important;}\\n\\n}\\n\\n@media screen and (min-width: 320px) and (max-width: 600px) {\\n\\n ::ng-deep .canvasbox{ width: 100%!important;}\\n\\n\\n}\\n\\n::ng-deep .clearSignature\\n{\\n position: absolute;\\n top:34px;\\n right: 3px;\\n}\\n\\n.table-row-group{\\n display: table-row-group;\\n}\\n\\n::ng-deep .table-row-group{\\n display: table-row-group;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2NvbnRyb2xzL3NpZ25hdHVyZS9zaWduYXR1cmUtcGFkL3NpZ25hdHVyZS1wYWQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGNBQWM7RUFDZCw0QkFBNEI7RUFDNUIsZ0JBQWdCO0FBQ2xCOztBQUVBLHNCQUFzQixZQUFZLENBQUM7O0FBSW5DOztFQUVFLHNCQUFzQixzQkFBc0IsQ0FBQzs7QUFFL0M7O0FBSUE7O0VBRUUsc0JBQXNCLHNCQUFzQixDQUFDOztBQUUvQzs7QUFJQTs7RUFFRSxzQkFBc0IscUJBQXFCLENBQUM7OztBQUc5Qzs7QUFDQTs7RUFFRSxrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLFVBQVU7QUFDWjs7QUFFQTtFQUNFLHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFLHdCQUF3QjtBQUMxQiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb250cm9scy9zaWduYXR1cmUvc2lnbmF0dXJlLXBhZC9zaWduYXR1cmUtcGFkLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6Om5nLWRlZXAgY2FudmFzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICM5OTk7XG4gIG1hcmdpbjogMmVtIGF1dG87XG59XG5cbjo6bmctZGVlcCAuY2FudmFzYm94eyB3aWR0aDogNDUwcHg7fVxuXG5cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcblxuICA6Om5nLWRlZXAgLmNhbnZhc2JveHsgd2lkdGg6IDM4MHB4IWltcG9ydGFudDt9XG5cbn1cblxuXG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcblxuICA6Om5nLWRlZXAgLmNhbnZhc2JveHsgd2lkdGg6IDM4MHB4IWltcG9ydGFudDt9XG5cbn1cblxuXG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblxuICA6Om5nLWRlZXAgLmNhbnZhc2JveHsgd2lkdGg6IDEwMCUhaW1wb3J0YW50O31cblxuXG59XG46Om5nLWRlZXAgLmNsZWFyU2lnbmF0dXJlXG57XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOjM0cHg7XG4gIHJpZ2h0OiAzcHg7XG59XG5cbi50YWJsZS1yb3ctZ3JvdXB7XG4gIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cDtcbn1cblxuOjpuZy1kZWVwIC50YWJsZS1yb3ctZ3JvdXB7XG4gIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cDtcbn0iXX0= */\"","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { SignaturePad } from 'angular2-signaturepad';\n\nimport { SignatureService } from 'src/app/services/signature.service';\n\n@Component({\n selector: \"app-signature-pad\",\n templateUrl: './signature-pad.component.html',\n styleUrls: ['./signature-pad.component.css']\n})\nexport class SignaturePadComponent {\n @ViewChild(SignaturePad, { static: true }) signaturePad: SignaturePad;\n\n\n private signaturePadOptions: Object = { // passed through to szimek/signature_pad constructor\n \n };\n constructor(private signatureService: SignatureService) {}\n ngAfterViewInit() {\n this.signaturePad.clear(); // invoke functions from szimek/signature_pad API\n }\n \n clear() {\n this.signaturePad.clear();\n }\n \n drawComplete() {\n this.signatureService.setSignatureData(this.signaturePad.toDataURL());\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb250cm9scy9zdWNjZXNzQWxlcnQvc3VjY2Vzcy1tZXNzYWdlLWRpYWxvZy9zdWNjZXNzLW1lc3NhZ2UtZGlhbG9nLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-success-message-dialog',\n templateUrl: './success-message-dialog.component.html',\n styleUrls: ['./success-message-dialog.component.css']\n})\nexport class SuccessMessageDialogComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'vimeoUrl'\n})\nexport class VimeoUrlPipe implements PipeTransform {\n constructor(protected _sanitizer: DomSanitizer) {}\n\n transform(value: any, args?: any): any {\n const url = value.replace('/vimeo.com/', 'player.vimeo.com/video/');\n return this._sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon'\nimport { BtnCellRendererComponent } from 'src/app/shared/controls/renderers/button-renderer/btn.renderer';\nimport { AgGridModule } from 'ag-grid-angular';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { CommonModule } from '@angular/common';\nimport { RecaptchaModule } from 'ng-recaptcha';\nimport { SuccessMessageDialogComponent } from './controls/successAlert/success-message-dialog/success-message-dialog.component';\nimport { CaptchaComponent } from './controls/captcha/captcha.component';\nimport { PopupcomponentComponent } from './controls/popupcomponent/popupcomponent.component';\n\n@NgModule({\n declarations: [\n BtnCellRendererComponent,\n SuccessMessageDialogComponent,\n CaptchaComponent, PopupcomponentComponent\n ],\n imports: [\n MatDialogModule,\n MatButtonModule,\n MatIconModule,\n BrowserModule,\n CommonModule,\n AgGridModule.withComponents([BtnCellRendererComponent]),\n RecaptchaModule.forRoot()\n ],\n exports: [\n RecaptchaModule\n ]\n})\nexport class SharedModule { }\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: true,\n apiUrl: 'https://twnportalapi.azurewebsites.net/api/',\n siteKey: '6LerqDooAAAAAAk1_s-91UPiDmpZkqIB3APwkja2',\n downloadLink: 'https://twnportalapi.azurewebsites.net/'\n};\n\n\n/*\n * In development mode, to ignore zone related error stack frames such as\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\n * import the following file, but please comment it out in production mode\n * because it will have performance impact when throw error\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvZ2V0LWxlYWQvZ2V0LWxlYWQuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { HMALeadService } from 'src/app/services/hmalead.service';\n\n@Component({\n selector: 'app-get-lead',\n templateUrl: './get-lead.component.html',\n styleUrls: ['./get-lead.component.css']\n})\nexport class GetLeadComponent implements OnInit {\n\n constructor(private route :ActivatedRoute,private service:HMALeadService) { }\npublic email:string;\n ngOnInit() {\n // Retrieve the email from the query parameters\n this.route.queryParamMap.subscribe(params => {\n this.email = params.get('Email');\n this.service.getLead(this.email).subscribe((response)=>{\n console.log(response)\n });\n console.log(this.email)\n \n \n });\n \n }\n\n }\n\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nexport function getBaseUrl() {\n return document.getElementsByTagName('base')[0].href;\n}\n\nconst providers = [\n { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }\n];\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic(providers).bootstrapModule(AppModule)\n .catch(err => console.log(err));\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mask'\n})\nexport class MaskPipe implements PipeTransform {\n transform(value: string, mask: string): string {\n if (!value) {\n return value;\n }\n\n let maskedValue = '';\n let j = 0;\n\n for (let i = 0; i < mask.length; i++) {\n if (mask[i] === '0') {\n maskedValue += value[j] || '';\n j++;\n } else {\n maskedValue += mask[i];\n }\n }\n\n return maskedValue;\n }\n}\n"],"sourceRoot":"webpack:///"}