{"version":3,"sources":["images/Branding/2_Baylor Scott & White Health Plan_Horz_Color.png","images/Branding/footer-line.jpg","images/progbar.gif","images/loading_symbol_3.gif","constants/actionTypes.js","apis/dashboardApis.js","sagas/dashboardSagas.js","apis/appSettingsApi.js","apis/applicationUserApis.js","sagas/userSagas.js","apis/professionalApis.js","constants/listType.js","sagas/professionalApplicationSagas.js","apis/documentApis.js","sagas/documentSagas.js","apis/clientLoggingApis.js","sagas/clientLoggingSagas.js","sagas/index.js","reducers/dashboardReducer.js","reducers/userReducer.js","models/ProfessionalApplication.js","reducers/professionalApplicationReducer.js","reducers/documentReducer.js","reducers/index.js","components/common/ProviderNavigation.js","components/common/Header.js","components/common/Footer.js","components/Layout.js","components/AutoLogoutTimer.js","constants/validations.js","components/common/SectionHeader.js","components/common/FormField.js","constants/providerTypes.js","models/ClientLoggingModel.js","components/common/VerifyEmail.js","common/useFeatureFlag.js","components/pages/SignUp.js","components/pages/ForgotPassword.js","components/pages/ResetPassword.js","components/pages/ConfirmEmail.js","components/common/LoadingAnimation.js","components/pages/Welcome.js","components/common/NavLink.js","constants/PortalApplicationStatus.js","components/pages/Dashboard/ApplicationStatus.js","components/common/LoadingCircle.js","components/pages/Dashboard/TaxIdModal.js","components/pages/Dashboard.js","components/pages/Application/Common/NavigationFooter.js","components/common/SubSectionHeader.js","components/common/CustomAlert.js","components/pages/Application/Common/AddressForm.js","components/pages/Application/Professional/PracticeLocationInfo.js","components/pages/Application/Common/PracticeContactInfo.js","components/common/FileUpload.js","constants/specialtyBoardCertification.js","constants/suffix.js","components/pages/Application/Professional/ProviderInformation.js","components/pages/Application/Common/HoursOfOperation.js","constants/PracticeLimitationsTypes.js","components/pages/Application/Common/PracticeLimitations.js","components/pages/Application/Common/PracticeInformation.js","App.js","index.js","store/store.js"],"names":["module","exports","LOGOUT","getApplicationStatus","payload","status","getMessages","messages","params","userInfo","select","state","user","applicationStatus","call","dashboardApis","put","type","e","message","messageCount","length","dashboardSagas","takeLatest","getApiUrl","async","response","fetch","method","headers","json","getTimoutSettings","signUp","npi","taxId","firstName","lastName","email","password","providerType","phoneNumber","apiExtension","appSettingsApi","body","JSON","stringify","then","Promise","resolve","text","reject","bind","catch","err","signIn","username","referrerPolicy","getUserByEmail","console","log","getTaxId","url","token","access_token","toString","getNpi","logOut","forgotPassword","resetPassword","confirmEmail","resendEmail","getUserInfo","applicationUserApis","error","updateUserInfo","result","accountCreated","updateUserInfoInitialize","userExists","_state$user","taxIdInUse","npiIsValid","action","success","emailConfirmation","resetSuccess","emailVerified","appSettingsApis","timeoutSettings","userSagas","types","getApplications","userName","getApplicationDetails","appId","apiUrl","createApplication","application","updateApplication","submit","deleteApplication","id","getReferenceList","listName","ListType","TaxIdList","CountyList","CountyLookup","LanguageList","StateList","TaxonomyList","AccreditationTypeList","DegreeAndCertificationList","AddressTypeList","ContactTypeList","MalpracticeInsuranceTypeList","MalpracticeInsuranceCarrierList","MalpracticeInsuranceAmountsList","ProviderFacilityAffiliationList","SpecialtyList","PracticeLimitationList","MentalHealthServiceTypeList","ApplicationStatusList","professionalApis","applicationDetails","multipleApplicationsPerUser","r","errors","list","listname","isActive","item","active","activeList","items","filter","lists","Object","freeze","professionalApplicationSagas","takeEvery","getDocument","key","fileName","blob","uploadDocument","file","documentApis","parse","name","documentSagas","logInfo","clientLoggingModel","logDebug","logWarning","logError","clientLoggingApis","clientLoggingSagas","startSagas","watchers","fork","dashboardSaga","all","dashboardInitialState","isFetching","userInitialState","welcomeComplete","resendEmailError","forgotPasswordError","featureFlags","baseHoursOfOperation","day","startTime","endTime","InitPracticeLocation","practiceLocationId","city","county","fax","medicaidNumber","phone","streetLine1","streetLine2","zipCode","zipPlus4","applicationInitialState","Array","Day","StartTime","EndTime","taxIdList","countyList","languageList","taxonomyList","accreditationTypeList","degreeAndCertificationList","addressTypeList","contactTypeList","malpracticeInsuranceTypeList","malpracticeInsuranceCarrierList","malpracticeInsuranceAmountsList","providerFacilityAffiliationList","specialtyList","practiceLimitationList","mentalHealthServiceTypeList","applications","applicationBeingUpdated","isAppDataFetching","countyLookup","Map","applicationApiCalledSuccess","documentInitialState","attachment","uploadOccuredAt","rootReducer","combineReducers","dashboard","arguments","undefined","taxIdError","ready","authenticated","value","professionalApplication","newArray","concat","cleanArray","app","newApplicationsArray","map","updatedApplication","array","newApplication","newApplications","newList","stateList","document","cookiesObject","ProviderNavigation","React","createElement","className","href","target","rel","data-toggle","data-target","aria-controls","aria-expanded","aria-label","aria-haspopup","Header","props","dispatch","useDispatch","history","useHistory","logOutSuccess","useSelector","hideLogOut","sethideLogOut","useState","setlLogOut","cookies","removeCookie","useCookies","useEffect","push","src","logo","alt","Button","onClick","navigateToWelcome","logout","isFormDataSaved","window","confirm","htmlFor","Footer","useLocation","pathname","bottomBorder","title","Layout","Component","render","Container","this","children","_Layout","displayName","AutoLogoutTimer","idleModal","setIdleModal","idlTtimeoutSetting","idleTimeoutMinutes","sessionTimeoutSetting","sessionTimeoutMinutes","sessionTimeout","useRef","timeoutId","setTimeoutId","clearTimeout","reset","useIdleTimer","timeout","onIdle","event","setTimeout","debounce","Modal","isOpen","toggle","ModalHeader","ModalBody","ModalFooter","validateMedicaid","validMedicaidRegex","RegExp","test","validatePassword","validateConfirmPassword","validateTaxId","validateNpi","validNpiRegex","validateNA","validateEmail","validEmailRegex","validatePhone","validPhoneRegex","validateFax","validFaxRegex","validateForNotNullOrWhitespace","validateLength","maxLength","minLength","required","invalid","validateDate","startDate","Date","endDate","date","getTime","validateExpirationDate","validateDateRange","sDate","eDate","validateForm","valid","values","forEach","val","validateRequiredFields","requiredFields","missingField","find","field","SectionHeader","Row","Col","md","Label","FormField","label","options","placeholder","selectedOptions","datasource","min","max","mask","disabled","showRequiredErrorOnLoad","onChange","onFocusOut","requiredError","setRequiredError","dropdownOpenLang","setDropdownOpenLang","toggleLang","prevState","onFieldChange","FormGroup","for","sm","Input","checked","o","Dropdown","direction","DropdownToggle","DropdownMenu","modifiers","setMaxHeight","enabled","fn","data","styles","overflow","maxHeight","includes","InputMask","maskChar","autoComplete","onBlur","ProviderTypes","ClientLoggingModel","pageName","methodName","jsonResult","VerifyEmail","location","closeVerifyEmail","setEmailVerified","setClientLoggingModel","logInfoWrite","FontAwesomeIcon","icon","faEnvelopeOpenText","preventDefault","useFeatureFlag","flagKey","appSettings","flags","flagValue","setEnabled","client","setClient","appConfigurationConnectionString","AppConfigurationClient","useMemo","trim","configClient","newConfigClient","getConfigurationSetting","debug","SignUp","createActionDone","setCreateActionDone","submitDisabled","setSubmitDisabled","providerTypesList","providerTypes","multipleApplicationsEnabled","setUser","confirmPassword","setErrors","canSubmit","onFocusOutTrimSpaces","newValue","updatedErrors","validators","inputChangeHandler","npiErr","taxIdErr","emailErr","Form","onSubmit","userInfoTolog","form","size","block","ForgotPassword","emailError","setEmail","disableButton","setDisableButton","validations","errs","ResetPassword","errorWhileChangingPassword","newPassword","setNewPassword","setConfirmPassword","enableResetButton","setEnableResetButton","setParams","locationParams","search","queryString","searchParms","saveInputs","ConfirmEmail","confirmationComplete","setConfirmationComplete","LoadingAnimation","loadingIcon","Welcome","setUserName","setPassword","showCredentialError","setShowCredentialError","setCookie","saveEmailChecked","setSaveEmailChecked","pageLoading","setPageLoading","showModal","setShowModal","credentialingEnabled","currentApplication","isFetchingApp","path","maxAge","setDate","getDate","logWarningWrite","_JSON$stringify","handleCheckboxChange","close","NavLink","description","button","link","onClickFunction","Link","to","PortalApplicationStatus","AdditionalInformationReceived","AdditionalInformationRequestCheckYourEmailForDetails","AdditionalInformationRequestCheckYourEmail","AppliedForContract","ContractApproved","ContractBeingCreated","ContractReceived","ContractSignatureAndCredentialingInformationNeedsToBeReturnedToUs","CredentialingComplete","Denied","InCredentialing","InReview","IncompleteApplicationPleaseCheckYourEmailForDtails","PendingSetUp","PSSNeedsMoreInfoFromPRContracting","RequestClosedCheckYourEmail","Submitted","Drafted","Created","ApplicationStatus","percentComplete","rows","setRows","setApplicationBeingUpdated","initModal","modalOpen","modalBody","modalButtonText","modalButtonClick","modal","setModal","isCollapsed","setIsCollapsed","statusClass","portalStatus","pathColor","modalDeleteApplication","toggleProviderTable","applicationId","rowArray","providerSummary","i","nm","providerGUID","columns","headerName","flex","headerClassName","headerAlign","align","legalName","faTrash","groupNpi","faAngleRight","faAngleDown","DataGrid","pageSize","rowHeight","headerHeight","components","NoRowsOverlay","color","CircularProgressbar","strokeWidth","buildStyles","textColor","strokeLinecap","providerDefinition","LoadingCircle","loadingCircle","TaxIdModal","showTinModal","closeModal","changeTaxId","initTaxId","setTaxId","tinIsApproved","setTinIsApproved","setTaxIdError","taxIdApiError","resetModal","continueClick","pathName","navigateToNewApplication","doingBusinessAsName","groupSpecialty","tpi","medicareNumber","providerCount","hoursOfOperation","practiceLimitations","Dashboard","isNotsubmittedCollapsed","setIsNotsubmittedCollapsed","isSubmittedCollapsed","setIsSubmittedCollapsed","isClosedCollapsed","setIsClosedCollapsed","setShowTinModal","submittedApplications","setSubmittedApplications","closedApplications","setClosedApplications","notSubmittedApplications","setNotSubmittedApplications","closedApps","notSubmittedApps","submittedApps","linkArray","toggleNotSubmittedGrouping","toggleSubmittedGrouping","toggleClosedGrouping","index","displayApplication","_linkArray","NavigationFooter","onNextPageClick","submitIsDisplayed","onSaveClick","onBackButtonClick","BackButtonIsDisplayed","isButtonDisabled","isValidData","alert","loggingModel","navigateBack","saveData","navigateNext","scrollToTop","scrollTo","top","behavior","SubSectionHeader","CustomAlert","visible","setVisible","Alert","onDismiss","AddressForm","_stateList$find","address","setAddress","showNpiAndMedicare","validateNpiChange","childKey","stateInputRef","countyInputRef","stateName","countyOptions","countyRequiredError","setCountyRequiredError","stateListTypeahead","setStateListTypeahead","countyListTypeahead","setCountyListTypeahead","onStateListTypeaheadChange","selectedState","_selectedState$","newError","onCountyListTypeaheadChange","selectedCounty","substring","validateCityName","Typeahead","labelKey","selected","onStateListBlur","current","s","toLowerCase","clear","ref","onCountyListBlur","findIndex","zip","PracticeLocationInfo","navigation","setNavigation","showAlert","setShowAlert","npiField","setNpiField","stateListSelections","code","practiceLocations","primaryLocation","setPrimaryLocation","l","primaryLocationErrors","setPrimaryLocationErrors","billingLocation","setBillingLocation","billingLocationErrors","setBillingLocationErrors","mailingLocation","setMailingLocation","mailingLocationErrors","setMailingLocationErrors","billingSameAsPrimaryAddress","setBillingAddressSameAsPrimary","mailingSameAsPrimaryAddress","setMailingAddressSameAsPrimary","billingChecked","setBillingChecked","mailingChecked","setMailingChecked","countyMap","getState","apiErrors","modalFormIsValid","setModalFormIsValid","viewAdditionalLocationModal","setViewAdditionalLocationModal","additionalLocationForGrid","setAdditionalLocationForGrid","additionalLocationErrors","setAdditionalLocationErrors","validateAddress","editingAdditionalAddress","setEditingAdditionalAddress","rowIdBeingEdited","setRowIdBeingEdited","toggleViewAdditionalLocationModal","toggleViewAdditionalLocationAndReinitializeModal","editingExistingAddress","reinitializeModal","onNpiChange","npiValue","generateRequiredFields","fields","addressObject","validateNpiAndMedicaid","additionalPracticeLocations","rowsToDisplay","loc","cityStateZip","addressGridDisplay","streetAddress1_Grid","streetAddress2_Grid","city_Grid","county_Grid","state_Grid","zip_Grid","phone_Grid","fax_Grid","npi_Grid","medicaidNumber_Grid","entireAddress_Grid","checkBillingSameAsPrimaryAddress","billing","Fax","checkMailingSameAsPrimaryAddress","mailing","addressList","assignAddresses","assignAdditionalAddresses","providers","providerLocations","sort","provider","_provider$additionalL","some","updatedAdditionalLocations","additionalLocations","apiCallSuccess","addresses","primaryAddress","uuid","billingAddress","mailingAddress","minWidth","editable","sortable","cellClassName","renderCell","hide","width","disableClickEventBubbling","trapFocus","cancelModal","addLocationToGrid","_stateListSelections$","updatedRows","currentGridRow","Math","apply","targetIndex","locationName_Grid","style","height","columnBuffer","onCellClick","stopPropagation","selectOrRemoveLocation","row","obj","additionalLocToEdit","onNextButtonClick","PracticeContactInfo","_application$practice","setChecked","contacts","practiceContacts","primaryContact","c","contactType","credentialingContact","pc","setPC","websiteAddress","cc","setCC","pcName","pcEmail","pcPhone","pcFax","pcWebsiteAddress","ccName","ccEmail","ccPhone","ccFax","inputPCchangeHandler","inputCCchangeHandler","credentialing","onMatchPrimaryClick","check","FileUpload","fileInputRef","fileUploaded","setErr","blobKey","downloading","setDownloading","apiError","FileSaver","xs","innerRef","selectedFile","files","validateFileUpload","validFileTypes","maxFileSize","fileExtention","split","pop","fileSizeInMb","toFixed","indexOf","parseFloat","f","p","formData","FormData","append","accept","hidden","click","ProviderSpecialtyBoardCertification","suffix","ProviderInformation","_provider$providerPri","_provider$providerSec2","_provider$primarySupe","_provider$malpractice","_provider$malpractice2","_provider$nonCaqhAtta2","_provider$nonCaqhAtta3","_provider$nonCaqhAtta4","_provider$nonCaqhAtta5","_provider$primarySupe2","_provider$primarySupe3","_provider$primarySupe4","_provider$primarySupe5","_provider$malpractice8","_provider$malpractice9","_provider$malpractice10","_provider$malpractice11","_provider$malpractice12","_provider$malpractice13","_provider$malpractice14","_provider$malpractice15","_provider$malpractice16","_provider$malpractice17","_provider$malpractice18","formIsValid","setFormIsValid","modalHideCancel","titleOrDegreeList","titleOrDegreeOptions","providerLanguages","providerFacilityAffiliations","buttonAction","setButtonAction","locations","setLocations","requiresPriv","setRequiresPriv","specialties","specialtiesListOptions","taxonomies","taxonomiesListOptions","malpracticeInsuranceTypes","malpracticeInsuranceTypesOptions","malpracticeInsuranceCarriers","malpracticeInsuranceCarriersOptions","malpracticeInsuranceAmounts","amountsOptions","providersList","setProvidersList","providerRemovedFromGrid","setProviderRemovedFromGrid","isGridLoaded","setIsGridLoaded","newProviderObj","middleInitial","ssn","medicaidId","medicareId","licenseNumber","licenseNumberEffectiveDate","licenseNumberExpirationDate","deaNumber","deaNumberEffectiveDate","deaNumberExpirationDate","titleOrDegree","languages","birthDate","gender","isPcp","providerPrimarySpecialty","primaryTaxonomy","providerSecondarySpecialty","secondaryTaxonomy","boardCertification","currentRadiologyCertificate","currentStateLicense","isHospitalBased","caqhProviderId","facilityAffiliations","hasAdmittingPrivileges","primarySpecialtyBoardCertificate","secondarySpecialtyBoardCertificate","nonCaqhAttachments","irsW9","deaRegistration","curriculumVitae","credentialingApplication","primarySupervisingPhysician","midlevelProtocolsAvailableOnRequest","specialty","isPhysicianContracted","malpracticeInsurance","carrier","otherCarrier","malpracticeEffectiveDate","malpracticeExpirationDate","amounts","malpracticePolicy","setProvider","primaryTaxonomyValue","setPrimaryTaxonomyValue","secondaryTaxonomyValue","setSecondaryTaxonomyValue","initialErrorObj","duplicateProvider","degree","physicianName","physicianNpi","requiredErrors","setRequiredErrors","setLanguages","setAdditionalLocations","affiliations","setAffiliations","selectedAffiliations","setSelectedAffiliations","isTitleOrDegreeActive","setIsTitleOrDegreeActive","isRequiredDEADates","setIsRequiredDEADates","showRequiredFieldErrorInitially","setShowRequiredFieldErrorInitially","lastAttachment","documentApiError","documentIsFetching","arr","primaryLoc","alternateLocs","locs","validProvider","isValidProvider","lang","join","_addresses","_provider$additionalL2","k","addLoc","vals","from","option","setCurrentProvider","modalApplicationSubmitted","updateRequiredErrors","testValue","titleOrDegreeInputRef","TitleDegreeTypeahead","setTitleDegreeTypeahead","onTitleDegreeChange","_selected$","_selected$2","_selected$3","supervisorInfoRequired","languageInputRef","LanguageTypeahead","setLanguageTypeahead","onLanguageTypeaheadChange","selectedLanguages","providerPrimarySpecialtyInputRef","ProviderPrimarySpecialtyTypeahead","setProviderPrimarySpecialtyTypeahead","onProviderPrimarySpecialtyChange","_selected$4","_provider$providerSec","selectedSpecialtyName","primarySpecialty","requiresPrivs","providerSecondarySpecialtyInputRef","ProviderSecondarySpecialtyTypeahead","setProviderSecondarySpecialtyTypeahead","onProviderSecondarySpecialtyChange","_selected$5","_provider$providerPri2","secondarySpecialty","physicianSpecialtyInputRef","PhysicianSpecialtyTypeahead","setPhysicianSpecialtyTypeahead","onPhysicianSpecialtyChange","_selected$6","_selected$7","carrierInputRef","CarrierTypeahead","setCarrierTypeahead","onCarrierChange","_selected$8","_provider$malpractice3","insuranceCarrier","facilityAffiliationsInputRef","FacilityAffiliationsTypeahead","setFacilityAffiliationsTypeahead","onFacilityAffiliationsTypeaheadChange","primaryTaxonomyInputRef","primaryTaxonomyTypeahead","setPrimaryTaxonomyTypeahead","onPrimaryTaxonomyChange","_selected$9","_provider$secondaryTa","taxonomy","t","taxonomyValue","secondaryTaxonomyInputRef","secondaryTaxonomyTypeahead","setSecondaryTaxonomyTypeahead","onSecondaryTaxonomyChange","_selected$10","_provider$primaryTaxo","secondTaxonomy","secondTaxonomyValue","onTypeaheadBlur","typeaheadInputRef","typeaheadOptions","typeaheadName","isMultiple","typeaheadInput","newItem","setItems","selectedItems","_addLoc","_addLoc2","validateDuplicateProvider","validMedicareRegex","validLicenseRegex","filteredArray","insuranceType","_p$primaryTaxonomy","_p$secondaryTaxonomy","_p$providerPrimarySpe","_p$providerSecondaryS","_p$primarySupervising","_p$malpracticeInsuran","_p$malpracticeInsuran2","_p$malpracticeInsuran3","_p$malpracticeInsuran4","language","fa","saveEffectiveDate","_provider$malpractice4","_provider$malpractice5","saveExpirationDate","_provider$malpractice6","_provider$malpractice7","_p$nonCaqhAttachments","_p$hospitalAffiliatio","deaNumberDatesRequired","isValidExpirationDates","checkObject","hospitalAffiliations","_p$malpracticeInsuran5","_p$malpracticeInsuran6","license","malPractice","optionalFields","allFieldsAvailable","property","emptyObject","getUpdatedApplication","initialList","currentRow","modalSubmitApplication","modalRemoveProvider","updated","selectOrRemoveProvider","_p$birthDate","_p$licenseNumberEffec","_p$licenseNumberExpir","_p$deaNumberEffective","_p$deaNumberExpiratio","_p$malpracticeInsuran7","_p$malpracticeInsuran8","_p$malpracticeInsuran9","_p$malpracticeInsuran10","requiredErrorString","display","justifyContent","alignItems","suf","multiple","toISOString","today","saveBirthDate","class","physicianSpecialty","onSaveNewProviderClick","invalidProvider","invalidProviders","_provider$nonCaqhAtta","providerRequiredFields","deaDatesRequiredFields","splice","HoursOfOperation","_value$day","_value$startTime","_value$endTime","updateHours","addHours","removeHours","dayOfWeek","setDayOfWeek","setStartTime","setEndTime","daysOfTheWeekOptions","PracticeLimitationsTypes","NA","AcceptsPatientsThrough19","AcceptsPatientsThrough20","AcceptsFemalePatientsOnly","AcceptsMalePatientsOnly","CulturalCompetencyTrainingCompleted","NotAcceptingNewPatients","OffersTelemedicineServices","OffersTelemonitoring","PatientsYounger","AcceptsPatientsYounger","PatientsOlder","AcceptsPatientsOlder","YoungerChildren","AcceptsYoungerChildren","NoChildrenUnderTheAge","AcceptsNoChildrenUnderTheAge","PracticeLimitations","updatePracticeLimitations","currentPracticeLimitations","setError","limitationsPatientsOlder","setLimitationsPatientsOlder","limitationsPatientsOlderOption","setLimitationsPatientsOlderOption","limitationsPatientsYounger","setLimitationsPatientsYounger","limitationsPatientsYoungerOption","setLimitationsPatientsYoungerOption","limitationsYoungerChildren","setLimitationsYoungerChildren","limitationsYoungerChildrenOption","setLimitationsYoungerChildrenOption","limitationsNoChildrenUnderTheAge","setLimitationsNoChildrenUnderTheAge","limitationsNoChildrenUnderTheAgeOption","setLimitationsNoChildrenUnderTheAgeOption","limitationsNA","setLimitationsNA","limitationsAcceptsPatientsThrough19","setLimitationsAcceptsPatientsThrough19","limitationsAcceptsPatientsThrough20","setLimitationsAcceptsPatientsThrough20","limitationsAcceptsFemalePatientsOnly","setLimitationsAcceptsFemalePatientsOnly","limitationsAcceptsMalePatientsOnly","setLimitationsAcceptsMalePatientsOnly","limitationsCulturalCompetencyTrainingCompleted","setLimitationsCulturalCompetencyTrainingCompleted","limitationsNotAcceptingNewPatients","setLimitationsNotAcceptingNewPatients","limitationsOffersTelemedicineServices","setLimitationsOffersTelemedicineServices","limitationsOffersTelemonitoring","setLimitationsOffersTelemonitoring","practiceLimitationsOptions","patientsOlder","limitations","patientsOlderOptions","patientsYounger","patientsYoungerOptions","youngerChildren","youngerChildrenOptions","noChildrenUnderTheAge","noChildrenUnderTheAgeOptions","checkRadioBox","setDropDownValue","onAgeChange","handleRadioChange","setRadiosToFalse","PracticeInformation","_currentPractice$grou","_currentPractice$hour","groupSpecialtyInputRef","pageLoad","setPageLoad","MedicaidNumber","MedicareNumber","TaxId","GroupNpi","NumOfProviders","currentPractice","LegalName","setLegalName","DoingBusinessAsName","setDoingBusinessAs","setGroupNpi","GroupSpecialty","setGroupSpecialty","GroupSpecialtyTypeahead","setGroupSpecialtyTypeahead","onGroupSpecialtyChange","selectedSpecialty","_selectedSpecialty$","setMedicaidNumber","setMedicareNumber","setNumOfProviders","defaultHoursChecked","setDefaultHoursChecked","setHoursOfOperation","addHoursOfOperation","hours","hasHoursOfOperationBeenInput","Limitations","setPracticeLimitations","daysOfTheWeek","pageLoadCount","contractApiResultMessage","logErrorWrite","onGroupSpecialtyBlur","numberToCheck","validateNumberBetween","onNumOfProvidersChange","defaultHoursOfOperation","h","x","xIndex","removeHoursOfOperation","onHoursOfOperationChange","validateHoursOfOperation","library","add","faCheckCircle","faTimesCircle","faInfoCircle","App","Route","exact","component","_App","baseUrl","getElementsByTagName","getAttribute","rootElement","getElementById","store","preloadedState","sagaMiddleware","createSagaMiddleware","middlewares","createStore","composeWithDevTools","applyMiddleware","run","rootSaga","configureStore","ReactDOM","BrowserRouter","basename","Provider","CookiesProvider"],"mappings":"+GAAAA,EAAOC,QAAU,IAA0B,2E,oBCA3CD,EAAOC,QAAU,IAA0B,yC,kBCA3CD,EAAOC,QAAU,sqD,oBCAjBD,EAAOC,QAAU,IAA0B,8C,gMCApC,MAuFMC,EAAS,SCvFTC,EAAwBC,IAC1B,CAACC,OAAO,YAGNC,EAAeF,IACjB,CAAEG,SAAU,CAAC,WAAY,cCIpC,SAAUJ,EAAqBK,GAC3B,IACI,MAAMC,QAAiBC,YAAQC,GAAUA,EAAMC,KAAKH,UAC9CI,QAA0BC,YAAKC,EAAoCN,SACnEO,YAAI,CAAEC,KFZoC,2CEYkBJ,sBACpE,MAAOK,SACCF,YAAI,CAAEC,KFboC,2CEakBE,QAASD,EAAEC,WAIrF,SAAUb,EAAYE,GAClB,IACI,MAAMC,QAAiBC,YAAQC,GAAUA,EAAMC,KAAKH,UAE9CW,SADiBN,YAAKC,EAA2BN,IACzBF,SAASc,aACjCL,YAAI,CAAEC,KFnB0B,iCEmBkBG,iBAC1D,MAAOF,SACCF,YAAI,CAAEC,KFpB0B,iCEoBkBE,QAASD,EAAEC,WAI5DG,MA1Bf,kBACUC,YFLsC,mCEKapB,SACnDoB,YFF4B,yBEEajB,ICN5C,MAAMkB,EAAYC,UACrB,MACMC,QAAiBC,MADF,kBACsB,CACvCC,OAAQ,MACRC,QAAS,CACL,eAAgB,mBAChB,OAAU,sBAIlB,aADkBH,EAASI,QAKlBC,EAAoBN,UAC7B,MACMC,QAAiBC,MADF,mCACsB,CACvCC,OAAQ,MACRC,QAAS,CACL,eAAgB,mBAChB,OAAU,sBAIlB,aADsBH,EAASI,QClBtBE,EAASP,MAAOQ,EAAKC,EAAOC,EAAWC,EAAUC,EAAOC,EAAUC,EAAcC,KACzF,MACMC,QADeC,IACS,yBAC9B,aAAaf,MAAMc,EAAc,CAC7Bb,OAAQ,MACRC,QAAS,CACL,eAAgB,oBAEpBc,KAAMC,KAAKC,UAAU,CACjBZ,IAAKA,EACLC,MAAOA,EACPC,UAAWA,EACXC,SAAUA,EACVC,MAAOA,EACPC,SAAUA,EACVC,aAAcA,EACdC,YAAaA,MAElBM,KAAKpB,GACAA,GAAYA,EAASrB,QAAUqB,EAASrB,QAAU,KAAOqB,EAASrB,OAAS,IACpE0C,QAAQC,QAAQtB,EAASI,QAE5BJ,GAAgC,MAApBA,EAASrB,OACdqB,EAASuB,OAAOH,KAAKC,QAAQG,OAAOC,KAAKJ,UAE7CA,QAAQG,OAAOxB,IAE3B0B,MAAMC,GACEN,QAAQG,OAAOG,KAIjBC,EAAS7B,MAAO8B,EAAUjB,KACnC,MACMG,QADeC,IACS,yBAC9B,aAAaf,MAAMc,EAAc,CAC7Bb,OAAQ,OACR4B,eAAgB,SAChB3B,QAAS,CACL,eAAgB,oBAEpBc,KAAMC,KAAKC,UAAU,CACjBU,SAAUA,EACVjB,SAAUA,MAEfQ,KAAKpB,GACAA,GAAYA,EAASrB,QAAUqB,EAASrB,QAAU,KAAOqB,EAASrB,OAAS,IACpE0C,QAAQC,QAAQtB,EAASI,QAEzBiB,QAAQC,QAAQtB,EAASuB,SAErCG,MAAMC,GACEN,QAAQG,OAAOG,KAIjBI,EAAiBhC,UAC1B,MACMgB,QADeC,IACS,0BAA0BL,EACxD,aAAaV,MAAMc,EAAc,CAC7Bb,OAAQ,QACTkB,KAAKpB,GACAA,GAAYA,EAASrB,QAA8B,MAApBqB,EAASrB,OACjC0C,QAAQC,QAAQtB,EAASI,QAEzBiB,QAAQC,QAAQ,OAE5BI,MAAMC,IACLK,QAAQC,IAAIN,GACLN,QAAQG,OAAOG,MAIjBO,EAAWnC,MAAOS,EAAOzB,KAClC,MACMoD,QADenB,IA5EF,yBA6EmBR,EAChC4B,EAAgB,OAARrD,QAAQ,IAARA,OAAQ,EAARA,EAAUsD,aAExB,aAAapC,MAAMkC,EAAK,CACpBjC,OAAQ,MACRC,QAAS,CACL,cAAiB,UAAYiC,KAElChB,KAAKpB,GACAA,GAAYA,EAASrB,QAA8B,MAApBqB,EAASrB,OACjC0C,QAAQC,QAAQtB,EAASsC,YAE3BtC,GAAYA,EAASrB,QAA8B,MAApBqB,EAASrB,OACtC0C,QAAQC,QAAQ,IAGhBD,QAAQG,OAAO,0BAE3BE,MAAMC,IACLK,QAAQC,IAAIN,GACLN,QAAQG,OAAOG,MAIjBY,EAASxC,UAClB,MACMoC,QADenB,IAvGJ,uBAwGmBT,EACpC,aAAaN,MAAMkC,EAAK,CACpBjC,OAAQ,QACTkB,KAAKpB,GACAA,GAAYA,EAASrB,QAA8B,MAApBqB,EAASrB,OACjC0C,QAAQC,QAAQtB,EAASI,QAEzBiB,QAAQC,QAAQ,OAE5BI,MAAMC,IACLK,QAAQC,IAAIN,GACLN,QAAQG,OAAOG,MAIjBa,EAASzC,UACX,EAGE0C,EAAiB1C,UAC1B,MACMgB,QADeC,IACS,iCAC9B,aAAaf,MAAMc,EAAc,CAC7Bb,OAAQ,OACRC,QAAS,CACL,eAAgB,oBAEpBc,KAAMC,KAAKC,UAAU,CACjBR,MAAOA,MAEZS,KAAKpB,GACAA,GAAYA,EAASrB,QAAUqB,EAASrB,QAAU,KAAOqB,EAASrB,OAAS,IACpE0C,QAAQC,QAAQtB,EAASI,QAE5BJ,GAAgC,MAApBA,EAASrB,OACdqB,EAASuB,OAAOH,KAAKC,QAAQG,OAAOC,KAAKJ,UAE7CA,QAAQG,OAAOxB,IAE3B0B,MAAMC,GACEN,QAAQG,OAAOG,KAIjBe,EAAgB3C,MAAOa,EAAUD,EAAOyB,KACjD,MACMrB,QADeC,IACS,gCAC9B,aAAaf,MAAMc,EAAc,CAC7Bb,OAAQ,OACRC,QAAS,CACL,eAAgB,oBAEpBc,KAAMC,KAAKC,UAAU,CACjBP,SAAUA,EACVD,MAAOA,EACPyB,MAAOA,MAEZhB,KAAKpB,GACAA,GAAYA,EAASrB,QAAUqB,EAASrB,QAAU,KAAOqB,EAASrB,OAAS,IACpE0C,QAAQC,QAAQtB,EAASI,QAE5BJ,GAAgC,MAApBA,EAASrB,OACdqB,EAASuB,OAAOH,KAAKC,QAAQG,OAAOC,KAAKJ,UAE7CA,QAAQG,OAAOxB,IAE3B0B,MAAMC,GACEN,QAAQG,OAAOG,KAIjBgB,EAAe5C,MAAOY,EAAOyB,KACtC,MACMrB,QADeC,IACS,+BAC9B,aAAaf,MAAMc,EAAc,CAC7Bb,OAAQ,OACRC,QAAS,CACL,eAAgB,oBAEpBc,KAAMC,KAAKC,UAAU,CACjBR,MAAOA,EACPyB,MAAOA,MAEZhB,KAAKpB,GACAA,GAAYA,EAASrB,QAAUqB,EAASrB,QAAU,KAAOqB,EAASrB,OAAS,IACpE0C,QAAQC,QAAQtB,EAASI,QAE5BJ,GAAgC,MAApBA,EAASrB,OACdqB,EAASuB,OAAOH,KAAKC,QAAQG,OAAOC,KAAKJ,UAE7CA,QAAQG,OAAOxB,EAASuB,SAEpCG,MAAMC,GACEN,QAAQG,OAAOG,KAIjBiB,EAAc7C,UACvB,MACMgB,QADeC,IACS,0CAC9B,aAAaf,MAAMc,EAAc,CAC7Bb,OAAQ,OACRC,QAAS,CACL,eAAgB,oBAEpBc,KAAMC,KAAKC,UAAU,CACjBR,MAAOA,MAEZS,KAAKpB,GACAA,GAAYA,EAASrB,QAAUqB,EAASrB,QAAU,KAAOqB,EAASrB,OAAS,IACpE0C,QAAQC,QAAQtB,EAASI,QAE5BJ,GAAgC,MAApBA,EAASrB,OACdqB,EAASuB,OAAOH,KAAKC,QAAQG,OAAOC,KAAKJ,UAE7CA,QAAQG,OAAOxB,EAASuB,SAEpCG,MAAMC,GACEN,QAAQG,OAAOG,KC5M9B,SAAUkB,EAAY/D,GAClB,IACI,MAAMC,QAAiBK,YAAK0D,EAA4BhE,EAAO+C,SAAU/C,EAAO8B,UACxD,kBAAb7B,QACDO,YAAI,CAAEC,KLJoB,+BKIsBR,mBAGhDO,YAAI,CAAEC,KLNoB,+BKMsBwD,MAAOhE,IAGnE,MAAOS,SACCF,YAAI,CAAEC,KLVwB,+BKUkBwD,MAAOvD,KAIrE,SAAUwD,EAAelE,GACrB,IACI,MAAMmE,QAAe7D,YAAK0D,EAA4BhE,EAAOyB,IAAKzB,EAAO0B,MAAO1B,EAAO2B,UAAW3B,EAAO4B,SAAU5B,EAAO6B,MAAO7B,EAAO8B,SAAU9B,EAAO+B,aAAc/B,EAAOgC,mBACxKxB,YAAI,CAAEC,KLzB2B,kCKyBkB2D,eAAgBD,IAC3E,MAAOzD,SACCF,YAAI,CAAEC,KL1B2B,kCK0BkBwD,MAAOvD,KAIxE,SAAU2D,UACA7D,YAAI,CAAEC,KL5ByC,8CK+BzD,SAAUwC,EAAejD,GACrB,IACI,MAAMC,QAAiBK,YAAK0D,EAAoChE,EAAO6B,aACjErB,YAAI,CAAEC,KL3B4B,mCK2BkB6D,aAAYrE,IACxE,MAAOS,SACCF,YAAI,CAAEC,KL5B4B,mCK4BkBwD,MAAOvD,KAIzE,SAAU0C,EAASpD,GACf,IACI,MAAMC,QAAiBC,YAAQC,IAAK,IAAAoE,EAAA,OAAe,QAAfA,EAAKpE,EAAMC,YAAI,IAAAmE,OAAA,EAAVA,EAAYtE,WAC/CyB,QAAcpB,YAAK0D,EAA8BhE,EAAO0B,MAAOzB,SAC/DO,YAAI,CAAEC,KLjCqB,4BKiCkB+D,WAAY9C,EAAQ,oEAAsE,KAC/I,MAAOhB,SACCF,YAAI,CAAEC,KLlCqB,4BKkCkBwD,MAAOvD,KAIlE,SAAU+C,EAAOzD,GACb,IACI,MAAMyB,QAAYnB,YAAK0D,EAA4BhE,EAAOyB,WACpDjB,YAAI,CAAEC,KLrCkB,yBKqCkBgE,WAAYhD,EAAM,GAAK,2DACzE,MAAOf,SACCF,YAAI,CAAEC,KLtCkB,yBKsCkBwD,MAAOvD,KAI/D,SAAUoD,EAAY9D,GAClB,UACUM,YAAK0D,EAAiChE,EAAO6B,aAC7CrB,YAAI,CAAEC,KL1CuB,gCK2CrC,MAAOC,SACCF,YAAI,CAAEC,KL3CuB,8BK2CkBwD,MAAOvD,KAIpE,SAAUgD,EAAOgB,GACb,IACI,MAAMC,QAAgBrE,YAAK0D,SACrBxD,YAAI,CAAEC,KLAU,iBKAkBkE,QAASA,IACnD,MAAOjE,SACCF,YAAI,CAAEC,KLDU,iBKCkBE,QAASD,EAAEC,WAI3D,SAAUgD,EAAe3D,GACrB,IACI,MAAMI,QAAaE,YAAK0D,EAAoChE,EAAO6B,aAC7DrB,YAAI,CAAEC,KLKmB,0BKLkBmE,oBAAmBxE,IACtE,MAAOM,SACCF,YAAI,CAAEC,KLImB,0BKJkBwD,MAAOvD,KAIhE,SAAUkD,EAAc5D,GACpB,IACI,MAAM6E,QAAqBvE,YAAK0D,EAAmChE,EAAO8B,SAAU9B,EAAO6B,MAAO7B,EAAOsD,aACnG9C,YAAI,CAAEC,KLAkB,yBKAkBoE,aAAcA,IAChE,MAAOnE,SACCF,YAAI,CAAEC,KLDkB,yBKCkBwD,MAAOvD,KAI/D,SAAUmD,EAAa7D,GAEnB,IACI,MAAMmE,QAAe7D,YAAK0D,EAAkChE,EAAO6B,MAAO7B,EAAOsD,aAC3E9C,YAAI,CAAEC,KLNiB,wBKMkBqE,cAAeX,IAChE,MAAOzD,SACCF,YAAI,CAAEC,KLPiB,wBKOkBwD,MAAOvD,KAI9D,SAAUa,EAAkBvB,GACxB,IACI,MAAMmE,QAAe7D,YAAKyE,SACpBvE,YAAI,CAAEC,KLXwB,+BKWkBuE,gBAAiBb,IACzE,MAAOzD,SACCF,YAAI,CAAEC,KLZwB,+BKYkBwD,MAAOvD,KAGtDuE,MA7Hf,kBACUlE,YLMmC,gCKNamD,SAChDnD,YLS8C,2CKTasD,SAC3DtD,YLeoC,iCKfakC,SACjDlC,YLkB6B,0BKlBaqC,SAC1CrC,YLsB0B,uBKtBa0C,SACvC1C,YLyB+B,4BKzBa+C,SAC5C/C,YLOgC,6BKPagD,SAC7ChD,YAAWmE,EAAcxB,SACzB3C,YLuF2B,wBKvFa4C,SACxC5C,YL0F0B,uBK1Fa6C,SACvC7C,YL6FyB,sBK7Fa8C,SACtC9C,YLgGgC,6BKhGaQ,IChBvD,MAGa4D,EAAkBlE,UAC3B,MAAM8B,EAAW9C,EAASmF,SACpB9B,EAAQrD,EAASsD,aAEjBF,QADenB,IANgB,2BAOmBa,EACxD,aAAa5B,MAAMkC,EAAK,CACpBjC,OAAQ,MACRC,QAAS,CACL,cAAiB,UAAYiC,KAElChB,KAAKpB,GACAA,GAAYA,EAASrB,QAA8B,MAApBqB,EAASrB,OACjC0C,QAAQC,QAAQtB,EAASI,QAEzBiB,QAAQC,QAAQ,OAE5BI,MAAMC,GACEN,QAAQG,OAAOG,KAIjBwC,EAAwBpE,MAAOqE,EAAOrF,KAC/C,MAAMqD,EAAQrD,EAASsD,aAEjBF,QADenB,IACTqD,sCAA4DD,EACxE,aAAanE,MAAMkC,EAAK,CACpBjC,OAAQ,MACRC,QAAS,CACL,cAAiB,UAAYiC,KAElChB,KAAKpB,GACAA,GAAYA,EAASrB,QAA8B,MAApBqB,EAASrB,OACjC0C,QAAQC,QAAQtB,EAASI,QAEzBiB,QAAQC,QAAQ,OAE5BI,MAAMC,GACEN,QAAQG,OAAOG,KAIjB2C,EAAoBvE,MAAOwE,EAAaxF,KACjD,MACMoD,QADenB,IA7CgB,2BA+C/BoB,EAAQrD,EAASsD,aACvB,aAAapC,MAAMkC,EAAK,CACpBjC,OAAQ,OACRC,QAAS,CACL,eAAgB,mBAChB,cAAiB,UAAYiC,GAEjCnB,KAAMC,KAAKC,UAAUoD,KACtBnD,KAAKpB,IACJ,GAAIA,GAAYA,EAASrB,QAA8B,MAApBqB,EAASrB,OACxC,OAAO0C,QAAQC,QAAQtB,EAASI,QAEhC,GAAIJ,GAAgC,MAApBA,EAASrB,OAAgB,CACrC,IAAIsE,EAASjD,EAASI,OACtB,OAAOiB,QAAQG,OAAOyB,GAE1B,OAAO5B,QAAQG,OAAOxB,KAE3B0B,MAAMC,GACEN,QAAQG,OAAOG,KAIjB6C,EAAoBzE,MAAOwE,EAAaE,EAAQ1F,KACzD,MACMoD,QADenB,IACTqD,mCAAyDI,EAC/DrC,EAAQrD,EAASsD,aACvB,aAAapC,MAAMkC,EAAK,CACpBjC,OAAQ,MACRC,QAAS,CACL,eAAgB,mBAChB,cAAiB,UAAYiC,GAEjCnB,KAAMC,KAAKC,UAAUoD,KACtBnD,KAAKpB,IACJ,GAAIA,GAAYA,EAASrB,QAA8B,MAApBqB,EAASrB,OACxC,OAAO0C,QAAQC,QAAQtB,EAASI,QAEhC,GAAIJ,GAAgC,MAApBA,EAASrB,OAAgB,CACrC,IAAIsE,EAASjD,EAASI,OACtB,OAAOiB,QAAQG,OAAOyB,GAE1B,OAAO5B,QAAQG,OAAOxB,KAE3B0B,MAAMC,GACEN,QAAQG,OAAOG,KAIjB+C,EAAoB3E,MAAO4E,EAAI5F,KACxC,MACMoD,QADenB,IACTqD,+BAAqDM,EAC3DvC,EAAQrD,EAASsD,aACvB,aAAapC,MAAMkC,EAAK,CACpBjC,OAAQ,SACRC,QAAS,CACL,eAAgB,mBAChB,cAAiB,UAAYiC,KAElChB,KAAKpB,GACAA,GAAYA,EAASrB,QAA8B,MAApBqB,EAASrB,OACjC0C,QAAQC,QAAQtB,EAASI,QAEzBiB,QAAQC,QAAQ,OAE5BI,MAAMC,GACEN,QAAQG,OAAOG,KAIjBiD,EAAmB7E,MAAO8E,EAAU9F,KAC7C,MACMoD,QADenB,IArHM,kBAsHmB6D,EACxCzC,EAAQrD,EAASsD,aACvB,aAAapC,MAAMkC,EAAK,CACpBjC,OAAQ,MACRC,QAAS,CACL,cAAiB,UAAYiC,KAElChB,KAAKpB,GACAA,GAAYA,EAASrB,QAA8B,MAApBqB,EAASrB,OACjC0C,QAAQC,QAAQtB,EAASI,QAEzBiB,QAAQC,QAAQ,OAE5BI,MAAMC,GACEN,QAAQG,OAAOG,KCtIjBmD,EAAW,CACpBC,UAAY,YACZC,WAAY,aACZC,aAAc,eACdC,aAAe,eACfC,UAAY,YACZC,aAAe,eACfC,sBAAwB,wBACxBC,2BAA6B,6BAC7BC,gBAAkB,kBAClBC,gBAAkB,kBAClBC,6BAA8B,+BAC9BC,gCAAiC,kCACjCC,gCAAiC,kCACjCC,gCAAkC,kCAClCC,cAAgB,gBAChBC,uBAAyB,yBACzBC,4BAA8B,8BAC9BC,sBAAuB,yBCH3B,SAAU/B,EAAgBnF,GACtB,IACI,MAAMC,QAAiBC,YAAQC,GAAUA,EAAMC,KAAKH,UAC9CwF,QAAoBnF,YAAK6G,EAAkClH,SAC3DO,YAAI,CAAEC,KRwBiC,wCQxBkBgF,gBACjE,MAAO/E,SACCF,YAAI,CAAEC,KRuBiC,wCQvBkBwD,MAAOvD,KAI9E,SAAU2E,EAAsBrF,GAC5B,IACI,MAAMC,QAAiBC,YAAQC,GAAUA,EAAMC,KAAKH,UAC9CmH,QAA2B9G,YAAK6G,EAAwCnH,EAAOsF,MAAOrF,SACtFO,YAAI,CAAEC,KRmC2B,kCQnCkB2G,uBAC3D,MAAO1G,SACCF,YAAI,CAAEC,KRkC2B,kCQlCkBwD,MAAOvD,KAIxE,SAAU8E,EAAkBxF,GACxB,IACI,MAAMC,QAAiBC,YAAQC,GAAUA,EAAMC,KAAKH,UAC9CwF,QAAoBnF,YAAK6G,EAAoCnH,EAAOyF,YAAaxF,GACnFD,EAAOqH,kCACD7G,YAAI,CAAEC,KRW+B,0CQXsBgF,sBAG3DjF,YAAI,CAAEC,KRUuC,kDQVsBgF,gBAE/E,MAAOvE,GACL,IAAIiD,QACEjD,EAASoB,KAAMgF,IACHnD,EAAVmD,EAAEC,OAAiBD,EAAEC,OACXD,UAEZ9G,YAAI,CAAEC,KRCmC,0CQDkBwD,MAAO7B,KAAKC,UAAU8B,MAI/F,SAAUuB,GAAkB1F,GACxB,IACI,MAAMC,QAAiBC,YAAQC,GAAUA,EAAMC,KAAKH,UAC9CwF,QAAoBnF,YAAK6G,EAAoCnH,EAAOyF,YAAazF,EAAO2F,OAAQ1F,SAChGO,YAAI,CAAEC,KRHmC,0CQGkBgF,gBACnE,MAAO/E,SACCF,YAAI,CAAEC,KRJmC,0CQIkBwD,MAAOvD,KAIhF,SAAUkF,GAAkB5F,GACxB,IACI,MAAMC,QAAiBC,YAAQC,GAAUA,EAAMC,KAAKH,UACpD,IAAI4F,EAAK7F,EAAO6F,UACMvF,YAAK6G,EAAoCtB,EAAI5F,YAEzDO,YAAI,CAAEC,KRX+B,0CQWsBoF,QAEvE,MAAOnF,SACCF,YAAI,CAAEC,KRbmC,0CQakBwD,MAAOvD,KAIhF,SAAUoF,GAAiB9F,GACvB,IACI,MAAMC,QAAiBC,YAAQC,GAAUA,EAAMC,KAAKH,UAE9CuH,QAAalH,YAAK6G,EAAmCnH,EAAOyH,SAAUxH,GAC5E,GAAuB,gBAAnBD,EAAOyH,SAEP,kBADMjH,YAAI,CAAEC,KRfqC,gDQesB+G,UAG3E,MAAME,EAAYC,IACS,IAAhBA,EAAKC,OAEhB,IAAIC,EAAa,IAAKL,EAAMM,MAAON,EAAKM,MAAMC,OAAOL,IAErD,OAAQF,EAAK3B,IACT,KAAKmC,EAAe/B,gBACVzF,YAAI,CAAEC,KR1BgC,2DQ0B0B+G,SACtE,MACJ,KAAKQ,EAAe9B,iBACV1F,YAAI,CAAEC,KR5BiC,gDQ4B0B+G,SACvE,MACJ,KAAKQ,EAAe5B,mBACV5F,YAAI,CAAEC,KR9BmC,kDQ8B0B+G,KAAMK,IAC/E,MACJ,KAAKG,EAAe3B,gBACV7F,YAAI,CAAEC,KRhCgC,+CQgC0B+G,KAAMK,IAC5E,MACJ,KAAKG,EAAe1B,mBACV9F,YAAI,CAAEC,KRlCmC,kDQkC0B+G,KAAMK,IAC/E,MACJ,KAAKG,EAAezB,4BACV/F,YAAI,CAAEC,KRpC4C,2DQoC0B+G,KAAMK,IACxF,MACJ,KAAKG,EAAexB,iCACVhG,YAAI,CAAEC,KRtCiD,gEQsC0B+G,KAAMK,IAC7F,MACJ,KAAKG,EAAevB,sBACVjG,YAAI,CAAEC,KRxCsC,qDQwC0B+G,KAAMK,IAClF,MACJ,KAAKG,EAAetB,sBACVlG,YAAI,CAAEC,KR1CsC,qDQ0C0B+G,KAAMK,IAClF,MACJ,KAAKG,EAAerB,mCACVnG,YAAI,CAAEC,KR5CmD,kEQ4C0B+G,KAAMK,IAC/F,MACJ,KAAKG,EAAepB,sCACVpG,YAAI,CAAEC,KR9CsD,qEQ8C0B+G,KAAMK,IAClG,MACJ,KAAKG,EAAenB,sCACVrG,YAAI,CAAEC,KRhDsD,qEQgD0B+G,KAAMK,IAClG,MACJ,KAAKG,EAAelB,sCACVtG,YAAI,CAAEC,KRlDsD,qEQkD0B+G,KAAMK,IAClG,MACJ,KAAKG,EAAejB,oBACVvG,YAAI,CAAEC,KRpDoC,mDQoD0B+G,KAAMK,IAChF,MACJ,KAAKG,EAAehB,6BACVxG,YAAI,CAAEC,KRtD6C,4DQsD0B+G,KAAMK,IACzF,MACJ,KAAKG,EAAef,kCACVzG,YAAI,CAAEC,KRxDuC,sDQwD0B+G,KAAMK,KAI7F,MAAOnH,SACCF,YAAI,CAAEC,KR5DkC,yCQ4DkBwD,MAAOvD,KD3H/EuH,OAAOC,OAAOlC,GC+HCmC,OA/If,kBACUpH,YRoCyC,sCQpCaoE,SACtDpE,YR2C2C,wCQ3CayE,SACxDzE,YR+C2C,wCQ/Ca2E,UACxD3E,YRkD2C,wCQlDa6E,UACxDwC,YRyD0C,uCQzDYtC,UACtDsC,YRoDmC,gCQpDY/C,ICTzD,MAEagD,GAAcpH,MAAOqH,EAAKC,EAAUtI,KAC7C,MACMoD,QADenB,IAHC,YAImBoG,EAAM,IAAMC,EAC/CjF,EAAQrD,EAASsD,aACvB,aAAapC,MAAMkC,EAAK,CACpBjC,OAAQ,MACRC,QAAS,CACL,cAAiB,UAAYiC,KAElChB,KAAKpB,GACAA,GAAYA,EAASrB,QAAUqB,EAASrB,QAAU,KAAOqB,EAASrB,OAAS,IACpE0C,QAAQC,QAAQtB,EAASsH,QACzBtH,GAAgC,MAApBA,EAASrB,OACrBqB,EAASuB,OAAOH,KAAKC,QAAQG,OAAOC,KAAKJ,UAEzCA,QAAQG,OAAO,wCAE3BE,MAAMC,IACLK,QAAQC,IAAIN,GACLN,QAAQG,OAAOG,MAIjB4F,GAAiBxH,MAAOyH,EAAMzI,KACvC,MACMoD,QADenB,IA1BC,YA4BhBoB,EAAQrD,EAASsD,aACvB,aAAapC,MAAMkC,EAAK,CACpBjC,OAAQ,OACRe,KAAMuG,EACNrH,QAAS,CACL,cAAiB,UAAYiC,KAElChB,KAAKpB,IACJ,IAAIoG,EAAIpG,EAASuB,OACjB,OAAIvB,GAAYA,EAASrB,QAA8B,MAApBqB,EAASrB,OACjC0C,QAAQC,QAAQ8E,GAChBpG,GAAgC,MAApBA,EAASrB,OACrByH,EAAEhF,KAAKC,QAAQG,OAAOC,KAAKJ,UAE3BA,QAAQG,OAAO,uCAE3BE,MAAMC,GACEN,QAAQG,OAAOG,KCtC9B,SAAU4F,GAAezI,GACrB,IACI,MAAMC,QAAiBC,YAAQC,GAAUA,EAAMC,KAAKH,UAC9CkE,QAAe7D,YAAKqI,GAA6B3I,EAAO0I,KAAMzI,SAC9DO,YAAI,CAAEC,KViFe,sBUjFkB0D,OAAQ/B,KAAKwG,MAAMzE,GAAS0E,KAAM7I,EAAO6I,OACxF,MAAOnI,SACCF,YAAI,CAAEC,KVgFe,sBUhFkBwD,MAAOvD,EAAGmI,KAAM7I,EAAO6I,QAI5E,SAAUR,GAAYrI,GAClB,IACI,MAAMC,QAAiBC,YAAQC,GAAUA,EAAMC,KAAKH,UAC9CkE,QAAe7D,YAAKqI,GAA0B3I,EAAOsI,IAAKtI,EAAOuI,SAAUtI,SAC3EO,YAAI,CAAEC,KV2EiB,wBU3EkB0D,OAAQA,IACzD,MAAOzD,SACCF,YAAI,CAAEC,KV0EiB,wBU1EkBwD,MAAOvD,KAK/CoI,OA1Bf,kBACU/H,YVwFuB,oBUxFa0H,UACpC1H,YV2FyB,sBU3FasH,KCJhD,MAEaU,GAAU9H,MAAO+H,EAAoB/I,KAC9C,MACMoD,QADenB,IACTqD,wBACNjC,EAAgB,OAARrD,QAAQ,IAARA,OAAQ,EAARA,EAAUsD,aACxB,aAAapC,MAAMkC,EAAK,CACpBjC,OAAQ,OACRC,QAAS,CACL,eAAgB,mBAChB,cAAiB,UAAYiC,GAEjCnB,KAAMC,KAAKC,UAAU2G,KACtB1G,KAAKpB,IACJ,GAAIA,GAAYA,EAASrB,QAA8B,MAApBqB,EAASrB,OACxC,OAAO0C,QAAQC,QAAQtB,EAASI,QAEhC,GAAIJ,GAAgC,MAApBA,EAASrB,OAAgB,CACrC,IAAIsE,EAASjD,EAASI,OACtB,OAAOiB,QAAQG,OAAOyB,GAE1B,OAAO5B,QAAQG,OAAOxB,KAE3B0B,MAAMC,GACEN,QAAQG,OAAOG,KAIjBoG,GAAWhI,MAAO+H,EAAoB/I,KAC/C,MACMoD,QADenB,IACTqD,yBACNjC,EAAQrD,EAASsD,aACvB,aAAapC,MAAMkC,EAAK,CACpBjC,OAAQ,OACRC,QAAS,CACL,eAAgB,mBAChB,cAAiB,UAAYiC,GAEjCnB,KAAMC,KAAKC,UAAU2G,KACtB1G,KAAKpB,IACJ,GAAIA,GAAYA,EAASrB,QAA8B,MAApBqB,EAASrB,OACxC,OAAO0C,QAAQC,QAAQtB,EAASI,QAEhC,GAAIJ,GAAgC,MAApBA,EAASrB,OAAgB,CACrC,IAAIsE,EAASjD,EAASI,OACtB,OAAOiB,QAAQG,OAAOyB,GAE1B,OAAO5B,QAAQG,OAAOxB,KAE3B0B,MAAMC,GACEN,QAAQG,OAAOG,KAIjBqG,GAAajI,MAAO+H,EAAoB/I,KACjD,MACMoD,QADenB,IACTqD,2BACNjC,EAAQrD,EAASsD,aACvB,aAAapC,MAAMkC,EAAK,CACpBjC,OAAQ,OACRC,QAAS,CACL,eAAgB,mBAChB,cAAiB,UAAYiC,GAEjCnB,KAAMC,KAAKC,UAAU2G,KACtB1G,KAAKpB,IACJ,GAAIA,GAAYA,EAASrB,QAA8B,MAApBqB,EAASrB,OACxC,OAAO0C,QAAQC,QAAQtB,EAASI,QAEhC,GAAIJ,GAAgC,MAApBA,EAASrB,OAAgB,CACrC,IAAIsE,EAASjD,EAASI,OACtB,OAAOiB,QAAQG,OAAOyB,GAE1B,OAAO5B,QAAQG,OAAOxB,KAE3B0B,MAAMC,GACEN,QAAQG,OAAOG,KAIjBsG,GAAWlI,MAAO+H,EAAoB/I,KAC/C,MACMoD,QADenB,IACTqD,yBACNjC,EAAQrD,EAASsD,aACvB,aAAapC,MAAMkC,EAAK,CACpBjC,OAAQ,OACRC,QAAS,CACL,eAAgB,mBAChB,cAAiB,UAAYiC,GAEjCnB,KAAMC,KAAKC,UAAU2G,KACtB1G,KAAKpB,IACJ,GAAIA,GAAYA,EAASrB,QAA8B,MAApBqB,EAASrB,OACxC,OAAO0C,QAAQC,QAAQtB,EAASI,QAEhC,GAAIJ,GAAgC,MAApBA,EAASrB,OAAgB,CACrC,IAAIsE,EAASjD,EAASI,OACtB,OAAOiB,QAAQG,OAAOyB,GAE1B,OAAO5B,QAAQG,OAAOxB,KAE3B0B,MAAMC,GACEN,QAAQG,OAAOG,KC7F9B,SAAUkG,GAAQ/I,GACd,UACUM,YAAK8I,GAA2BpJ,EAAOgJ,mBAAoBhJ,EAAOC,UAC1E,MAAOS,KAKb,SAAUuI,GAASjJ,GACf,UACUM,YAAK8I,GAA4BpJ,EAAOgJ,mBAAoBhJ,EAAOC,UAC3E,MAAOS,KAKb,SAAUwI,GAAWlJ,GACjB,UACUM,YAAK8I,GAA8BpJ,EAAOgJ,mBAAoBhJ,EAAOC,UAC7E,MAAOS,KAKb,SAAUyI,GAASnJ,GACf,UACUM,YAAK8I,GAA4BpJ,EAAOgJ,mBAAoBhJ,EAAOC,UAC3E,MAAOS,KAKE2I,OAvCf,kBACUtI,YZmHoB,iBYnHagI,UACjChI,YZmHqB,kBYnHakI,UAClClI,YZmHuB,oBYnHamI,UACpCnI,YZmHqB,kBYnHaoI,KCA7B,SAAUG,KACrB,IAAIC,EAAW,CACXC,YAAKC,GACLD,YAAKvE,GACLuE,YAAKrB,IACLqB,YAAKV,IACLU,YAAKH,KAGT,UACUK,YAAIH,GAEd,MAAO1G,GACHK,QAAQe,MAAMpB,ICpBf,MAAM8G,GAAwB,CACjC/I,aAAc,KACdf,OAAQ,KACR+J,YAAY,EACZ3F,MAAO,ICJJ,MAAM4F,GAAmB,CAC5B5J,SAAU,KACV2J,YAAY,EACZ3F,MAAO,GACPK,WAAY,KACZE,WAAY,GACZC,WAAY,GACZE,SAAS,EACTC,mBAAmB,EACnBC,cAAc,EACdT,gBAAgB,EAChBU,eAAe,EACfgF,iBAAiB,EACjBC,iBAAkB,KAClBC,oBAAqB,KACrBC,aAAa,ICfV,MAcMC,GAAuB,CAAC,CAAEC,IAAK,SAAUC,UAAW,GAAIC,QAAS,KAEjEC,GAAuB,CAChCC,mBAAoB,GACpBC,KAAM,GACNC,OAAQ,GACRC,IAAK,GACLC,eAAgB,GAChB9B,KAAM,GACNpH,IAAK,GACLmJ,MAAO,GACPzK,MAAO,GACP0K,YAAa,GACbC,YAAa,GACbrK,KAAM,GACNsK,QAAS,GACTC,SAAU,IC5BDC,IDoDSC,MA9CU,CAC5BC,IAAK,KACLC,UAAW,KACXC,QAAS,OAyGEH,QAIWA,MAtFiB,CACvCrC,KAAM,KACNjB,OAAQ,OAwFasD,QC1Hc,CACnCI,UAAW,KACXC,WAAY,KACZC,aAAc,KACdnF,UAAW,KACXoF,aAAc,KACdC,sBAAuB,KACvBC,2BAA4B,KAC5BC,gBAAiB,KACjBC,gBAAiB,KACjBC,6BAA8B,KAC9BC,gCAAiC,KACjCC,gCAAiC,KACjCC,gCAAiC,KACjCC,cAAe,KACfC,uBAAwB,KACxBC,4BAA6B,KAC7BC,aAAc,KACdC,wBAAyB,KACzB1C,YAAY,EACZ2C,mBAAmB,EACnBC,aAAc,IAAIC,IAClBxI,MAAO,GACPyI,6BAA6B,EAC7BtF,mBAAoB,OC1BjB,MAAMuF,GAAuB,CAChC/C,YAAY,EACZ3F,MAAO,GACPU,SAAS,EACTiI,WAAY,KACZlE,KAAM,KACNmE,gBAAiB,MCDrB,IAAIC,GAAcC,0BAAgB,CAAEC,ULErB,WAAkE,IAAxC7M,EAAK8M,UAAApM,OAAA,QAAAqM,IAAAD,UAAA,GAAAA,UAAA,GAAGtD,GAAuBjF,EAAMuI,UAAApM,OAAA,EAAAoM,UAAA,QAAAC,EAC1E,OAAQxI,EAAOjE,MACX,IdVwC,mCcWpC,MAAO,IAAKN,EAAOyJ,YAAY,GACnC,IdXgD,2CcY5C,MAAO,IAAKzJ,EAAON,OAAQ6E,EAAOrE,kBAAkBR,OAAQ+J,YAAY,GAC5E,IdZgD,2Cca5C,MAAO,IAAKzJ,EAAO8D,MAAOS,EAAOT,MAAO2F,YAAY,GAExD,Idb8B,yBcc1B,MAAO,IAAKzJ,EAAOyJ,YAAY,GACnC,IddsC,iCcelC,MAAO,IAAKzJ,EAAOS,aAAc8D,EAAO9D,aAAcgJ,YAAY,GACtE,IdfsC,iCcgBlC,MAAO,IAAKzJ,EAAO8D,MAAOS,EAAOT,MAAO2F,YAAY,GAExD,KAAK1E,EACD,OAAOyE,GAEX,QACI,MAAO,IAAKxJ,KKtBuBC,KJahC,WAAwD,IAAnCD,EAAK8M,UAAApM,OAAA,QAAAqM,IAAAD,UAAA,GAAAA,UAAA,GAAGpD,GAAkBnF,EAAMuI,UAAApM,OAAA,EAAAoM,UAAA,QAAAC,EAChE,OAAQxI,EAAOjE,MACX,IfTqC,gCeUjC,MAAO,IAAKN,EAAOyJ,YAAY,EAAM3F,MAAO,KAAMG,gBAAgB,GACtE,IfVuC,kCeWnC,MAAO,IAAKjE,EAAOiE,eAAgBM,EAAON,eAAgBwF,YAAY,EAAOG,iBAAkB,MACnG,IfXuC,kCeYnC,MAAO,IAAK5J,EAAOyJ,YAAY,EAAO3F,MAAOS,EAAOT,OAExD,IfXiD,4CeY7C,MAAO,IAAK9D,EAAOyJ,YAAY,EAAM3F,MAAO,KAAMG,gBAAgB,GAEtE,IfRsC,iCeSlC,MAAO,IAAKjE,EAAOyJ,YAAY,EAAM3F,MAAO,KAAMK,WAAY,MAClE,IfTwC,mCeUpC,MAAO,IAAKnE,EAAOmE,WAAYI,EAAOJ,WAAYsF,YAAY,GAClE,IfVwC,mCeWpC,MAAO,IAAKzJ,EAAOyJ,YAAY,EAAO3F,MAAOS,EAAOT,OAExD,IfX+B,0BeY3B,MAAO,IAAK9D,EAAOyJ,YAAY,EAAMuD,WAAY,KAAM3I,WAAY,IACvE,IfZiC,4Bea7B,MAAO,IAAKrE,EAAOqE,WAAYE,EAAOF,WAAYoF,YAAY,GAClE,IfbiC,4Bec7B,MAAO,IAAKzJ,EAAOyJ,YAAY,EAAOuD,WAAYzI,EAAOT,OAC7D,IfdgC,2Bee5B,MAAO,IAAK9D,EAAOqE,WAAY,GAAIoF,YAAY,GAEnD,Iff4B,uBegBxB,MAAO,IAAKzJ,EAAOyJ,YAAY,EAAM3F,MAAO,KAAMQ,WAAY,IAClE,IfhB8B,yBeiB1B,MAAO,IAAKtE,EAAOsE,WAAYC,EAAOD,WAAYmF,YAAY,GAClE,IfjB8B,yBekB1B,MAAO,IAAKzJ,EAAOyJ,YAAY,EAAO3F,MAAOS,EAAOT,OAExD,IflBiC,4BemB7B,MAAO,IAAK9D,EAAOyJ,YAAY,EAAMG,iBAAkB,MAC3D,IfnBmC,8BeoB/B,MAAO,IAAK5J,EAAOyJ,YAAY,GACnC,IfpBmC,8BeqB/B,MAAO,IAAKzJ,EAAOyJ,YAAY,EAAOG,iBAAkBrF,EAAOT,OACnE,IfrBiC,4BesB7B,MAAO,IAAK9D,EAAOyJ,YAAY,EAAOG,iBAAkB,MAE5D,If5CkC,6Be6C9B,MAAO,IAAK5J,EAAOyJ,YAAY,EAAM3F,MAAO,KAAMmJ,OAAO,GAC7D,If7CoC,+Be8ChC,MAAO,IAAKjN,EAAOF,SAAUyE,EAAOzE,SAAUoN,eAAe,EAAMzD,YAAY,EAAOwD,OAAO,GACjG,If9CoC,+Be+ChC,MAAO,IAAKjN,EAAOyJ,YAAY,EAAO3F,MAAOS,EAAOT,MAAOmJ,OAAO,GAEtE,KAAKlI,EACD,MAAO,IAAK/E,EAAOF,SAAU,KAAMoN,eAAe,EAAOvD,iBAAiB,GAC9E,IfgBsB,iBeflB,MAAO,IAAK3J,EAAOwE,QAASD,EAAOC,QAASiF,YAAY,GAC5D,IfesB,iBedlB,MAAO,IAAKzJ,EAAO8D,MAAOS,EAAOT,MAAO2F,YAAY,GAExD,IfwB6B,wBevBzB,MAAO,IAAKzJ,EAAOyJ,YAAY,EAAMI,oBAAqB,KAAMpF,mBAAmB,GACvF,IfuB+B,0BetB3B,MAAO,IAAKzE,EAAOyE,kBAAmBF,EAAOE,kBAAmBgF,YAAY,GAChF,IfsB+B,0BerB3B,MAAO,IAAKzJ,EAAO6J,oBAAqBtF,EAAOT,MAAO2F,YAAY,GAEtE,IfqB4B,uBepBxB,MAAO,IAAKzJ,EAAOF,SAAU,KAAM4E,cAAc,GACrD,IfoB8B,yBenB1B,MAAO,IAAK1E,EAAO0E,aAAcH,EAAOG,aAAc+E,YAAY,GACtE,IfmB8B,yBelB1B,MAAO,IAAKzJ,EAAO8D,MAAOS,EAAOT,MAAO2F,YAAY,GAExD,IfkB2B,sBejBvB,MAAO,IAAKzJ,EAAOF,SAAU,KAAM6E,eAAe,GACtD,IfiB6B,wBehBzB,MAAO,IAAK3E,EAAO2E,cAAeJ,EAAOI,cAAe8E,YAAY,GACxE,IfgB6B,wBefzB,MAAO,IAAKzJ,EAAO8D,MAAOS,EAAOT,MAAO2F,YAAY,GAExD,IfekC,6Bed9B,MAAO,IAAKzJ,EAAO6E,gBAAiB,MACxC,IfcoC,+BebhC,MAAO,IAAK7E,EAAO6E,gBAAiBN,EAAOM,gBAAiB4E,YAAY,GAC5E,IfaoC,+BeZhC,MAAO,IAAKzJ,EAAO8D,MAAOS,EAAOT,MAAO2F,YAAY,GAExD,IfYwB,mBeXpB,MAAO,IAAKzJ,EAAO2J,iBAAiB,GAExC,IfgB4B,uBefxB,MAAO,IAAK3J,EAAO8J,aAAc,IAAK9J,EAAM8J,aAAc,CAACvF,EAAO4D,KAAM5D,EAAO4I,QACnF,QACI,MAAO,IAAKnN,KIzG6BoN,wBFwBtC,WAAkF,IAA1CpN,EAAK8M,UAAApM,OAAA,QAAAqM,IAAAD,UAAA,GAAAA,UAAA,GAAGhC,GAAyBvG,EAAMuI,UAAApM,OAAA,EAAAoM,UAAA,QAAAC,EAC1F,OAAQxI,EAAOjE,MACX,KAAKyE,EACD,OAAO+F,GAEX,IjBMyC,oCiBLrC,MAAO,IAAK9K,EAAOuM,6BAA6B,GAEpD,IjBS2C,sCiBRvC,IAAIc,EAAW,CAAC9I,EAAOe,aAAagI,OAAOtN,EAAMkM,cACjD,MAAO,IAAKlM,EAAOkM,aAAcmB,GACrC,IjBOuC,kCiBNnC,IAAIE,EAAavN,EAAMkM,aAAatE,OAAO4F,GAAgBA,EAAI9H,IAC/D,MAAO,IAAK1F,EAAOkM,aAAcqB,GACrC,IjBEyB,oBiBDrB,MAAO,IAAKvN,EAAOmM,wBAAyB5H,EAAO4H,wBAAyBrI,MAAO,MAEvF,IjBgBqC,gCiBfjC,MAAO,IAAK9D,EAAOoM,mBAAmB,EAAMtI,MAAO,MACvD,IjBeuC,kCiBdnC,MAAO,IAAK9D,EAAOiH,mBAAoB1C,EAAO0C,mBAAoBmF,mBAAmB,GACzF,IjBcuC,kCiBbnC,MAAO,IAAKpM,EAAOoM,mBAAmB,EAAMtI,MAAOS,EAAOT,OAE9D,IjBZ2C,sCiBavC,MAAO,IAAK9D,EAAOoM,mBAAmB,EAAMtI,MAAO,MACvD,IjBb6C,wCiBczC,MAAO,IAAK9D,EAAOkM,aAAc3H,EAAOe,YAAa8G,mBAAmB,GAC5E,IjBd6C,wCiBezC,MAAO,IAAKpM,EAAOoM,mBAAmB,EAAMtI,MAAOS,EAAOT,OAE9D,IjBX6C,wCiBYzC,MAAO,IAAK9D,EAAOyJ,YAAY,EAAM3F,MAAO,MAChD,IjBZ+C,0CiBa3C,IAAI2J,EAAuBzN,EAAMkM,aAAawB,IAAIF,GAC1CA,EAAIjM,QAAUgD,EAAOe,YAAY/D,MAC1BgD,EAAOe,YAEXkI,GAEPG,EAAqB,IAAK3N,EAAMmM,wBAAyBzG,GAAInB,EAAOe,YAAYI,IACpF,MAAO,IAAK1F,EAAOkM,aAAcuB,EAAsBtB,wBAAyBwB,EAAoBlE,YAAY,EAAO8C,6BAA6B,GACxJ,IjBnBuD,kDiBoBnD,IAAIqB,EAAQ,CAACrJ,EAAOe,aAChBuI,EAAiB,IAAK7N,EAAMmM,wBAAyBzG,GAAInB,EAAOe,YAAYI,IAChF,MAAO,IAAK1F,EAAOkM,aAAc0B,EAAOzB,wBAAyB0B,EAAgBpE,YAAY,EAAO8C,6BAA6B,GACrI,IjBxB+C,0CiByB3C,MAAO,IAAKvM,EAAOyJ,YAAY,EAAO3F,MAAOS,EAAOT,OAExD,IjBxB6C,wCiByBzC,MAAO,IAAK9D,EAAOyJ,YAAY,EAAM3F,MAAO,MAChD,IjBzB+C,0CiB0B3C,IAAIgK,EAAkB9N,EAAMkM,aAAawB,IAAIF,GACrCA,EAAI9H,KAAOnB,EAAOe,YAAYI,GACvBnB,EAAOe,YAEXkI,GAEX,MAAO,IAAKxN,EAAOkM,aAAc4B,EAAiBrE,YAAY,EAAO8C,6BAA6B,GACtG,IjBhC+C,0CiBiC3C,MAAO,IAAKvM,EAAOyJ,YAAY,EAAO3F,MAAOS,EAAOT,OAExD,IjBjC6C,wCiBkCzC,MAAO,IAAK9D,EAAOyJ,YAAY,EAAM3F,MAAO,MAChD,IjBlC+C,0CiBmC3C,IAAIiK,EAAU/N,EAAMkM,aAAatE,QAAO,SAAUuF,GAC9C,OAAOA,EAAMzH,KAAOnB,EAAOmB,MAE/B,MAAO,IAAK1F,EAAOkM,aAAc6B,EAAStE,YAAY,GAC1D,IjBtC+C,0CiBuC3C,MAAO,IAAKzJ,EAAOyJ,YAAY,EAAO3F,MAAOS,EAAOT,OAExD,IjBnC4C,uCiBoCxC,MAAO,IAAK9D,EAAOyJ,YAAY,EAAM3F,MAAO,MAChD,IjBpCoD,2DiBqChD,MAAO,IAAK9D,EAAOmL,UAAW5G,EAAO8C,KAAMoC,YAAY,GAC3D,IjBrCqD,gDiBsCjD,MAAO,IAAKzJ,EAAOqM,aAAc9H,EAAO8C,KAAMoC,YAAY,GAC9D,IjBtCuD,kDiBuCnD,MAAO,IAAKzJ,EAAOqL,aAAc9G,EAAO8C,KAAMoC,YAAY,GAC9D,IjBvCoD,+CiBwChD,MAAO,IAAKzJ,EAAOgO,UAAWzJ,EAAO8C,KAAMoC,YAAY,GAC3D,IjBxCuD,kDiByCnD,MAAO,IAAKzJ,EAAOsL,aAAc/G,EAAO8C,KAAMoC,YAAY,GAC9D,IjBzCgE,2DiB0C5D,MAAO,IAAKzJ,EAAOuL,sBAAuBhH,EAAO8C,KAAMoC,YAAY,GACvE,IjB1CqE,gEiB2CjE,MAAO,IAAKzJ,EAAOwL,2BAA4BjH,EAAO8C,KAAMoC,YAAY,GAC5E,IjB3C0D,qDiB4CtD,MAAO,IAAKzJ,EAAOyL,gBAAiBlH,EAAO8C,KAAMoC,YAAY,GACjE,IjB5C0D,qDiB6CtD,MAAO,IAAKzJ,EAAO0L,gBAAiBnH,EAAO8C,KAAMoC,YAAY,GACjE,IjB7CuE,kEiB8CnE,MAAO,IAAKzJ,EAAO2L,6BAA8BpH,EAAO8C,KAAMoC,YAAY,GAC9E,IjB9C0E,qEiB+CtE,MAAO,IAAKzJ,EAAO4L,gCAAiCrH,EAAO8C,KAAMoC,YAAY,GACjF,IjB/C0E,qEiBgDtE,MAAO,IAAKzJ,EAAO6L,gCAAiCtH,EAAO8C,KAAMoC,YAAY,GACjF,IjBhD0E,qEiBiDtE,MAAO,IAAKzJ,EAAO8L,gCAAiCvH,EAAO8C,KAAMoC,YAAY,GACjF,IjBjDwD,mDiBkDpD,MAAO,IAAKzJ,EAAO+L,cAAexH,EAAO8C,KAAMoC,YAAY,GAC/D,IjBlDiE,4DiBmD7D,MAAO,IAAKzJ,EAAOgM,uBAAwBzH,EAAO8C,KAAMoC,YAAY,GACxE,IjBnD2D,sDiBoDvD,MAAO,IAAKzJ,EAAOiM,4BAA6B1H,EAAO8C,KAAMoC,YAAY,GAC7E,IjBpD8C,yCiBqD1C,MAAO,IAAKzJ,EAAO8D,MAAOS,EAAOT,MAAO2F,YAAY,GAExD,QACI,MAAO,IAAKzJ,KEtIsDiO,SDI/D,WAAgE,IAAvCjO,EAAK8M,UAAApM,OAAA,QAAAqM,IAAAD,UAAA,GAAAA,UAAA,GAAGN,GAAsBjI,EAAMuI,UAAApM,OAAA,EAAAoM,UAAA,QAAAC,EACxE,OAAQxI,EAAOjE,MACX,IlB+EkC,6BkB7ElC,KAAKyE,EACD,OAAOyH,GAEX,IlB4EyB,oBkB3ErB,MAAO,IAAKxM,EAAOyJ,YAAY,EAAMiD,gBAAiB,MAC1D,IlB2E2B,sBkB1EvB,MAAO,IAAK1M,EAAOyM,WAAYlI,EAAOP,OAAQyF,YAAY,EAAO3F,MAAO,GAAI4I,gBAAiBnI,EAAOmE,MACxG,IlB0E2B,sBkBzEvB,MAAO,IAAK1I,EAAOyJ,YAAY,EAAO3F,MAAOS,EAAOT,MAAO4I,gBAAiBnI,EAAOmE,MAEvF,IlByE2B,sBkBxEvB,MAAO,IAAK1I,EAAOyJ,YAAY,EAAMlB,KAAM,MAC/C,IlBwE6B,wBkBvEzB,MAAO,IAAKvI,EAAOuI,KAAMhE,EAAOP,OAAQyF,YAAY,EAAO3F,MAAO,IACtE,IlBuE6B,wBkBtEzB,MAAO,IAAK9D,EAAOyJ,YAAY,EAAO3F,MAAOS,EAAOT,OAGxD,QACI,MAAO,IAAK9D,OCzBxB2M,GAAYuB,cAAgB,KAEbvB,U,4CCRR,MAAMwB,GAAqBA,IACvBC,IAAAC,cAAA,OAAKC,UAAU,uBAClBF,IAAAC,cAAA,OAAKC,UAAU,0CACXF,IAAAC,cAAA,KAAGC,UAAU,eAAeC,KAAK,6DAA6DC,OAAO,SAASC,IAAI,cAAa,aAC/HL,IAAAC,cAAA,UAAQC,UAAU,iBAAiBhO,KAAK,SAASoO,cAAY,WAAWC,cAAY,uBAAuBC,gBAAc,sBAAsBC,gBAAc,QAAQC,aAAW,qBAC5KV,IAAAC,cAAA,QAAMC,UAAU,yBAGpBF,IAAAC,cAAA,OAAKC,UAAU,2BAA2B5I,GAAG,qBACzC0I,IAAAC,cAAA,MAAIC,UAAU,cACVF,IAAAC,cAAA,MAAIC,UAAU,qBACVF,IAAAC,cAAA,KAAGC,UAAU,2BAA2BC,KAAK,IAAI7I,GAAG,yBAAyBgJ,cAAY,WAAWK,gBAAc,OAAOF,gBAAc,SAAQ,yBACrHT,IAAAC,cAAA,QAAMC,UAAU,WAE1CF,IAAAC,cAAA,OAAKC,UAAU,iBACXF,IAAAC,cAAA,KAAGC,UAAU,gBAAgBC,KAAK,kEAAkEC,OAAO,SAASC,IAAI,cAAa,oBACrIL,IAAAC,cAAA,KAAGC,UAAU,gBAAgBC,KAAK,4EAA4EC,OAAO,SAASC,IAAI,cAAa,sBAC/IL,IAAAC,cAAA,KAAGC,UAAU,gBAAgBC,KAAK,kEAAkEC,OAAO,SAASC,IAAI,cAAa,oBAG7IL,IAAAC,cAAA,MAAIC,UAAU,qBACVF,IAAAC,cAAA,KAAGC,UAAU,2BAA2BI,cAAY,WAAWH,KAAK,IAAIQ,gBAAc,OAAOF,gBAAc,SAAQ,sBAC5FT,IAAAC,cAAA,QAAMC,UAAU,WAEvCF,IAAAC,cAAA,OAAKC,UAAU,iBACXF,IAAAC,cAAA,KAAGC,UAAU,gBAAgBC,KAAK,+DAA+DC,OAAO,SAASC,IAAI,cAAa,cAClIL,IAAAC,cAAA,KAAGC,UAAU,gBAAgBC,KAAK,6EAA6EC,OAAO,SAASC,IAAI,cAAa,iBAChJL,IAAAC,cAAA,KAAGC,UAAU,gBAAgBC,KAAK,wFAAwFC,OAAO,SAASC,IAAI,cAAa,8BAC3JL,IAAAC,cAAA,KAAGC,UAAU,gBAAgBC,KAAK,kFAAkFC,OAAO,SAASC,IAAI,cAAa,0BAG7JL,IAAAC,cAAA,MAAIC,UAAU,qBACVF,IAAAC,cAAA,KAAGC,UAAU,2BAA2BI,cAAY,WAAWH,KAAK,KAAI,YAC3DH,IAAAC,cAAA,QAAMC,UAAU,WAE7BF,IAAAC,cAAA,OAAKC,UAAU,iBACXF,IAAAC,cAAA,KAAGC,UAAU,gBAAgBC,KAAK,8DAA8DC,OAAO,SAASC,IAAI,cAAa,aACjIL,IAAAC,cAAA,KAAGC,UAAU,gBAAgBC,KAAK,iFAAiFC,OAAO,SAASC,IAAI,cAAa,sBACpJL,IAAAC,cAAA,KAAGC,UAAU,gBAAgBC,KAAK,oFAAoFC,OAAO,SAASC,IAAI,cAAa,2BACvJL,IAAAC,cAAA,KAAGC,UAAU,gBAAgBC,KAAK,uFAAuFC,OAAO,SAASC,IAAI,cAAa,mBAGlKL,IAAAC,cAAA,MAAIC,UAAU,qBACVF,IAAAC,cAAA,KAAGC,UAAU,WAAWC,KAAK,6DAA6DC,OAAO,SAASC,IAAI,cAAa,sBAE/HL,IAAAC,cAAA,MAAIC,UAAU,qBACVF,IAAAC,cAAA,KAAGC,UAAU,WAAWC,KAAK,oEAAoEC,OAAO,SAASC,IAAI,cAAa,yB,+BCtCnJ,MAAMO,GAAUC,IACnB,MAAMC,EAAWC,cACXC,EAAUC,eACVC,EAAgBC,YAAavP,GAAUA,EAAMC,KAAKuE,SAClD1E,EAAWyP,YAAavP,GAAUA,EAAMC,KAAKH,UAC7C6J,EAAkB4F,YAAavP,GAAUA,EAAMC,KAAK0J,kBACnD6F,EAAYC,GAAiBC,oBAAS,IACtCnM,EAAQoM,GAAcD,oBAAS,IAC/BE,EAASC,GAAgBC,aAAW,CAAC,oBA2B5C,OAbAC,oBAAU,MACFT,GAA8B,MAAZxP,GAAqBA,IAAayD,GACpD6L,EAAQY,KAAK,KAObP,EAJY,MAAZ3P,IAAqBA,IAAa6J,IAMvC,CAAC2F,EAAexP,EAAU6J,IAEtByE,IAAAC,cAAA,OAAKC,UAAW,oBACnBF,IAAAC,cAAA,OAAKC,UAAU,aACXF,IAAAC,cAAA,OAAKC,UAAU,cACXF,IAAAC,cAAA,OAAKC,UAAU,iBACfF,IAAAC,cAAA,KAAGE,KAAK,oBAAoBC,OAAO,SAASF,UAAU,sBAAsBG,IAAI,cAC5EL,IAAAC,cAAA,OAAK4B,IAAKC,KAAMC,IAAI,YAAY7B,UAAU,UAE7CkB,EAAa,GAAKpB,IAAAC,cAAC+B,KAAM,CAAC9B,UAAU,6BAA6B+B,QAhCpDC,KACtB,IAAIC,GAAS,EACmB,UAA5BX,EAAQY,kBACRD,EAASE,OAAOC,QAAQ,2DAExBH,IACAZ,GAAW,GACXE,EAAa,mBACbX,EAAS,CAAE5O,KAAMyE,OAwBiF,WAC1FqJ,IAAAC,cAAA,UAAQC,UAAU,iDAAiDhO,KAAK,SAASoO,cAAY,WAAWC,cAAY,2BACpHC,gBAAc,0BAA0BC,gBAAc,QAAQC,aAAW,qBACrEV,IAAAC,cAAA,OAAKC,UAAU,kBAAiBF,IAAAC,cAAA,aAAaD,IAAAC,cAAA,aAAaD,IAAAC,cAAA,cAC9DD,IAAAC,cAAA,QAAMC,UAAU,eAAc,UAGlCF,IAAAC,cAAA,OAAKC,UAAU,2BAA2B5I,GAAG,2BACzC0I,IAAAC,cAAA,OAAKC,UAAU,2CAA2C5I,GAAG,kBACzD0I,IAAAC,cAAA,WAASC,UAAU,gBACfF,IAAAC,cAAA,OAAKC,UAAU,gBACPF,IAAAC,cAAA,SAAOsC,QAAQ,QAAO,WACtBvC,IAAAC,cAAA,WAASC,UAAU,YACfF,IAAAC,cAAA,MAAIC,UAAU,cACVF,IAAAC,cAAA,UACAD,IAAAC,cAAA,KAAGE,KAAK,+DAA+DC,OAAO,SAASC,IAAI,cAAa,aAExGL,IAAAC,cAAA,UACAD,IAAAC,cAAA,KAAGE,KAAK,uCAAuCC,OAAO,SAASC,IAAI,cAAa,gBAEhFL,IAAAC,cAAA,UACAD,IAAAC,cAAA,KAAGE,KAAK,2CAA2CC,OAAO,SAASC,IAAI,cAAa,eAEpFL,IAAAC,cAAA,UACAD,IAAAC,cAAA,KAAGE,KAAK,uCAAuCC,OAAO,SAASC,IAAI,cAAa,gBAKhGL,IAAAC,cAAA,OAAKC,UAAU,gBACXF,IAAAC,cAAA,SAAOsC,QAAQ,QAAO,oBACdvC,IAAAC,cAAA,WAASC,UAAU,aACfF,IAAAC,cAAA,MAAIC,UAAU,cACVF,IAAAC,cAAA,UACJD,IAAAC,cAAA,KAAGE,KAAK,yEAAyEC,OAAO,SAASC,IAAI,cAAa,sBAC1GL,IAAAC,cAAA,YAAM,sDAEVD,IAAAC,cAAA,UACJD,IAAAC,cAAA,KAAGE,KAAK,4EAA4EC,OAAO,SAASC,IAAI,cAAa,eAC7GL,IAAAC,cAAA,YAAM,sDAEVD,IAAAC,cAAA,UACJD,IAAAC,cAAA,KAAGE,KAAK,yEAAyEC,OAAO,SAASC,IAAI,cAAa,iBAC1GL,IAAAC,cAAA,YAAM,mCAEVD,IAAAC,cAAA,UACJD,IAAAC,cAAA,KAAGE,KAAK,qEAAqEC,OAAO,SAASC,IAAI,cAAa,QAC9GL,IAAAC,cAAA,YAAM,+CAEFD,IAAAC,cAAA,UACJD,IAAAC,cAAA,KAAGE,KAAK,yDAAyDC,OAAO,SAASC,IAAI,cAAa,6BAC1FL,IAAAC,cAAA,YAAM,6CAK9BD,IAAAC,cAAA,OAAKC,UAAU,kBACXF,IAAAC,cAAA,SAAOsC,QAAQ,QAAO,aACVvC,IAAAC,cAAA,WAASC,UAAU,YACfF,IAAAC,cAAA,MAAIC,UAAU,cACVF,IAAAC,cAAA,UACRD,IAAAC,cAAA,KAAGE,KAAK,+CAA+CC,OAAO,SAASC,IAAI,cAAa,mBAC5EL,IAAAC,cAAA,YAAM,mCAEVD,IAAAC,cAAA,UACRD,IAAAC,cAAA,KAAGE,KAAK,6CAA6CC,OAAO,SAASC,IAAI,cAAa,8BAC1EL,IAAAC,cAAA,YAAM,oCAEVD,IAAAC,cAAA,UACRD,IAAAC,cAAA,KAAGE,KAAK,iEAAiEC,OAAO,SAASC,IAAI,cAAa,gBAC9FL,IAAAC,cAAA,YAAM,oDAMlCD,IAAAC,cAAA,OAAKC,UAAU,iBACXF,IAAAC,cAAA,SAAOsC,QAAQ,QAAO,eACNvC,IAAAC,cAAA,WAASC,UAAU,YACfF,IAAAC,cAAA,MAAIC,UAAU,cACVF,IAAAC,cAAA,UACZD,IAAAC,cAAA,KAAGE,KAAK,oDAAoDC,OAAO,SAASC,IAAI,cAAa,YAC7EL,IAAAC,cAAA,YAAM,+BAEVD,IAAAC,cAAA,UACZD,IAAAC,cAAA,KAAGE,KAAK,oDAAoDC,OAAO,SAASC,IAAI,cAAa,kBAC7EL,IAAAC,cAAA,YAAM,oDAEVD,IAAAC,cAAA,UACZD,IAAAC,cAAA,KAAGE,KAAK,oDAAoDC,OAAO,SAASC,IAAI,cAAa,wBAC7EL,IAAAC,cAAA,YAAM,oDAW1DD,IAAAC,cAACF,GAAkB,Q,yBCrJpB,MAAMyC,GAASA,IAImB,MAHvBC,eAGUC,UAG1B1C,IAAAC,cAAA,OAAKC,UAAU,UACdF,IAAAC,cAAA,OAAKC,UAAU,2BACdF,IAAAC,cAAA,OAAK4B,IAAKc,KAAczC,UAAU,gBAAgB6B,IAAI,MAExD/B,IAAAC,cAAA,OAAKC,UAAU,oBACdF,IAAAC,cAAA,OAAKC,UAAU,gCACdF,IAAAC,cAAA,MAAIC,UAAU,iBACbF,IAAAC,cAAA,UAAID,IAAAC,cAAA,KAAGE,KAAK,oCAAoCC,OAAO,SAASF,UAAU,gBAAgB0C,MAAM,WAAWvC,IAAI,gBAC/GL,IAAAC,cAAA,UAAID,IAAAC,cAAA,KAAGE,KAAK,+BAA+BC,OAAO,SAASF,UAAU,eAAe0C,MAAM,UAAUvC,IAAI,gBACxGL,IAAAC,cAAA,UAAID,IAAAC,cAAA,KAAGE,KAAK,6CAA6CC,OAAO,SAASF,UAAU,gBAAgB0C,MAAM,WAAWvC,IAAI,iBAEzHL,IAAAC,cAAA,WACAD,IAAAC,cAAA,MAAIC,UAAU,sBACbF,IAAAC,cAAA,UAAID,IAAAC,cAAA,KAAGE,KAAK,mDAAmDC,OAAO,SAASC,IAAI,cAAa,eAChGL,IAAAC,cAAA,UAAID,IAAAC,cAAA,KAAGE,KAAK,iDAAiDC,OAAO,SAASC,IAAI,cAAa,aAC9FL,IAAAC,cAAA,UAAID,IAAAC,cAAA,KAAGE,KAAK,uCAAuCC,OAAO,SAASC,IAAI,cAAa,YACpFL,IAAAC,cAAA,UAAID,IAAAC,cAAA,KAAGE,KAAK,8BAA8BC,OAAO,SAASC,IAAI,cAAa,eAG7EL,IAAAC,cAAA,OAAKC,UAAU,kCACdF,IAAAC,cAAA,MAAIC,UAAU,sBACbF,IAAAC,cAAA,UAAID,IAAAC,cAAA,KAAGE,KAAK,oDAAoDC,OAAO,SAASC,IAAI,cAAa,mBACjGL,IAAAC,cAAA,UAAID,IAAAC,cAAA,KAAGE,KAAK,gDAAgDC,OAAO,SAASC,IAAI,cAAa,kBAC7FL,IAAAC,cAAA,UAAID,IAAAC,cAAA,KAAGE,KAAK,+CAA+CC,OAAO,SAASC,IAAI,cAAa,qBAE7FL,IAAAC,cAAA,OAAKC,UAAU,aACdF,IAAAC,cAAA,OAAKC,UAAU,kBACdF,IAAAC,cAAA,KAAGE,KAAK,gEAAgEC,OAAO,SAASwC,MAAM,6BAA6B1C,UAAU,gBAAgBG,IAAI,gBAE1JL,IAAAC,cAAA,OAAKC,UAAU,kBACdF,IAAAC,cAAA,KAAGE,KAAK,2FAA+FC,OAAO,SAASwC,MAAM,wBAAwB1C,UAAU,aAAaG,IAAI,kBAInLL,IAAAC,cAAA,OAAKC,UAAU,iCACdF,IAAAC,cAAA,OAAKC,UAAU,oBAAmB,SAAGF,IAAAC,cAAA,cAAQ,4CAAiD,0CAC9FD,IAAAC,cAAA,MAAIC,UAAU,sBACbF,IAAAC,cAAA,UAAID,IAAAC,cAAA,KAAGE,KAAK,iDAAiDC,OAAO,SAASC,IAAI,cAAa,0CAC9FL,IAAAC,cAAA,UAAID,IAAAC,cAAA,KAAGE,KAAK,uDAAuDC,OAAO,SAASC,IAAI,cAAa,iBACpGL,IAAAC,cAAA,UAAID,IAAAC,cAAA,KAAGE,KAAK,mEAAmEC,OAAO,SAASC,IAAI,cAAa,8BAEjHL,IAAAC,cAAA,MAAIC,UAAU,sBACbF,IAAAC,cAAA,UAAID,IAAAC,cAAA,KAAGE,KAAK,+GAA+GC,OAAO,SAASC,IAAI,cAAa,4BAC5JL,IAAAC,cAAA,UAAID,IAAAC,cAAA,KAAGE,KAAK,gDAAgDC,OAAO,SAASC,IAAI,cAAa,4C,OChD3F,MAAMwC,WAAeC,YAGxBC,SACI,OACI/C,IAAAC,cAAA,WACID,IAAAC,cAACW,GAAM,MACPZ,IAAAC,cAAC+C,KAAS,KACTC,KAAKpC,MAAMqC,UAEZlD,IAAAC,cAACuC,GAAM,QAItBW,GAdYN,MACJO,YAAcP,GAAOvI,K,sDCAvB,MAAM+I,GAAmBxC,IAC5B,MAAMC,EAAWC,cACXC,EAAUC,gBAETqC,EAAWC,GAAgBjC,oBAAS,GACrCJ,EAAgBC,YAAavP,GAAUA,EAAMC,KAAKuE,SAClD1E,EAAWyP,YAAavP,GAAUA,EAAMC,KAAKH,UAC7C+E,EAAkB0K,YAAavP,GAAUA,EAAMC,KAAK4E,iBACpD+M,EAAqB/M,EAAkB,IAAYA,EAAgBgN,mBAAqB,IACxFC,EAAwBjN,EAAkB,IAAYA,EAAgBkN,sBAAwB,IACpG,IAAIC,EAAiBC,iBAAO,MAC5B,MAAOC,EAAWC,GAAgBzC,mBAAS,IAE3CK,oBAAU,KACFT,GACAF,EAAQY,KAAK,MAElB,CAACV,IAEJ,MAgBM/L,EAASA,KACXoO,GAAa,GACbS,aAAaF,GACbhD,EAAS,CAAE5O,KAAMyE,MAGf,MAAEsN,GACJC,aAAa,CACTC,QAASX,EACTY,OAzBaC,IACb3S,GACA6R,GAAa,GACbK,EAAiBA,IAAMU,WAAW,IAAMnP,IAAUuO,GAClDK,EAAaH,MAGbL,GAAa,IAmBbgB,SAAU,MAIlB,OACIvE,IAAAC,cAAA,WACKD,IAAAC,cAACuE,KAAK,CAACC,OAAQnB,EAAWoB,OAAQA,IAAMnB,GAAa,IAClDvD,IAAAC,cAAC0E,KAAW,CAACD,OAAQA,IAAMnB,GAAa,IAAQ,0BAGhDvD,IAAAC,cAAC2E,KAAS,KAAC,uFAGX5E,IAAAC,cAAC4E,KAAW,KACR7E,IAAAC,cAAA,UAAQC,UAAU,eAAe+B,QAASA,IAAM9M,KAAU,UAC1D6K,IAAAC,cAAA,UAAQC,UAAU,kBAAkB+B,QAASA,KA7BzD+B,aAAaF,GACbG,SACAV,GAAa,KA2BgE,mB,gECnE9E,MAAMuB,GAAoB/F,IAC7B,MAAMgG,EAAqBC,OAAO,cAKlC,OAHKjG,GAASgG,EAAmBE,KAAKlG,GAC5B,GACA,6CAIDmG,GAAoBnG,GAEzBiG,OAAO,gEAEYC,KAAKlG,GAClB,GACA,iHAIDoG,GAA0BA,CAACpG,EAAOxL,IAEtCwL,IAAUxL,EACL,wCACA,GAGD6R,GAAiBrG,IAI1B,IAAIzK,EAAM,GAQV,MAV0B,kEAIJ2Q,KAAKlG,GACvBzK,EAAM,iBANc,aAOI2Q,KAAKlG,KAC7BzK,EAAM,oCAGHA,GAGE+Q,GAAetG,IACxB,MAAMuG,EAAgBN,OAAO,eAK7B,OAHKjG,GAASuG,EAAcL,KAAKlG,GACvB,GACA,kCAIDwG,GAAcxG,IACvB,IAAIzK,EAAM,GAOV,MANgB,wBAEJ2Q,KAAKlG,KACbzK,EAAM,iCAGHA,GAGEkR,GAAiBzG,IAC1B,MAAM0G,EACFT,OAAO,0HAKX,OAHKjG,GAAS0G,EAAgBR,KAAKlG,GACzB,GACA,6BAID2G,GAAiB3G,IAC1B,MAAM4G,EAAkBX,OAAO,gDAK/B,OAHKjG,GAAS4G,EAAgBV,KAAKlG,GACzB,GACA,8BAID6G,GAAe7G,IACxB,MAAM8G,EAAgBb,OAAO,gDAK7B,OAHKjG,GAAS8G,EAAcZ,KAAKlG,GACvB,GACA,4BAuBD+G,GAAkC/G,GAErCA,GAAU,KAAKkG,KAAKlG,GAEhB,GADA,yBA+DDgH,GAAiB,SAACzL,EAAMyE,EAAOiH,GAA8B,IAAnBC,EAASvH,UAAApM,OAAA,QAAAqM,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC3DwH,EAAWD,EAAY,IAAKlH,EAC5BoH,EACAD,GAAYnH,EAAMzM,OAAS2T,GAAalH,EAAMzM,OAAS0T,EACvDtQ,EAAQ,GACZ,GAAIyQ,EACA,OAAQ7L,GACJ,IAAK,YACD5E,EAAQ,8CACR,MACJ,IAAK,WACDA,EAAQ,6CACR,MACJ,IAAK,gBACDA,EAAQ,sCACR,MACJ,IAAK,YACDA,EAAQ,2CACR,MACJ,IAAK,gBACDA,EAAQuQ,EAAY,EAAI,kDAClB,+CACN,MACJ,IAAK,OACDvQ,EAAQ,wCAIpB,OAAOA,GAGE0Q,GAAgBrH,IACzB,IAAIzK,EAAM,GACV,GAAIyK,EAAO,CACP,MAAMsH,EAAY,IAAIC,KAAK,cACrBC,EAAU,IAAID,KAAK,cACnBE,EAAO,IAAIF,KAAKvH,GAGtBzK,EADgBkS,EAAKC,WAAaJ,EAAUI,WAAaD,EAAKC,WAAaF,EAAQE,UAIzE,GADA,oBAGd,OAAOnS,GAGEoS,GAA0B3H,IACnC,IAAIzK,EAAM,GACV,GAAIyK,EAAO,CACO,IAAIuH,KAAKvH,GAEb,IAAIuH,OAEVhS,EAAM,mDAGd,OAAOA,GAGEqS,GAAoBA,CAACC,EAAOC,KACrC,IAAIvS,EAAM,GACV,GAAIsS,GAASC,EAAO,CAKhBvS,EAJkB,IAAIgS,KAAKM,GACX,IAAIN,KAAKO,GAMf,GADA,kDAGd,OAAOvS,GAGEwS,GAAgB9N,IACzB,IAAI+N,GAAQ,EAKZ,OAJArN,OAAOsN,OAAOhO,GAAQiO,QAEjBC,GAAQA,EAAI5U,OAAS,IAAMyU,GAAQ,IAEjCA,GA4BEI,GAA0BC,IACnC,IAAIC,EAAeD,EAAeE,KAAKC,IAC3BA,EAAMxI,OAAS,KAAO+G,GAA+ByB,EAAMxI,QAevE,OAZKsI,IACDA,EAAeD,EAAeE,KAAKC,IAC/B,GAAkB,mCAAdA,EAAMxN,KAA0D,+BAAdwN,EAAMxN,KACvC,gCAAdwN,EAAMxN,IAAuC,CAEhD,GAAY,KADF2M,GAAuBa,EAAMxI,OAEnC,OAAOwI,MAMhBF,EAAeA,EAAatN,IAAM,ICxShCyN,GAAiB3G,IAC1B,IAAI,SAAEqC,GAAarC,EACnB,OAAOb,IAAAC,cAACwH,KAAG,KACPzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACL3H,IAAAC,cAAA,OAAKC,UAAU,iBACXF,IAAAC,cAAC2H,KAAK,KAAE1E,O,sDCJjB,MAAM2E,GAAahH,IACtB,IAAI,SAAEqF,EAAQ,KAAE5L,EAAI,GAAEhD,EAAE,MAAEwQ,EAAK,KAAE5V,EAAI,QAAE6V,EAAO,YAAEC,EAAW,MAAEjJ,EAAK,MAAErJ,EAAK,gBAAEuS,EAAe,WAAEC,EAAU,IAAEC,EAAG,IAAEC,EAAG,UAAEpC,EAAS,KAAEqC,EAAI,SAAEC,EAAQ,wBAAEC,EAAuB,SAAEC,EAAYA,SAAU,WAAEC,EAAcA,UAAe5H,EAC3N,MAAO6H,EAAeC,GAAoBrH,oBAAWiH,GAA2BxJ,EAAQ,GAAM+I,EAAQ,iBAC/Fc,EAAkBC,GAAuBvH,oBAAS,GACnDwH,EAAaA,IAAMD,EAAoBE,IAAcA,GAE3DpH,oBAAU,KACNgH,EAAkBJ,IAA6BxJ,GAA0B,mBAAVA,EAAwB+I,EAAQ,eAAkB,KAClH,CAACS,IAEJ,MAAMS,EAAiB7W,IACf+T,IACK/T,EAAEiO,OAAOrB,MAGV4J,EAAiB,MAFjBA,EAAiBb,EAAQ,iBAIjCU,EAASrW,IAOb,MAAa,WAATD,EACO8N,IAAAC,cAACgJ,KAAS,CAAC/I,UAAU,cACxBF,IAAAC,cAAC2H,KAAK,CAAC1H,UAAWgG,EAAW,iBAAmB,GAAIgD,IAAK5O,GAAOwN,GAChE9H,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,EAAGwB,GAAI,GACZnJ,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,QAAQoI,KAAMA,EAAMhD,GAAIA,EAAG,OAAQyH,MAAM,IAAIyJ,SAAUQ,EAAeK,SAAmB,IAAVtK,IAAiBiB,IAAAC,cAAC2H,KAAK,KAAC,QAEvH5H,IAAAC,cAACyH,KAAG,CAACC,GAAI,EAAGwB,GAAI,GACZnJ,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,QAAQoI,KAAMA,EAAMhD,GAAIA,EAAG,MAAOyH,MAAM,IAAIyJ,SAAUQ,EAAeK,SAAmB,IAAVtK,IAAkBiB,IAAAC,cAAC2H,KAAK,KAAC,QAG1HlS,GAASsK,IAAAC,cAAA,QAAMC,UAAU,SAASxK,GAClCgT,GAAiB1I,IAAAC,cAAA,QAAMC,UAAU,SAASwI,IAGtC,WAATxW,EACO8N,IAAAC,cAACgJ,KAAS,CAAC/I,UAAU,cACxBF,IAAAC,cAAC2H,KAAK,CAAC1H,UAAWgG,EAAW,iBAAmB,GAAIgD,IAAK5O,GAAOwN,GAChE9H,IAAAC,cAACmJ,KAAK,CAAClX,KAAMA,EAAMoI,KAAMA,EAAMhD,GAAIA,EAAI0Q,YAAaA,EAAajJ,MAAOA,EAAOyJ,SAAUQ,GACrFhJ,IAAAC,cAAA,UAAQlB,MAAM,IAAI,UACjBgJ,EAAQzI,IAAIgK,GAAKtJ,IAAAC,cAAA,UAAQlB,MAAOuK,EAAEvK,MAAOhF,IAAK,UAAYuP,EAAEvK,OAAQ,IAAEuK,EAAExB,SAE5EpS,GAASsK,IAAAC,cAAA,QAAMC,UAAU,SAASxK,GAClCgT,GAAiB1I,IAAAC,cAAA,QAAMC,UAAU,SAASwI,IAGtC,aAATxW,EACO8N,IAAAC,cAACgJ,KAAS,CAAC/I,UAAU,cACxBF,IAAAC,cAAC2H,KAAK,CAAC1H,UAAWgG,EAAW,iBAAmB,IAAM4B,GACtD9H,IAAAC,cAACsJ,KAAQ,CAACC,UAAU,OAAO/E,OAAQmE,EAAkBlE,OAAQoE,GACzD9I,IAAAC,cAACwJ,KAAc,CAACvJ,UAAU,sBACtBF,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,kBAAkBnB,GACnCiB,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,2BAErBF,IAAAC,cAACyJ,KAAY,CACTC,UAAW,CACPC,aAAc,CACVC,SAAS,EACTC,GAAKC,IACM,IACAA,EACHC,OAAQ,IACDD,EAAKC,OACRC,SAAU,OACVC,UAAW,cAO9BhC,EAAaA,EAAW5I,IAAInN,GAErB6N,IAAAC,cAACyH,KAAG,CAACC,GAAI,GAAI5N,IAAK5H,EAAEmI,MAChB0F,IAAAC,cAACgJ,KAAS,CAAC/I,UAAU,eACjBF,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,WAAWoI,KAAMA,EAAMhD,GAAInF,EAAE4M,MAAOhF,IAAK5H,EAAEmI,KAAMkO,SAAUQ,EACnEK,SAAyB,OAAfpB,QAAe,IAAfA,OAAe,EAAfA,EAAiBkC,SAAShY,EAAE4M,QAAS,EAAI,UAAY,KAAQ,MAAO5M,EAAEmI,QAK/F,MAMR,cAATpI,EACO8N,IAAAC,cAACgJ,KAAS,CAAC/I,UAAU,cACxBF,IAAAC,cAAC2H,KAAK,CAAC1H,UAAWgG,EAAW,iBAAmB,GAAIgD,IAAK5O,GAAOwN,GAChE9H,IAAAC,cAACmK,KAAS,CAAC/B,KAAMA,EAAMgC,SAAU,KAAM/P,KAAMA,EAAMhD,GAAIA,EACnDyH,MAAOA,EAAO/F,OAAQtD,EAAO8S,SAAUQ,EACvCsB,aAAa,MAAMpK,UAAU,0BAA0B8H,YAAaA,IACvEtS,GAASsK,IAAAC,cAAA,QAAMC,UAAU,SAASxK,IACjCA,GAASgT,GAAiB1I,IAAAC,cAAA,QAAMC,UAAU,SAASwI,IAGtD1I,IAAAC,cAACgJ,KAAS,CAAC/I,UAAU,cACxBF,IAAAC,cAAC2H,KAAK,CAAC1H,UAAWgG,EAAW,iBAAmB,GAAIgD,IAAK5O,GAAOwN,GAChE9H,IAAAC,cAACmJ,KAAK,CAAClX,KAAMA,EAAMoI,KAAMA,EAAMhD,GAAIA,EAAI0Q,YAAaA,EAAajJ,MAAOA,EACpEuJ,SAAUA,EACVE,SAAUQ,EAAeuB,OArFZpY,IACjBsW,EAAWtW,IAoFuCgW,IAAKA,EAAKC,IAAKA,EAAKpC,UAAWA,IAChFtQ,GAASsK,IAAAC,cAAA,QAAMC,UAAU,SAASxK,IACjCA,GAASwQ,GAAYwC,GAAiB1I,IAAAC,cAAA,QAAMC,UAAU,SAASwI,KC3G5D8B,GAAgB,CACzB,CAAEzL,MAJa,IAI0B+I,MAAO,uCCNvC2C,GAAqB,CAC9BrY,QAAS,KACTsY,SAAU,KACVC,WAAY,KACZC,WAAY,M,sBCOT,MAAMC,GAAehK,IACxB,MAAMC,EAAWC,cACXC,EAAUC,eAChB,IAAI6J,EAAWrI,gBACX,MAAEnP,EAAK,iBAAEyX,GAAqBlK,EAClC,MAAMnL,EAAQyL,YAAavP,GAAUA,EAAMC,KAAK2J,mBACzCjF,EAAeyU,GAAoB1J,oBAAS,IAC5C7G,EAAoBwQ,GAAyB3J,mBAASmJ,IAE7D9I,oBAAU,KACNb,EAAS,CACL5O,K9BiB6B,+B8BflC,IAEHyP,oBAAU,KACNqJ,EAA2B,4BAAVtV,IAClB,CAACA,IAEJ,MA2BMwV,EAAeA,CAAC9Y,EAASuY,EAAYC,KAQvCK,EAPmB,CACf7Y,QAASA,EACTsY,SAAU,cACVC,WAAYA,EACZC,WAAYA,IAIsB,OAAlCnQ,EAAmBkQ,YACnB7J,EAAS,CAAE5O,K9BqDO,iB8BrDqBuI,qBAAoB5I,KAAM,QAIzE,OAAOmO,IAAAC,cAAA,OAAKC,UAAU,4BAClBF,IAAAC,cAACkL,KAAe,CAACjL,UAAU,gBAAgBkL,KAAMC,OACjDrL,IAAAC,cAAA,SAAGD,IAAAC,cAAA,SAAG,+BACND,IAAAC,cAAA,SAAG,yCAAuC3M,EAAM,IAAC0M,IAAAC,cAAA,WAAM,mEAEvDD,IAAAC,cAAC+B,KAAM,CAACC,QA9CQ1M,KAChB,GAAIjC,EAAO,CACP,IAAIlB,EAAU,mBAAqBkB,EAAQ,IAEvCsX,EAAa/W,KAAKC,UAAUR,GAChC4X,EAAa9Y,EAFI,gBAEiBwY,GAClC9J,EAAS,CACL5O,K9BDyB,4B8BCcoB,YAuCjBgV,SAAU/R,GAAe,gBACtDA,EACGyJ,IAAAC,cAAA,SAAG,6DAC2DD,IAAAC,cAAA,KAAGE,KAAK,IAAI8B,QApC/D9P,IAEf,GADAA,EAAEmZ,iBACwB,MAAtBR,EAASpI,UAAoBqI,EAC7BA,QAEC,CAIDG,EAHc,2BACG,YACA5X,GAEjB0N,EAAQY,KAAK,QA0BiF,WAAW,KAGzG5B,IAAAC,cAAA,KAAGC,UAAU,SACRxK,K,cCzEjB,MAAM6V,GAAiB,WAAmB,IAAlBC,EAAO9M,UAAApM,OAAA,QAAAqM,IAAAD,UAAA,GAAAA,UAAA,GAAG,GAC9B,MAAM+M,EAActK,YAAavP,GAAUA,EAAMC,KAAK4E,iBAChDiV,EAAQvK,YAAavP,GAAUA,EAAMC,KAAK6J,cAC1CoF,EAAWC,cACjB,IAAI4K,IAAYD,GAAQA,EAAMF,GAC9B,MAAO3B,EAAS+B,GAActK,mBAA8B,qBAAdqK,GAAoCA,IAC3EE,EAAQC,GAAaxK,oBAAoB,OAAXmK,QAAW,IAAXA,OAAW,EAAXA,EAAaM,kCAC9C,IAAIC,KAAuBP,EAAYM,kCACrC,MAuCN,OArCAE,kBAAQvZ,UACJ,GAAK8Y,GAAYA,EAAQvW,WAAWiX,OAAO5Z,OAGvC,IACI,IAAKoZ,KAAWF,KAAWE,GAAQ,CAC/B,IAAIS,EACJ,GAAIN,EACAM,EAAeN,MAGd,CACD,KAAe,OAAXJ,QAAW,IAAXA,OAAW,EAAXA,EAAaM,kCAOb,OAP+C,CAC/CpX,QAAQC,IAAI,gBACZ,IAAIwX,EAAkB,IAAIJ,KAAkC,OAAXP,QAAW,IAAXA,OAAW,EAAXA,EAAaM,kCAC9DD,EAAUM,GACVD,EAAeC,GAMvB,MAAMxW,QAAeuW,EAAaE,wBAAwB,CACtDtS,IAAK,0BAA0ByR,EAAQvW,WAAWiX,SAElDtW,GAA4B,kBAAXA,IACjBjB,QAAQ2X,MAAM,YAAczY,KAAKwG,MAAMzE,EAAOmJ,OAAOzH,GAAIzD,KAAKwG,MAAMzE,EAAOmJ,OAAO8K,SAClF+B,EAAW/X,KAAKwG,MAAMzE,EAAOmJ,OAAO8K,SACpC/I,EAAS,CAAE5O,K/B4EC,uB+B5EiC6H,IAAKyR,EAAQvW,WAAWiX,OAAQnN,MAAOlL,KAAKwG,MAAMzE,EAAOmJ,OAAO8K,YAGvH,MAAOnU,GACLf,QAAQe,MAAMA,QA9BlBf,QAAQe,MAAM,yCAiCnB,CAAC8V,EAASC,IAEN,CAAE5B,YC7CA0C,GAAU1L,IACnB,MAAMC,EAAWC,cACXlL,EAAiBsL,YAAavP,GAAUA,EAAMC,KAAKgE,gBACnDH,EAAQyL,YAAavP,GAAUA,EAAMC,KAAK6D,QACzC8W,EAAkBC,GAAuBnL,oBAAS,IAClDoL,EAAgBC,GAAqBrL,oBAAS,GAC/CjG,EAAa8F,YAAavP,GAAUA,EAAMC,KAAKwJ,YAC/CnF,EAAaiL,YAAavP,GAAUA,EAAMC,KAAKqE,YAC/CD,EAAakL,YAAavP,GAAUA,EAAMC,KAAKoE,YAC/CF,EAAaoL,YAAavP,GAAUA,EAAMC,KAAKkE,YAC/C6W,EAAoBC,IAClBhD,QAASiD,GAAgCvB,GAAe,0CAEzD9Q,EAAoBwQ,GAAyB3J,mBAASmJ,KAEtD5Y,EAAMkb,GAAWzL,mBAAS,CAC7BpO,IAAK,KACLC,MAAO,KACPC,UAAW,KACXC,SAAU,KACVC,MAAO,KACPC,SAAU,KACVyZ,gBAAiB,KACjBxZ,aAAc,KACdC,YAAa,QAEVuF,EAAQiU,GAAa3L,mBAAS,CACjCpO,IAAK,GACLC,MAAO,GACPC,UAAW,GACXC,SAAU,GACVC,MAAO,GACPC,SAAU,GACVyZ,gBAAiB,GACjBxZ,aAAc,GACdC,YAAa,KAejBkO,oBAAU,KACNb,EAAS,CAAE5O,KhC/CqC,6CgCgDhD4O,EAAS,CAAE5O,KhCiDuB,gCgChDnC,IAEHyP,oBAAU,KACF9L,IAAuB,OAALH,QAAK,IAALA,OAAK,EAALA,EAAOpD,QAAS,EAClCma,GAAoB,GAGpBA,GAAoB,IAEzB,CAAC5W,EAAgBH,IAEpBiM,oBAAU,KACNuL,KACD,CAAClU,IACJ2I,oBAAU,KACDtG,GACD4R,EAAU,IAAKjU,EAAQ9F,IAAKgD,KACjC,CAACA,IACJyL,oBAAU,KACDtG,GACD4R,EAAU,IAAKjU,EAAQ7F,MAAO8C,KACnC,CAACA,IACJ0L,oBAAU,KACDtG,GACD4R,EAAU,IAAKjU,EAAQ1F,MAAQyC,EAAa,wBAA0B,MAC3E,CAACA,IAEJ,MAAMoX,EAAuB9I,IACzB,MAAM,KAAE/J,EAAI,MAAEyE,GAAUsF,EAAMjE,OAC9B,IAAIgN,EAAWrO,EAAMmN,OACrB,IAAImB,EAAgB,IAAKrU,GAEzB,OADAqL,EAAMiH,iBACEhR,GACJ,IAAK,YACD+S,EAAcja,UAAYka,GAA0BhT,EAAMyE,EAAO,GAAI,GACrE,MACJ,IAAK,WACDsO,EAAcha,SAAWia,GAA0BhT,EAAMyE,EAAO,GAAI,GAG5EgO,EAAQ,IAAKlb,EAAM,CAACyI,GAAO8S,IAC3BH,EAAUI,IAIRE,EAAqBlJ,IACvB,MAAM,KAAE/J,EAAI,MAAEyE,GAAUsF,EAAMjE,OAC9BiE,EAAMiH,iBACN,IAAIlZ,EAAU,GAEVwY,EAAa,GAEbyC,EAAgB,IAAKrU,GACzB,OAAQsB,GACJ,IAAK,MACD,IAAIkT,EAASF,GAAuBvO,GACrB,KAAXyO,IACApb,EAAU,uCAAyC2M,EAAQ,IAC3D6L,EAAa/W,KAAKC,UAAUiL,GAC5BmM,EAAa9Y,EAVR,qBAU6BwY,IAGtCyC,EAAcna,IAAkB,KAAXsa,EACf1M,EAAS,CAAE5O,KhChGG,uBgCgG+BgB,IAAK6L,IAClDyO,EACN,MACJ,IAAK,QACD,IAAIC,EAAWH,GAAyBvO,GACvB,KAAb0O,IACArb,EAAU,0CAA4C2M,EAAQ,IAC9D6L,EAAa/W,KAAKC,UAAUiL,GAC5BmM,EAAa9Y,EAtBR,qBAsB6BwY,IAEtCyC,EAAcla,MAAsB,KAAbsa,EACjB3M,EAAS,CAAE5O,KhChHM,0BgCgH+BiB,MAAO4L,IACvD0O,EACN,MACJ,IAAK,YACDJ,EAAcja,UAAYka,GAA0BhT,EAAMyE,EAAO,GAAI,GACrE,MACJ,IAAK,WACDsO,EAAcha,SAAWia,GAA0BhT,EAAMyE,EAAO,GAAI,GACpE,MACJ,IAAK,QACD,IAAI2O,EAAWJ,GAAyBvO,GACvB,KAAb2O,IACAtb,EAAU,qDAAuD2M,EAAQ,IACzE6L,EAAa/W,KAAKC,UAAUiL,GAC5BmM,EAAa9Y,EAvCR,qBAuC6BwY,IAEtCyC,EAAc/Z,MAAsB,KAAboa,EACjB5M,EAAS,CAAE5O,KhCrIa,iCgCqI+BoB,MAAOyL,IAC9D2O,EACN,MACJ,IAAK,WACDL,EAAc9Z,SAAW+Z,GAA4BvO,GACjDlN,EAAKmb,kBACLK,EAAcL,gBAAkBM,GAAmCzb,EAAKmb,gBAAiBjO,IAE7F,MACJ,IAAK,kBACDsO,EAAcL,gBAAkBM,GAAmCvO,EAAOlN,EAAK0B,UAC/E,MACJ,IAAK,eACD8Z,EAAc7Z,aAAeuL,EAAQ,GAAK,oCAC1C,MACJ,IAAK,cACDsO,EAAc5Z,YAAc6Z,GAAyBvO,GAM7DgO,EAAQ,IAAKlb,EAAM,CAACyI,GAAOyE,IAC3BkO,EAAUI,IAGRH,EAAYA,MACRJ,GAAiCjb,EAAKqB,KAAQrB,EAAKsB,QACjDtB,EAAKuB,WAAcvB,EAAKwB,UAAaxB,EAAKyB,OAAUzB,EAAK0B,UAAa1B,EAAKmb,iBAAoBnb,EAAK2B,gBACpGsZ,GAAgCjb,EAAK4B,cACrC6Z,GAAwBtU,GAG5B2T,GAAkB,GAFlBA,GAAkB,IAMpBzB,EAAeA,CAAC9Y,EAASuY,EAAYC,KAQvCK,EAPmB,CACf7Y,QAASA,EACTsY,SAAU,SACVC,WAAYA,EACZC,WAAYA,IAIsB,OAAlCnQ,EAAmBkQ,YACnB7J,EAAS,CAAE5O,KhCnFO,iBgCmFqBuI,qBAAoB5I,UAInE,OAAOmO,IAAAC,cAAA,WACDuM,EAiGExM,IAAAC,cAAA,WACID,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACJ9R,EACGmK,IAAAC,cAAC4K,GAAW,CAACvX,MAAOzB,EAAKyB,QAEzB0M,IAAAC,cAAA,QAAMC,UAAU,SACXxK,MAvGrBsK,IAAAC,cAAA,OAAKC,UAAU,WACXF,IAAAC,cAACuH,GAAa,KAAC,YACfxH,IAAAC,cAAA,SAAG,kDACHD,IAAAC,cAAA,OAAKC,UAAU,aACXF,IAAAC,cAAA,SAAG,6BACHD,IAAAC,cAAC0N,KAAI,CAACzN,UAAU,OAAO0N,SApKhBzb,IACnBA,EAAEmZ,iBACF,IAAIlZ,EAAU,6CAA+CP,EAAKuB,UAAY,IAAMvB,EAAKwB,SAAW,IAEpG,IAAIwa,EAAgB,IAAKhc,EAAM0B,SAAU,GAAIyZ,gBAAiB,IAC9D,IAAIpC,EAAa/W,KAAKC,UAAU+Z,GAChC3C,EAAa9Y,EAHI,gBAGiBwY,GAClC9J,EAAS,CACL5O,KhC9CiC,gCgC8CUgB,IAAKrB,EAAKqB,IAAKC,MAAOtB,EAAKsB,MAAOC,UAAWvB,EAAKuB,UAAWC,SAAUxB,EAAKwB,SAAUC,MAAOzB,EAAKyB,MAAOC,SAAU1B,EAAK0B,SAAUC,aAAc3B,EAAK2B,aAAcC,YAAa5B,EAAK4B,iBA6JlNqZ,GACE9M,IAAAC,cAACwH,KAAG,CAACqG,MAAI,GACL9N,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,CAACsB,IAAI,OAAM,sCACjBlJ,IAAAC,cAACmJ,KAAK,CAAClJ,UAAYlH,EAAO9F,IAAIZ,OAAS,EAAI,cAAgB,GAAKJ,KAAK,OAAOoI,KAAK,MAAMhD,GAAG,MAAMyH,MAAOlN,EAAKqB,KAAO,GAAIsV,SAAU+E,EAAoBjD,aAAa,QACjKtR,EAAO9F,IAAIZ,OAAS,GACjB0N,IAAAC,cAAA,QAAMC,UAAU,SAASlH,EAAO9F,OAG5C8M,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,CAACsB,IAAI,SAAQ,UACnBlJ,IAAAC,cAACmJ,KAAK,CAAClJ,UAAYlH,EAAO7F,MAAMb,OAAS,EAAI,cAAgB,GAAKJ,KAAK,OAAOoI,KAAK,QAAQhD,GAAG,QAAQyH,MAAOlN,EAAKsB,OAAS,GAAIqV,SAAU+E,EAAoBjD,aAAa,QACzKtR,EAAO7F,MAAMb,OAAS,GACnB0N,IAAAC,cAAA,QAAMC,UAAU,SAASlH,EAAO7F,UAKpD6M,IAAAC,cAACwH,KAAG,CAACqG,MAAI,GACL9N,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,CAACsB,IAAI,aAAY,sBACvBlJ,IAAAC,cAACmJ,KAAK,CAAClJ,UAAYlH,EAAO5F,UAAUd,OAAS,EAAI,cAAgB,GAAKJ,KAAK,OAAOoI,KAAK,YAAYhD,GAAG,YAAYyH,MAAOlN,EAAKuB,WAAa,GAAIoV,SAAU+E,EAAoBjD,aAAa,MAAMC,OAAQ4C,IACvMnU,EAAO5F,UAAUd,OAAS,GACvB0N,IAAAC,cAAA,QAAMC,UAAU,SAASlH,EAAO5F,aAG5C4M,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,CAACsB,IAAI,YAAW,qBACtBlJ,IAAAC,cAACmJ,KAAK,CAAClJ,UAAYlH,EAAO3F,SAASf,OAAS,EAAI,cAAgB,GAAKJ,KAAK,OAAOoI,KAAK,WAAWhD,GAAG,WAAWyH,MAAOlN,EAAKwB,UAAY,GAAImV,SAAU+E,EAAoBjD,aAAa,MAAMC,OAAQ4C,IACnMnU,EAAO3F,SAASf,OAAS,GACtB0N,IAAAC,cAAA,QAAMC,UAAU,SAASlH,EAAO3F,aAI/CyZ,GACG9M,IAAAC,cAACwH,KAAG,CAACqG,MAAI,GACL9N,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,YACZoI,KAAK,cACLhD,GAAG,cACHwQ,MAAM,gBACN/I,MAAOlN,EAAK4B,aAAe,GAC3B+U,SAAU+E,EACV7X,MAAOsD,EAAOvF,YACduU,YAAY,eACZK,KAAK,mBAKrBrI,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,CAACsB,IAAI,SAAQ,iBACnBlJ,IAAAC,cAACmJ,KAAK,CAAClJ,UAAYlH,EAAO1F,MAAMhB,OAAS,EAAI,cAAgB,GAAKJ,KAAK,QAAQoI,KAAK,QAAQhD,GAAG,QAAQyH,MAAOlN,EAAKyB,OAAS,GAAIkV,SAAU+E,EAAoBjD,aAAa,MAAMC,OAAQ4C,IACxLnU,EAAO1F,MAAMhB,OAAS,GACnB0N,IAAAC,cAAA,QAAMC,UAAU,SAASlH,EAAO1F,QAGxC0M,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,CAACsB,IAAI,YAAW,YACtBlJ,IAAAC,cAACmJ,KAAK,CAAClJ,UAAYlH,EAAOzF,SAASjB,OAAS,EAAI,cAAgB,GAAKJ,KAAK,WAAWoI,KAAK,WAAWhD,GAAG,WAAWyH,MAAOlN,EAAK0B,UAAY,GAAIiV,SAAU+E,IACxJvU,EAAOzF,SAASjB,OAAS,GACtB0N,IAAAC,cAAA,QAAMC,UAAU,SAASlH,EAAOzF,WAGxCyM,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,CAACsB,IAAI,mBAAkB,oBAC7BlJ,IAAAC,cAACmJ,KAAK,CAAClJ,UAAYlH,EAAOgU,gBAAgB1a,OAAS,EAAI,cAAgB,GAAKJ,KAAK,WAAWoI,KAAK,kBAAkBhD,GAAG,kBAAkByH,MAAOlN,EAAKmb,iBAAmB,GAAIxE,SAAU+E,IACpLvU,EAAOgU,gBAAgB1a,OAAS,GAC7B0N,IAAAC,cAAA,QAAMC,UAAU,SAASlH,EAAOgU,kBAGxChN,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,SACZoI,KAAK,eACLhD,GAAG,eACHwQ,MAAM,gBACNC,QAAS6E,EACTpE,SAAU+E,EACV7X,MAAOsD,EAAOxF,aACduL,MAAOlN,EAAK2B,cAAgB,KAGhCwM,IAAAC,cAAC+B,KAAM,CAAC9B,UAAU,aAAa6N,KAAK,KAAKC,OAAK,EAAC1F,SAAUoE,GAAgB,uBCnSpFuB,GAAkBpN,IAC3B,MAAMC,EAAWC,cACX1K,EAAoB8K,YAAavP,GAAUA,EAAMC,KAAKwE,mBACtD6X,EAAa/M,YAAavP,GAAUA,EAAMC,KAAK4J,sBAC9CnI,EAAO6a,GAAY7M,mBAAS,KAC5B8M,EAAeC,GAAoB/M,oBAAS,GAC7C5P,EAAWyP,YAAavP,GAAUA,EAAMC,KAAKH,WAE5CsH,EAAQiU,GAAa3L,mBAAS,CACjChO,MAAO,MAEJmH,EAAoBwQ,GAAyB3J,mBAASmJ,IAE7D9I,oBAAU,KACN,IAAIoF,EAAQuH,GAAyBtV,GAGjCqV,GADA/a,IAASyT,IAMd,CAACzT,IAEJ,MAiBM4X,EAAeA,CAAC9Y,EAASuY,EAAYC,KAQvCK,EAPmB,CACf7Y,QAASA,EACTsY,SAAU,iBACVC,WAAYA,EACZC,WAAYA,IAIsB,OAAlCnQ,EAAmBkQ,YACnB7J,EAAS,CAAE5O,KjC4DO,iBiC5DqBuI,qBAAoB/I,cAKnE,OAAOsO,IAAAC,cAAA,OAAKC,UAAU,WAClBF,IAAAC,cAACuH,GAAa,KAAC,yBACfxH,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZgU,UAAQ,EACR5L,KAAK,QACLhD,GAAG,QACHwQ,MAAM,6DACNpS,MAAOsD,EAAO1F,MACdkV,SA1CInE,IAChB,MAAM,MAAEtF,GAAUsF,EAAMjE,OACxB,IAAImO,EAAO,IAAKvV,GAChBuV,EAAKjb,MAAQgb,GAA0BvP,GACvCoP,EAASpP,GACTkO,EAAUsB,IAsCEvG,YAAY,mBACZjJ,MAAOzL,MAInB0M,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC+B,KAAM,CAAC9B,UAAU,kBAAkBoI,SAAU8F,EAAeL,KAAK,QAAQ9L,QAzC/D9P,IACnB,IAAIC,EAAU,qDAAuDkB,EAAQ,IAEzEsX,EAAa/W,KAAKC,UAAUpC,GAChCwZ,EAAa9Y,EAFI,gBAEiBwY,GAClC9J,EAAS,CAAE5O,KjCsDkB,wBiCtDiBoB,MAAOA,MAoCuD,sBAG1G+C,EACE2J,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACL3H,IAAAC,cAAA,YAAM,sHAIL,GACZiO,EACGlO,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACL3H,IAAAC,cAAA,QAAMC,UAAU,cACXgO,KAGJ,K,aCzFd,MAAMM,GAAiB3N,IAC1B,MAAMC,EAAWC,cACXC,EAAUC,eACV3K,EAAe6K,YAAavP,GAAUA,EAAMC,KAAKyE,cACjDmY,EAA6BtN,YAAavP,GAAUA,EAAMC,KAAK6D,QAC9DgZ,EAAaC,GAAkBrN,mBAAS,KACxC0L,EAAiB4B,GAAsBtN,mBAAS,KAChDuN,EAAmBC,GAAwBxN,oBAAS,IACpD7P,EAAQsd,GAAazN,mBAAS,OAC9B7G,EAAoBwQ,GAAyB3J,mBAASmJ,KAGtDzR,EAAQiU,GAAa3L,mBAAS,CACjCoN,YAAa,GACb1B,gBAAiB,KAGrBrL,oBAAU,KACN,MAAM,SAAEmJ,GAAajK,EACfmO,EAAiBlE,EAASmE,OAASC,SAAkBpE,EAASmE,QAC9DnE,EAASqE,YAAcD,SAAkBpE,EAASqE,aAAe,KACvEJ,EAAUC,IAEX,IAEHrN,oBAAU,KACN,IAAIoF,EAAQuH,GAAyBtV,GAGjC8V,KAFA/H,GAAS2H,GAAe1B,KAO7B,CAAChU,EAAQ0V,EAAa1B,IAEzB,MAAMoC,EAAc/K,IAChB,MAAM,KAAE/J,EAAI,MAAEyE,GAAUsF,EAAMjE,OAC9B,IAAImO,EAAO,IAAKvV,GAChB,OAAQsB,GACJ,IAAK,cACDiU,EAAKG,YAAcJ,GAA6BvP,GAC5CiO,IACAuB,EAAKvB,gBAAkBsB,GAAoCtB,EAAiBjO,IAEhF4P,EAAe5P,GACf,MACJ,IAAK,kBACDwP,EAAKvB,gBAAkBsB,GAAoCvP,EAAO2P,GAClEE,EAAmB7P,GAG3BkO,EAAUsB,IAgCRrD,EAAeA,CAAC9Y,EAASuY,EAAYC,KAQvCK,EAPmB,CACf7Y,QAASA,EACTsY,SAAU,gBACVC,WAAYA,EACZC,WAAYA,IAIsB,OAAlCnQ,EAAmBkQ,YACnB7J,EAAS,CAAE5O,KlCcO,iBkCdqBuI,mBAAoBA,EAAoB/I,SAAUD,EAAO6B,SAIxG,OAAO0M,IAAAC,cAAA,OAAKC,UAAU,WAClBF,IAAAC,cAACuH,GAAa,KAAC,uBACfxH,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,WACZgU,UAAQ,EACR5L,KAAK,cACLhD,GAAG,cACHwQ,MAAM,eACNpS,MAAOsD,EAAO0V,YACd1G,YAAY,eACZQ,SAAU4G,EACVrQ,MAAO2P,MAInB1O,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,WACZgU,UAAQ,EACR5L,KAAK,kBACLhD,GAAG,kBACHwQ,MAAM,mBACNpS,MAAOsD,EAAOgU,gBACdhF,YAAY,mBACZQ,SAAU4G,EACVrQ,MAAOiO,MAInBhN,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC+B,KAAM,CAAC9B,UAAU,kBAAkB6N,KAAK,QAAQzF,UAAWuG,EAAmB5M,QAzEzE9P,IAQd,IAAIC,EAAU,qDAAuDX,EAAO6B,MAAQ,IAEhFsX,EAAa/W,KAAKC,UAAUrC,EAAO6B,OAIvC4X,EAAa9Y,EALI,WAKiBwY,GAClC9J,EAAS,CAAE5O,KlCqBiB,uBkCrBiBqB,SAAUmb,EAAapb,MAAO7B,EAAO6B,MAAOyB,MAAOtD,EAAOsD,UA0DG,aAIzGuB,EACG0J,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACL3H,IAAAC,cAAA,YAAM,gDAC2CD,IAAAC,cAAA,KAAGE,KAAK,IAAI8B,QA/D1D9P,IACfA,EAAEmZ,iBACF,IAEIV,EAAa/W,KAAKC,UAAUrC,EAAO6B,OACvC4X,EAHc,2BACG,YAEiBN,GAClC5J,EAAQY,KAAK,OAyDgF,WAAW,OAE3F,GAEZ6M,EAA6BzO,IAAAC,cAACwH,KAAG,KAC1BzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACT3H,IAAAC,cAAA,QAAMC,UAAU,SACXuO,KAEA,KCtJRY,GAAgBxO,IACzB,MAAMC,EAAWC,cACXC,EAAUC,eACV1K,EAAgB4K,YAAavP,GAAUA,EAAMC,KAAK0E,eAClDb,EAAQyL,YAAavP,GAAUA,EAAMC,KAAK6D,QACzC4Z,EAAsBC,GAA2BjO,oBAAS,IAC1D7G,EAAoBwQ,GAAyB3J,mBAASmJ,IACvD/Y,EAAWyP,YAAavP,GAAmBA,EAAMC,KAAKH,UAE5DiQ,oBAAU,KACN,MAAM,SAAEmJ,GAAajK,EACfmO,EAAiBlE,EAASmE,OAASC,SAAkBpE,EAASmE,QAC9DnE,EAASqE,YAAcD,SAAkBpE,EAASqE,aAAe,KACvE,IAAI/c,EAAU,iDAAmD4c,EAAe1b,MAAQ,IAEpFsX,EAAa/W,KAAKC,UAAUkb,EAAeja,OAC/CmW,EAAa9Y,EAFI,cAEiBwY,GAElC9J,EAAS,CACL5O,KnCiFuB,sBmChFvBoB,MAAO0b,EAAe1b,MAAOyB,MAAOia,EAAeja,SAExD,IACH4M,oBAAU,MACFpL,IAAsB,OAALb,QAAK,IAALA,OAAK,EAALA,EAAOpD,QAAS,IACjCid,GAAwB,IAC7B,CAAChZ,EAAeb,IAEnB,MASMwV,EAAeA,CAAC9Y,EAASuY,EAAYC,KAQvCK,EAPmB,CACf7Y,QAASA,EACTsY,SAAU,eACVC,WAAYA,EACZC,WAAYA,IAIsB,OAAlCnQ,EAAmBkQ,YACnB7J,EAAS,CAAE5O,KnCgEO,iBmChEqBuI,qBAAoB/I,cAInE,OAAOsO,IAAAC,cAAA,WAEFqP,GACGtP,IAAAC,cAAA,WACID,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACRpR,EACOyJ,IAAAC,cAAA,YAAM,6DACwDD,IAAAC,cAAA,KAAGE,KAAK,IAAI8B,QA/B/E9P,IACfA,EAAEmZ,iBACF,IAEIV,EAAa/W,KAAKC,UAAUpC,GAChCwZ,EAHc,2BACG,YAEiBN,GAClC5J,EAAQY,KAAK,OAyBqG,WAAW,KAGzG5B,IAAAC,cAAA,QAAMC,UAAU,cACXxK,Q,yBCrE1B,MAAM8Z,GAAmBA,IACrBxP,IAAAC,cAAA,OAAKC,UAAU,qBAClBF,IAAAC,cAAA,OAAK4B,IAAK4N,KAAa1N,IAAI,kBAAkB7B,UAAU,aCMlDwP,GAAW7O,IACpB,MAAMC,EAAWC,cACXC,EAAUC,eACVvP,EAAWyP,YAAavP,GAAUA,EAAMC,KAAKH,UAC7CgE,EAAQyL,YAAavP,GAAUA,EAAMC,KAAK6D,OAC1C2F,EAAa8F,YAAavP,GAAUA,EAAMC,KAAKwJ,aAC9C7G,EAAUmb,GAAerO,mBAAS,OAClC/N,EAAUqc,GAAetO,mBAAS,OAClCuO,EAAqBC,GAA0BxO,oBAAS,IACxDE,EAASuO,EAAWtO,GAAgBC,aAAW,CAAC,UAChDsO,EAAkBC,GAAuB3O,oBAAS,IAClD4O,EAAaC,GAAkB7O,oBAAS,IACxC8O,EAAWC,GAAgB/O,oBAAS,IAEnCuI,QAASyG,GAAyB/E,GAAe,0CAClD9Q,EAAoBwQ,GAAyB3J,mBAASmJ,IACvD8F,EAAqBpP,YAAavP,GAAUA,EAAMoN,wBAAwBlB,cAC1E0S,EAAgBrP,YAAavP,GAAUA,EAAMoN,wBAAwBhB,mBAE3E2D,oBAAU,KAC2B,SAA7BH,EAAQwO,mBACRC,GAAoB,GAChBzO,EAAQ3K,UACR8Y,EAAYnO,EAAQ3K,WAI5BiK,EAAS,CAAE5O,KrC2EuB,gCqC1EnC,IAEHyP,oBAAU,KACN,IAAIvP,EAAU,GACVuY,EAAa,yCACbC,EAAa,GAEjB,IAAKvP,EACD,GAAI3J,GAAsB,OAAVgE,EAAgB,CAG5B,GAFAoa,GAAuB,GACvBC,EAAU,mBAAoBC,EAAkB,CAAES,KAAM,IAAKC,OAAQ,UACjEV,EAAkB,CAClB,IAAIxJ,EAAO,IAAIF,KACfE,EAAKmK,QAAQnK,EAAKoK,UAAY,IAC9Bb,EAAU,WAAYvb,EAAU,CAAEic,KAAM,IAAKC,OAAQ,eAGrDjP,EAAa,YAGjBrP,EAAU,4BACVwY,EAAa/W,KAAKC,UAAUU,GAC5B0W,EAAa9Y,EAASuY,EAAYC,GAClC9J,EAAS,CAAE5O,KrCpBwB,sCqCoByBsC,SAAUA,SAEpD,OAAb9C,GAAqBgE,IAC1BtD,EAAU,qBAAuBoC,EAAW,IAC5CoW,EAAa/W,KAAKC,UAAUU,GAC5Bqc,EAAgBze,EAASuY,EAAYC,GACjClV,EAAMyU,SAAS,2BACfkG,GAAa,GAEbP,GAAuB,GAE3BK,GAAe,KAGxB,CAACze,EAAU2J,EAAY3F,IAE1BiM,oBAAU,KAEN,GADAhN,QAAQC,IAAI2b,IACPC,EAAe,CAChB,IAAIpe,EAAU,yDACVwY,EAAa/W,KAAKC,UAAUU,GAChCqc,EAAgBze,EAAS,2BAA4BwY,GACrDuF,GAAe,GACfnP,EAAQY,KAAK,gBAElB,CAAC4O,IAEJ,MAuCMtF,EAAeA,CAAC9Y,EAASuY,EAAYC,KAQvCK,EAPmB,CACf7Y,QAASA,EACTsY,SAAU,UACVC,WAAYA,EACZC,WAAYA,IAIsB,OAAlCnQ,EAAmBkQ,YACnB7J,EAAS,CAAE5O,KrClBO,iBqCkBqBuI,qBAAoB/I,cAI7Dmf,EAAkBA,CAACze,EAASuY,EAAYC,KAQ1CK,EAPmB,CACf7Y,QAASA,EACTsY,SAAU,UACVC,WAAYA,EACZC,WAAYA,IAIhB9J,EAAS,CAAE5O,KrC7Bc,oBqC6BiBuI,qBAAoB/I,cAGlE,OAAOsO,IAAAC,cAAA,OAAKC,UAAU,WAClBF,IAAAC,cAAC0N,KAAI,CAACC,SArCazb,IACnBA,EAAEmZ,iBACF,IAAIlZ,EAAUoC,EAAW,iCAErBoW,EAAa/W,KAAKC,UAAUU,GAChC0W,EAAa9Y,EAFI,gBAEiBwY,GAClC9J,EAAS,CAAE5O,KrCzGuB,6BqCyGiBsC,SAAUA,EAAUjB,SAAUA,IACjF4c,GAAe,KA+BXnQ,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAAA,UAAI,wBAERD,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,EAAGzH,UAAU,eAClBF,IAAAC,cAAA,MAAIC,UAAU,mBAAkB,qBAChCF,IAAAC,cAAA,KAAGC,UAAU,YAAW,2KAGxBF,IAAAC,cAAA,WACAD,IAAAC,cAAA,KAAGC,UAAU,YAAW,gCACxBF,IAAAC,cAAA,MAAIC,UAAU,YACVF,IAAAC,cAAA,UAAI,uFACJD,IAAAC,cAAA,UAAI,+CACJD,IAAAC,cAAA,UAAI,6DACJD,IAAAC,cAAA,UAAI,kDACJD,IAAAC,cAAA,UAAI,uEACJD,IAAAC,cAAA,UAAI,iDAERD,IAAAC,cAAA,WACAD,IAAAC,cAAA,KAAGC,UAAU,YAAW,0FACpBF,IAAAC,cAAA,cAAQ,qEAA0E,gHACtFD,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,SAASgO,UAAU,+BAA+BnB,MAAM,WAAWkD,QArF3E9P,IAAO,IAAD2e,EAClB1e,EAAU,6BAEVwY,EAAqC,QAA3BkG,EAAGjd,KAAKC,UAAUU,UAAS,IAAAsc,IAAI,KAQ7C7F,EAPmB,CACf7Y,QAASA,EACTsY,SAAU,UACVC,WALa,aAMbC,WAAYA,IAIhBM,EAAa9Y,EAVI,aAUiBwY,GAClC5J,EAAQY,KAAK,eA0EL5B,IAAAC,cAACyH,KAAG,CAACC,GAAI,EAAGzH,UAAU,eAElBF,IAAAC,cAAA,MAAIC,UAAU,mBAAkB,mBAChCF,IAAAC,cAAA,WAAKD,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,YAAW,wBAChC2P,EAAsB7P,IAAAC,cAAA,WAAKD,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,cAAa,+BAA2C,GAEjGgQ,EACIlQ,IAAAC,cAACuP,GAAgB,MACjBxP,IAAAC,cAAA,WAEID,IAAAC,cAACmJ,KAAK,CAAClD,UAAQ,EAAChU,KAAK,OAAOgO,UAAU,QAAQ8H,YAAY,gBAAgBjJ,MAAOvK,EAAUgU,SAAWrW,GAAMwd,EAAYxd,EAAEiO,OAAOrB,SACjIiB,IAAAC,cAACmJ,KAAK,CAAClD,UAAQ,EAAChU,KAAK,WAAWgO,UAAU,QAAQ8H,YAAY,WAAWjJ,MAAOxL,EAAUiV,SAAWrW,GAAMyd,EAAYzd,EAAEiO,OAAOrB,SAChIiB,IAAAC,cAACwH,KAAG,CAACvH,UAAU,oBACXF,IAAAC,cAACyH,KAAG,KAAC1H,IAAAC,cAACmJ,KAAK,CAAClJ,UAAU,YAAYhO,KAAK,WAAWmX,QAAS2G,EAAkB/N,QAAU9P,GAxGzFA,KAC1B8d,EAAoB9d,IAuGqG4e,CAAqB5e,EAAEiO,OAAOiJ,WAAY,gBACvIrJ,IAAAC,cAACyH,KAAG,KAAC1H,IAAAC,cAAA,KAAGE,KAAK,IAAI8B,QArFrB9P,IACxBA,EAAEmZ,iBACF,IAEIV,EAAa/W,KAAKC,UAAUU,GAChC0W,EAHc,qCACG,qBAEiBN,GAClC5J,EAAQY,KAAK,qBA+E8D,qBAAqB,MAGxE5B,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,SAASgO,UAAU,sBAAsBnB,MAAM,cAK/EiB,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,IAAI3H,IAAAC,cAAA,QAAMC,UAAU,cAAa,cAC1CF,IAAAC,cAACyH,KAAG,CAACC,GAAI,IAAI3H,IAAAC,cAAA,QAAMC,UAAU,gBAAe,mBAC5CF,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACL3H,IAAAC,cAAA,SAAGD,IAAAC,cAAA,KAAGG,OAAO,SAASC,IAAI,aAAaF,KAAK,qHAAoH,8BAChKH,IAAAC,cAAA,SAAGD,IAAAC,cAAA,KAAGG,OAAO,SAASC,IAAI,aAAaF,KAAK,8GAA6G,qCAIrKH,IAAAC,cAACuE,KAAK,CAACC,OAAQ2L,EAAWlQ,UAAU,4CAChCF,IAAAC,cAAC0E,KAAW,CAACqM,MAAOhR,IAAAC,cAAC+B,KAAM,CAACgP,OAAK,EAAC/O,QAASA,KAAQoO,GAAa,QAChErQ,IAAAC,cAAC2E,KAAS,KACN5E,IAAAC,cAAC4K,GAAW,CAACvX,MAAOkB,EAAUuW,iBAAkBA,KAAQsF,GAAa,UChNxEY,GAAWpQ,IACpB,IAAI,KAAEuK,EAAI,MAAExI,EAAK,YAAEsO,EAAW,OAAEC,EAAM,KAAEC,EAAI,gBAAEC,EAAe,MAAEta,GAAU8J,EACzE,MAAQgJ,QAASiD,GAAgCvB,GAAe,yCAEhE,OAAK6F,EAODtE,EACO9M,IAAAC,cAAA,OAAKC,UAAU,WAClBF,IAAAC,cAAA,OAAKC,UAAU,oBAAoB0C,GACnC5C,IAAAC,cAAA,OAAKC,UAAU,0BAA0BgR,GACzClR,IAAAC,cAACqR,IAAI,CAACpR,UAAU,qBAAqBqR,GAAIH,GAAc,GAAInP,QAASoP,GAChErR,IAAAC,cAAA,MAAIC,UAAU,QAAQiR,KAKvBnR,IAAAC,cAACqR,IAAI,CAACpR,UAAU,WAAWqR,GAAIH,EAAO,CACzC1O,SAAU0O,EACVxf,MAAO,CAAEmF,MAAOA,IAClB,GACEkL,QAASoP,GACTrR,IAAAC,cAAA,MAAIC,UAAU,qBAAqB0C,GACnC5C,IAAAC,cAAA,OAAKC,UAAU,2BAA2BgR,IAtBvClR,IAAAC,cAAA,OAAKC,UAAU,WAClBF,IAAAC,cAAA,OAAKC,UAAU,oBAAoB0C,GACnC5C,IAAAC,cAAA,OAAKC,UAAU,0BAA0BgR,GACzClR,IAAAC,cAAC+B,KAAM,CAAC9B,UAAU,qBAAqB+B,QAASoP,GAAiBrR,IAAAC,cAAA,MAAIC,UAAU,QAAQiR,MCdtFK,GAA0B,CACnCC,8BAA+B,kCAC/BC,qDAAsD,iEACtDC,2CAA4C,qDAC5CC,mBAAoB,uBACpBC,iBAAkB,oBAClBC,qBAAsB,yBACtBC,iBAAkB,oBAClBC,kEAAmE,+EACnEC,sBAAuB,yBACvBC,OAAQ,SACRC,gBAAiB,mBACjBC,SAAU,YACVC,mDAAoD,8DACpDC,aAAc,iBACdC,kCAAmC,0CACnCC,4BAA6B,mCAC7BC,UAAW,uBACXC,QAAS,UACTC,QAAS,WAGbjZ,OAAOC,OAAO6X,I,gCCNP,MAAMoB,GAAqB/R,IAC9B,IAAI,OAAEvP,EAAM,YAAE4f,EAAW,gBAAE2B,EAAe,MAAE9b,EAAK,IAAEqI,GAAQyB,EAC3D,MAAOiS,EAAMC,GAAWzR,mBAAS,IAC3BR,EAAWC,cACXC,EAAUC,gBAETO,EAASuO,GAAarO,aAAW,CAAC,qBAClCjH,EAAoBwQ,GAAyB3J,mBAASmJ,IACvD/Y,EAAWyP,YAAavP,GAAUA,EAAMC,KAAKH,UAC7CmH,EAAqBsI,YAAavP,GAAUA,EAAMoN,wBAAwBnG,qBACzEkF,EAAyBiV,GAA8B1R,oBAAS,GAEjE2R,EAAY,CACdC,WAAW,EACXC,UAAW,GACXC,gBAAiB,GACjBC,iBAAkBA,SAEfC,EAAOC,GAAYjS,mBAAS2R,GAC7BvO,EAASA,IAAM6O,EAASN,IAEvBO,EAAaC,GAAkBnS,oBAAS,GAC/C,IAAIoS,EAAc,6BACdtU,IACIA,EAAIuU,eAAiBnC,GAAwBkB,SAAWtT,EAAIuU,eAAiBnC,GAAwBmB,QACrGe,EAAc,kCAEe,MAAxBtU,EAAIyT,iBAA2BzT,EAAIuU,eAAiBnC,GAAwBK,iBACjF6B,EAAc,4BAEe,MAAxBtU,EAAIyT,iBAA2BzT,EAAIuU,eAAiBnC,GAAwBK,mBACjF6B,EAAc,gCAGtB,IAAIE,EAAY,UACQ,MAApBf,GAA2BvhB,IAAWkgB,GAAwBK,iBAC9D+B,EAAY,UAEa,MAApBf,GAA2BvhB,IAAWkgB,GAAwBK,mBACnE+B,EAAY,WAGhB,MAsBMC,EAA0BzU,IAtBX8L,EAAC9Y,EAASuY,EAAYC,KAQvCK,EAPmB,CACf7Y,QAASA,EACTsY,SAAU,sBACVC,WAAYA,EACZC,WAAYA,IAIsB,OAAlCnQ,EAAmBkQ,YACnB7J,EAAS,CAAE5O,KxCoDO,iBwCpDqBuI,qBAAoB/I,cAgB/DwZ,CAHc,qCACG,yBACArX,KAAKC,UAAUsL,IAEhC2Q,EAAU,kBAAmB,OAAQ,CAAEU,KAAM,IAAKC,OAAQ,UAC1D5P,EAAS,CAAE5O,KxC3BkC,wCwC2BiBoF,GAAI8H,EAAI9H,KACtEoN,KAGEoP,EAAsBA,KACxBL,GAAgBD,IAGdrc,EAAqB4c,IACvBjT,EAAS,CAAE5O,KxChC0B,gCwCgCiB6E,MAAOgd,IAC7Df,GAA2B,IAG/BrR,oBAAU,KACF9I,GAAsBkF,GACtBiD,EAAQY,KAAK,yBAElB,CAAC/I,IAEJ8I,oBAAU,KACN,GAAIvC,EAAK,CACL,IAAI4U,EAAW,GACf,GAAO,OAAH5U,QAAG,IAAHA,OAAG,EAAHA,EAAK6U,gBAAiB,CACtB,IAAIhb,EAAU,OAAHmG,QAAG,IAAHA,OAAG,EAAHA,EAAK6U,gBAChB,IAAK,IAAIC,EAAI,EAAGA,EAAIjb,EAAK3G,OAAQ4hB,IAAK,CAClC,IAAIC,EAAKlb,EAAKib,GAAG5Z,KAAO,KAAOrB,EAAKib,GAAG7gB,SAAW4F,EAAKib,GAAG7gB,SAAW,IACrE2gB,EAASpS,KAAK,CACVtK,GAAI2B,EAAKib,GAAGE,aACZ9Z,KAAM6Z,EACNjhB,IAAK+F,EAAKib,GAAGhhB,OAKzB6f,EAAQiB,KAEb,CAAC5U,IAEJ,MAAMiV,EAAU,CACZ,CACI9M,MAAO,OACP+M,WAAY,gBACZC,KAAM,EACNC,gBAAiB,kBACjBC,YAAa,SACbC,MAAO,UAEX,CACInN,MAAO,MACP+M,WAAY,MACZpiB,KAAM,SACNqiB,KAAM,EACNC,gBAAiB,kBACjBC,YAAa,SACbC,MAAO,WAKf,OAAItV,EACIA,EAAIuU,eAAiBnC,GAAwBkB,SAAWtT,EAAIuU,eAAiBnC,GAAwBmB,QAC9F3S,IAAAC,cAAA,OAAKC,UAAU,WAClBF,IAAAC,cAAA,OAAKC,UAAW,oCAAsCwT,GAClD1T,IAAAC,cAAA,OAAKC,UAAU,UACVd,EAAIuV,WAET3U,IAAAC,cAAA,OAAKC,UAAU,SACXF,IAAAC,cAAC+B,KAAM,CAACC,QAASA,IAjFV7C,KACvBmU,EAAS,CACLL,WAAW,EACXC,UAAW,iHACXC,gBAAiB,OACjBC,iBAAkBA,KAAQQ,EAAuBzU,OA4Ed/H,CAAkB+H,IACrCY,IAAAC,cAACkL,KAAe,CAACjL,UAAU,gBAAgBkL,KAAMwJ,UAI7D5U,IAAAC,cAAA,OAAKC,UAAU,OACXF,IAAAC,cAAA,OAAKC,UAAU,aACXF,IAAAC,cAAA,OAAKC,UAAU,2BAA2B,QAAUd,EAAIyV,UACxD7U,IAAAC,cAAA,OAAKC,UAAU,2BAA2B,WAAad,EAAIjM,SAGnE6M,IAAAC,cAAA,OAAKC,UAAU,OACXF,IAAAC,cAAA,OAAKC,UAAU,cACXF,IAAAC,cAAA,OAAKC,UAAU,UACVsT,EAAcxT,IAAAC,cAACkL,KAAe,CAACC,KAAM0J,KAAc7S,QAAS6R,IACvD9T,IAAAC,cAACkL,KAAe,CAACC,KAAM2J,KAAa9S,QAAS6R,KAEvD9T,IAAAC,cAAA,OAAKC,UAAU,UAAS,cAI3BsT,EAAc,GACXxT,IAAAC,cAAA,OAAKC,UAAU,4BACXF,IAAAC,cAAC+U,KAAQ,CACLlC,KAAMA,EACNuB,QAASA,EACTY,SAAU,EACVC,UAAW,GACXC,aAAc,GACdC,WAAY,CACRC,cAAgB5jB,GACZuO,IAAAC,cAAA,OAAKC,UAAU,iBAAgB,+BAUvDF,IAAAC,cAAA,OAAKC,UAAU,OACXF,IAAAC,cAAC+B,KAAM,CAAC9B,UAAU,sBAAsB+B,QAASA,IAAM9K,EAAkBiI,EAAI9H,KAEzE0I,IAAAC,cAAA,MAAIC,UAAU,QAAO,0BAI7BF,IAAAC,cAACuE,KAAK,CAACC,OAAQ6O,EAAMJ,UAAWxO,OAAQA,GACpC1E,IAAAC,cAAC2E,KAAS,KACL0O,EAAMH,WAEXnT,IAAAC,cAAC4E,KAAW,KACR7E,IAAAC,cAAC+B,KAAM,CAACsT,MAAM,UAAUrT,QAASqR,EAAMD,kBAAmBC,EAAMF,iBAA0B,IAC1FpT,IAAAC,cAAC+B,KAAM,CAACsT,MAAM,YAAYrT,QAASyC,GAAQ,aAKpD1E,IAAAC,cAAA,OAAKC,UAAU,WAClBF,IAAAC,cAAA,OAAKC,UAAW,uBAAyBwT,GACpCtU,EAAIuV,WAGT3U,IAAAC,cAAA,OAAKC,UAAU,OACXF,IAAAC,cAAA,OAAKC,UAAU,SACXF,IAAAC,cAAA,OAAKC,UAAU,2BAA2B,QAAUd,EAAIyV,UACxD7U,IAAAC,cAAA,OAAKC,UAAU,2BAA2B,WAAad,EAAIjM,QAE/D6M,IAAAC,cAAA,OAAKC,UAAU,SACXF,IAAAC,cAACsV,KAAmB,CAChBrV,UAAU,cACVnB,MAAOK,EAAIyT,gBACX3e,KAASkL,EAAIyT,gBAAP,IACN2C,YAAa,GACbxL,OAAQyL,aAAY,CAChBC,UAAW,QACX9B,UAAW,UACX+B,cAAe,aAK/B3V,IAAAC,cAAA,OAAKC,UAAU,OACXF,IAAAC,cAAA,OAAKC,UAAU,qBAAqB,eAAiBd,EAAIuU,cACzD3T,IAAAC,cAAA,OAAKC,UAAU,kCAAkCd,EAAIwW,qBAEzD5V,IAAAC,cAAA,OAAKC,UAAU,OACXF,IAAAC,cAAA,OAAKC,UAAU,cACXF,IAAAC,cAAA,OAAKC,UAAU,UACVsT,EAAcxT,IAAAC,cAACkL,KAAe,CAACC,KAAM0J,KAAc7S,QAAS6R,IACvD9T,IAAAC,cAACkL,KAAe,CAACC,KAAM2J,KAAa9S,QAAS6R,KAEvD9T,IAAAC,cAAA,OAAKC,UAAU,UAAS,cAI3BsT,EAAc,GACXxT,IAAAC,cAAA,OAAKC,UAAU,4BACXF,IAAAC,cAAC+U,KAAQ,CACLlC,KAAMA,EACNuB,QAASA,EACTY,SAAU,EACVC,UAAW,GACXC,aAAc,GACdC,WAAY,CACRC,cAAeA,IACXrV,IAAAC,cAAA,OAAKC,UAAU,iBAAgB,gCAY5C,YAAX5O,GAAmC,YAAXA,EACjB0O,IAAAC,cAAA,OAAKC,UAAU,cAClBF,IAAAC,cAAA,OAAKC,UAAU,6BAA4B,kEAG3CF,IAAAC,cAAA,OAAKC,UAAU,6BACXF,IAAAC,cAAC+B,KAAM,CAAC9B,UAAU,WAAW+B,QAASA,IAAM9K,EAAkBJ,IAC1DiJ,IAAAC,cAAA,MAAIC,UAAU,qBAAoB,yBAO9C5O,EACO0O,IAAAC,cAAA,OAAKC,UAAU,cAClBF,IAAAC,cAAA,OAAKC,UAAU,SACXF,IAAAC,cAACsV,KAAmB,CAChBxW,MAAO8T,EACP3e,KAAS2e,EAAH,IACN2C,YAAa,GACbxL,OAAQyL,aAAY,CAChBC,UAAW,QACX9B,UAAWA,EACX+B,cAAe,YAI3B3V,IAAAC,cAAA,OAAKC,UAAU,yCACXF,IAAAC,cAAA,OAAKC,UAAU,UAASF,IAAAC,cAAA,QAAMC,UAAU,eAAe5O,IACvD0O,IAAAC,cAAA,OAAKC,UAAU,UAAUgR,KAK9BlR,IAAAC,cAAA,OAAKC,UAAW,0BACnBF,IAAAC,cAAA,OAAKC,UAAU,UAAS,8D,yBCjT7B,MAAM2V,GAAgBA,IAClB7V,IAAAC,cAAA,OAAKC,UAAU,qBAClBF,IAAAC,cAAA,OAAK4B,IAAKiU,KAAe/T,IAAI,kBAAkB7B,UAAU,aCOpD6V,GAAclV,IACvB,IAAI,aAAEmV,EAAY,WAAEC,EAAU,YAAEC,EAAW,UAAEC,GAActV,EAE3D,MAAMC,EAAWC,cACXC,EAAUC,eACV6J,EAAWrI,gBACVjB,EAASuO,GAAarO,aAAW,CAAC,qBAElCjH,EAAoBwQ,GAAyB3J,mBAASmJ,KAEtDtX,EAAOijB,GAAY9U,mBAAS6U,GAAwB,KACpDE,EAAeC,GAAoBhV,oBAAS,IAC5C1C,EAAY2X,GAAiBjV,mBAAS,IACvCrL,EAAakL,YAAavP,GAAUA,EAAMC,KAAKoE,YAC/CugB,EAAgBrV,YAAavP,GAAUA,EAAMC,KAAK+M,YAClDvD,EAAa8F,YAAavP,GAAUA,EAAMC,KAAKwJ,YAC/C3J,EAAWyP,YAAavP,GAAUA,EAAMC,KAAKH,UAC7C8C,EAAW2M,YAAavP,GACnBA,EAAMC,KAAKH,SAAWE,EAAMC,KAAKH,SAASmF,SAAW,IAGhE8K,oBAAU,KACDtG,IACGpF,EACAsgB,EAActgB,GAETugB,GACLD,EAAc,mDAGvB,CAACtgB,EAAYugB,IAEhB7U,oBAAU,KACFtG,IAGiB,IAAjBlI,EAAMb,QAAiBsM,GAAe3I,GAAeugB,EAIrDF,GAAiB,GAHjBA,GAAiB,KAKtB,CAACnjB,EAAOyL,EAAY3I,EAAYugB,EAAenb,IAElD,MAiEMob,EAAaA,KACXxgB,GACA6K,EAAS,CAAE5O,K1C7FiB,6B0C+FhCkkB,EAAS,IACTG,EAAc,IACdN,KAkBJ,OAAOjW,IAAAC,cAACuE,KAAK,CAACtE,UAAU,eAAeuE,OAAQuR,GAC3ChW,IAAAC,cAAC2E,KAAS,KACN5E,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,CAACsB,IAAI,SAAQ,qCACnBlJ,IAAAC,cAACmJ,KAAK,CAAClJ,UAAY/M,EAAMb,OAAS,EAAI,cAAgB,GAAKJ,KAAK,OAAOoI,KAAK,QAAQhD,GAAG,QAAQyH,MAAO5L,GAAS,GAAIqV,SA/EzGnE,IAClB,IAAI,MAAEtF,GAAUsF,EAAMjE,OAClBhO,EAAU,GAEVwY,EAAa,GAEjBwL,EAASrX,GACT,IAAI0O,EAAWH,GAAyBvO,GACvB,KAAb0O,IACArb,EAAU,0CAA4C2M,EAAQ,IAC9D6L,EAAa/W,KAAKC,UAAUiL,GAxBfmM,EAAC9Y,EAASuY,EAAYC,KAQvCK,EAPmB,CACf7Y,QAASA,EACTsY,SAAU,YACVC,WAAYA,EACZC,WAAYA,IAIsB,OAAlCnQ,EAAmBkQ,YACnB7J,EAAS,CAAE5O,K1CsDO,iB0CtDqBuI,qBAAoB/I,cAe3DwZ,CAAa9Y,EARA,qBAQqBwY,IAGrB,KAAb6C,GACA3M,EAAS,CAAE5O,K1C1DgB,0B0C0DqBiB,MAAO4L,IAE3DwX,EAAc9I,IA8DsInD,aAAa,MAAMtE,UAAU,MACxKpH,EAAWtM,OAAS,GACjB0N,IAAAC,cAAA,QAAMC,UAAU,SAAStB,KAGrCoB,IAAAC,cAAC4E,KAAW,KACR7E,IAAAC,cAAC+B,KAAM,CAACsT,MAAM,UAAUrT,QAzBVyU,KAClB,IAAIC,EAAW7L,EAASpI,SACxB/N,QAAQC,IAAI+hB,GACK,yBAAbA,GAlBJT,EAAY/iB,GACZijB,EAAS,IACTG,EAAc,IACdN,KAkBsB,eAAbU,EA9CoBC,MAC7B,IAAKP,EACD,OAEJ,IAAI5W,EAAiB,CACjBjM,aAAc,GACdgB,SAAUA,EACVmgB,UAAW,KACXkC,oBAAqB,KACrBhC,SAAU,KACViC,eAAgB,KAChB3jB,MAAOA,EACP4jB,IAAK,KACLC,eAAgB,KAChBC,cAAe,KACfC,iBAAkBvb,GAClBwb,oBAAqB,MAEzBrW,EAAS,CAAE5O,K1C7DgC,sC0C6DiBgF,YAAauI,IACzEqB,EAAS,CAAE5O,K1C/Dc,oB0C+DiB6L,wBAAyB0B,IACnEsQ,EAAU,kBAAmB,QAAS,CAAEU,KAAM,IAAKC,OAAQ,UAC3D1P,EAAQY,KAAK,yBA0BTgV,GAGAH,KAegDnO,UAAW+N,GACtDhb,GAAc2E,IAAAC,cAAC4V,GAAa,OAC1Bxa,GAAc,YAErB2E,IAAAC,cAAC+B,KAAM,CAACsT,MAAM,OAAOrT,QAASwU,GAAY,aC/IzCW,GAAYA,KACrB,MAAQvN,QAASiD,GAAgCvB,GAAe,yCAC1DzK,EAAWC,cACX1O,EAAe8O,YAAavP,GAAUA,EAAM6M,UAAUpM,cACtDyL,EAAeqD,YAAavP,GAAUA,EAAMoN,wBAAwBlB,cACpEyS,EAAsC,OAAjBzS,GAAyBA,EAAaxL,OAAS,EAAIwL,EAAa,GAAKA,EAC1FxM,EAA2B,OAAlBif,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBoD,aAC7BzC,EAAgC,OAAlBX,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBqF,mBAClC/C,EAAoC,OAAlBtC,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBsC,gBACtC9b,EAA0B,OAAlBwZ,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBjZ,IAC3B+f,EAAyBC,GAA8BhW,oBAAS,IAChEiW,EAAsBC,GAA2BlW,oBAAS,IAC1DmW,EAAmBC,GAAwBpW,oBAAS,GAErD5P,EAAWyP,YAAavP,GAAUA,EAAMC,KAAKH,UAC7CsP,EAAUC,eACXvP,GACDsP,EAAQY,KAAK,KAGjB,MAAOnH,EAAoBwQ,GAAyB3J,mBAASmJ,KACtDuL,EAAc2B,GAAmBrW,oBAAS,IAC1CsW,EAAuBC,GAA4BvW,mBAAS,KAC5DwW,EAAoBC,GAAyBzW,mBAAS,KACtD0W,EAA0BC,GAA+B3W,mBAAS,IAGzEK,oBAAU,KACN,IAEIiJ,EAAa/W,KAAKC,UAAUpC,GAChCwZ,EAHc,2GACG,cAEiBN,GAClC9J,EAAS,CAAE5O,K3CqEa,qB2CpExB4O,EAAS,CAAE5O,K3CjD6B,qC2CkDxC4O,EAAS,CAAE5O,K3C9CmB,4B2C+C/B,IAGHyP,oBAAU,KACN,IAAIuW,EAAyB,OAAZpa,QAAY,IAAZA,OAAY,EAAZA,EAActE,QAAO,SAAU4F,GAC5C,OAAgC,MAAxBA,EAAIyT,mBAGZsF,EAA+B,OAAZra,QAAY,IAAZA,OAAY,EAAZA,EAActE,QAAO,SAAU4F,GAClD,OAAQA,EAAIuU,eAAiBnC,GAAwBkB,SAAWtT,EAAIuU,eAAiBnC,GAAwBmB,WAG7GyF,EAA4B,OAAZta,QAAY,IAAZA,OAAY,EAAZA,EAActE,QAAO,SAAU4F,GAC/C,OAAQA,EAAIuU,eAAiBnC,GAAwBkB,SAAWtT,EAAIuU,eAAiBnC,GAAwBmB,SAAmC,MAAxBvT,EAAIyT,mBAGhIkF,EAAsBG,GACtBD,EAA4BE,GAC5BN,EAAyBO,IAC1B,CAACta,IAEJ,IAAIua,EAAY,GACX9H,GAAqD,KAAb,OAAlBA,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBje,UAC3C+lB,EAAY,CAAC,CAAEjN,KAAM,WAAYxI,MAAO,kBAAmBwO,KAAM,uBAAwBF,YAAa,MAW1G,MAAMoH,EAA6BA,KAC/BhB,GAA4BD,IAG1BkB,EAA0BA,KAC5Bf,GAAyBD,IAGvBiB,EAAuBA,KACzBd,GAAsBD,IAGpBvM,EAAeA,CAAC9Y,EAASuY,EAAYC,KAQvCK,EAPmB,CACf7Y,QAASA,EACTsY,SAAU,YACVC,WAAYA,EACZC,WAAYA,IAIsB,OAAlCnQ,EAAmBkQ,YACnB7J,EAAS,CAAE5O,K3CaO,iB2CbqBuI,qBAAoB/I,cAgGnE,OAAOsO,IAAAC,cAAA,OAAKC,UAAU,aAClBF,IAAAC,cAACuH,GAAa,KAAC,YACdsF,EA7FM9M,IAAAC,cAAA,WACHD,IAAAC,cAAC0N,KAAI,CAACrD,aAAa,OACftK,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAAA,OAAKlG,IAAI,oBAAoBmG,UAAU,4BACnCF,IAAAC,cAACgR,GAAO,CAAClX,IAAI,0BACT6I,MAAM,0BACNsO,YAAY,8DACZC,OAAO,qBACPE,gBAAiBA,KAAQsG,GAAgB,QAIrD3X,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAAA,OAAKC,UAAW,0CAA2C+B,QAASqW,GAChEtY,IAAAC,cAAA,OAAKC,UAAU,sBAAqB,iBAGpCF,IAAAC,cAAA,OAAKC,UAAU,qBACVmX,EAA0BrX,IAAAC,cAACkL,KAAe,CAACC,KAAM0J,OAC5C9U,IAAAC,cAACkL,KAAe,CAACC,KAAM2J,SAGpCsC,EAA0B,GACC,OAAxBW,QAAwB,IAAxBA,OAAwB,EAAxBA,EAA0B1Y,IAAI,CAACF,EAAKqZ,IACxBzY,IAAAC,cAAA,OAAKlG,IAAKqF,EAAIyX,oBAAsB,IAAM4B,EAAOvY,UAAU,UAC/DF,IAAAC,cAAC2S,GAAiB,CAACxT,IAAKA,OAIxCY,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAAA,OAAKC,UAAW,0CAA2C+B,QAASsW,GAChEvY,IAAAC,cAAA,OAAKC,UAAU,sBAAqB,aAGpCF,IAAAC,cAAA,OAAKC,UAAU,qBACVqX,EAAuBvX,IAAAC,cAACkL,KAAe,CAACC,KAAM0J,OACzC9U,IAAAC,cAACkL,KAAe,CAACC,KAAM2J,SAGpCwC,EAAuB,GACC,OAArBK,QAAqB,IAArBA,OAAqB,EAArBA,EAAuBtY,IAAI,CAACF,EAAKqZ,IACrBzY,IAAAC,cAAA,OAAKlG,IAAKqF,EAAIyX,oBAAsB,IAAM4B,EAAOvY,UAAU,UAC/DF,IAAAC,cAAC2S,GAAiB,CAACxT,IAAKA,OAKxCY,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAAA,OAAKC,UAAW,0CAA2C+B,QAASuW,GAChExY,IAAAC,cAAA,OAAKC,UAAU,sBAAqB,UAGpCF,IAAAC,cAAA,OAAKC,UAAU,qBACVuX,EAAoBzX,IAAAC,cAACkL,KAAe,CAACC,KAAM0J,OACtC9U,IAAAC,cAACkL,KAAe,CAACC,KAAM2J,SAGpC0C,EAAoB,GAAuB,OAAlBK,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBxY,IAAI,CAACF,EAAKqZ,IAC5CzY,IAAAC,cAAA,OAAKlG,IAAKqF,EAAIyX,oBAAsB,IAAM4B,EAAOvY,UAAU,UAC/DF,IAAAC,cAAC2S,GAAiB,CAACxT,IAAKA,SAQrBsZ,MAAO,IAADC,EAC7B,OAAO3Y,IAAAC,cAAA,YACO,QAAT0Y,EAAAN,SAAS,IAAAM,OAAA,EAATA,EAAWrmB,QAAS,GAAK0N,IAAAC,cAAA,OAAKC,UAAU,YAAW,8BACpDF,IAAAC,cAAC2S,GAAiB,CAACthB,OAAQA,EAAQ4f,YAAaA,EAAa2B,gBAAiBA,EAAiB9b,MAAOA,IACtGiJ,IAAAC,cAAA,WACKoY,EAAU/Y,IAAI,CAAC8R,EAAMqH,IACXzY,IAAAC,cAAA,OAAKlG,IAAKqX,EAAKxO,MAAQ,IAAM6V,EAAOvY,UAAU,sBACjC,mBAAfkR,EAAKxO,QA5GlBvQ,GAAgBA,EAAe,EACxB2N,IAAAC,cAAA,OAAKlG,IAAI,iBAAiBmG,UAAU,gBAAgB7N,GAExD,IA0GS2N,IAAAC,cAACgR,GAAO,CAAClX,IAAKqX,EAAKxO,MACf6V,MAAOA,EACPrN,KAAMgG,EAAKhG,KACXgG,KAAMA,EAAKA,KACXra,MAAOqa,EAAKra,MACZ6L,MAAOwO,EAAKxO,MACZsO,YAAaE,EAAKF,YAClBG,gBAAiBD,EAAKnP,eAWayW,GACvD1Y,IAAAC,cAAC8V,GAAU,CAACC,aAAcA,EACtBG,UAAW,GACXF,WAAYA,KAAQ0B,GAAgB,QCxMnCiB,GAAoB/X,IAC7B,IAAI,gBAAEgY,EAAe,kBAAEC,GAAoB,EAAK,YAAEC,EAAW,kBAAEC,EAAiB,sBAAEC,GAAwB,EAAI,iBAAEC,GAAmB,EAAK,YACpIC,EAAeA,KAAMC,MAAM,4BAA2B,eAAEhS,GAAmBvG,EAE/E,MAAOW,EAASuO,GAAarO,aAAW,CAAC,oBACnCZ,EAAWC,cAEXrP,EAAWyP,YAAavP,GAAUA,EAAMC,KAAKH,UAE7CwZ,EAAeA,CAAC9Y,EAASuY,EAAYC,KACvC,IAAIyO,EAAe,CACfjnB,QAASA,EACTsY,SAAU,sBACVC,WAAYA,EACZC,WAAYA,GAGgB,OAA5ByO,EAAa1O,YACb7J,EAAS,CAAE5O,K5C8FO,iB4C9FqBmnB,eAAc3nB,cAgD7D,OAAOsO,IAAAC,cAACwH,KAAG,CAACvH,UAAU,yCAClBF,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACT3H,IAAAC,cAACyH,KAAG,CAACxH,UAAU,2BACXF,IAAAC,cAAC+B,KAAM,CAACC,QA/CKqX,KAEjB,GAAgC,UAA5B9X,EAAQY,iBACHC,OAAOC,QAAQ,0DADxB,CAMA,IAAIlQ,EAAU6mB,EAAwB,0BAA4B,+BAE9DrO,EAAa/W,KAAKC,UAAUpC,GAChCwZ,EAAa9Y,EAFI,oBAEiBwY,GAElCoO,OAkCoCC,EAAwB,OAAS,uBACjEjZ,IAAAC,cAAC+B,KAAM,CAACC,QAhCCsX,KACRJ,IAILJ,IAHIK,MAAM,iDA8BqB9Q,SAAU4Q,GAAkB,QACvDlZ,IAAAC,cAAC+B,KAAM,CAACC,QAzBKuX,KACjB,IAAInS,EAAeF,GAAuBC,GAC1C,GAAqB,KAAjBC,EAIJ,GAAK8R,IAAL,CAKA,IAAI/mB,EAAU0mB,EAAoB,kBAAoB,2BAElDlO,EAAa/W,KAAKC,UAAUpC,GAChCwZ,EAAa9Y,EAFI,oBAEiBwY,GAGlCiO,SAVIO,MAAM,qDAJNA,MAAM/R,EAAe,mDAsBUiB,SAAU4Q,GAAmBJ,EAAoB,SAAW,WAoB1FW,GAAcA,KACvBpX,OAAOqX,SAAS,CACZC,IAAK,EACLC,SAAU,YClGLC,GAAoBhZ,IAC7B,IAAI,SAAEqC,GAAarC,EACnB,OAAOb,IAAAC,cAACwH,KAAG,KACPzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GAAIzH,UAAU,cACnBF,IAAAC,cAAA,YAAOiD,M,cCJZ,MAAM4W,GAAejZ,IACxB,IAAI,KAAE3O,GAAS2O,EAEf,MAAOkZ,EAASC,GAAc1Y,oBAAS,GAUvC,OAPAK,oBAAU,KACNqY,GAAW,GACX3X,OAAOiC,WAAW,KACd0V,GAAW,IACZ,MACJ,IAGCha,IAAAC,cAACga,KAAK,CAAC3E,MAAOpjB,EAAMuS,OAAQsV,EAASrV,OAVvBwV,IAAMF,GAAW,IAWjB,YAAT9nB,EAAqB,8BACP,WAATA,EAAoB,gDAChB,K,aCbf,MAAMioB,GAAetZ,IAAW,IAADuZ,EAClC,IAAI,QAAEC,EAAO,OAAErhB,EAAM,WAAEshB,EAAU,UAAErN,EAAS,mBAAEsN,EAAkB,UAAE3a,EAAS,WAAE5C,EAAU,kBAAEwd,EAAiB,SAAEC,GAAa5Z,EACzH,MAAM6Z,EAAgB7W,mBAChB8W,EAAiB9W,mBAEjB+W,EAAmE,QAA1DR,EAAGxa,EAAU0H,KAAK1V,GAASA,EAAMmN,SAAiB,OAAPsb,QAAO,IAAPA,OAAO,EAAPA,EAASzoB,eAAM,IAAAwoB,OAAA,EAAvDA,EAAyDtS,MACrE+S,EAAgB7d,IAAqB,OAAPqd,QAAO,IAAPA,OAAO,EAAPA,EAASzoB,OAAQoL,EAAW4d,GAAa,IACtEE,EAAqBC,GAA0BzZ,mBAAS,OAExD0Z,EAAoBC,GAAyB3Z,mBAChD+Y,EAAQzoB,MACF,CAACgO,EAAU0H,KAAK1V,GAASA,EAAMmN,QAAUsb,EAAQzoB,QACjD,KAEHspB,EAAqBC,GAA0B7Z,mBAAS,CAAC+Y,EAAQne,SAExEyF,oBAAU,KAENsZ,EAAsBZ,EAAQzoB,MACxB,CAACgO,EAAU0H,KAAK1V,GAASA,EAAMmN,QAAUsb,EAAQzoB,QACjD,IAENupB,EAAuBd,EAAQne,OAAQ,CAACme,EAAQne,QAAQ,KAGzD,CAACme,IAEJ,MAaMe,EAA8BC,IAAmB,IAADC,EAClDL,EAAsBI,GAEtB,IAAIE,EAAW,GACc,IAAzBF,EAAc/oB,SACdipB,EAAWzV,GAA+BuV,EAAc,IACxDpO,EAAU,IAAKjU,EAAQ,MAAWuiB,KAEtCtO,EAAU,IAAKjU,EAAQ,MAAWuiB,IAElC,IAAIhU,EAAQ8S,EACZ9S,EAAM3V,MAAwB,QAAnB0pB,EAAGD,EAAc,UAAE,IAAAC,OAAA,EAAhBA,EAAkBvc,MAChCwI,EAAMrL,OAAS,GACfoe,EAAW/S,GACX4T,EAAuB,KAiBrBK,EAA+BC,IACjCN,EAAuBM,GACvBnB,EAAW,IACJD,EACHne,OAAQuf,GAAkBA,EAAenpB,OAAS,EAAImpB,EAAe,GAAK,KAG9EV,EAAuBjV,GAA+B2V,EAAe,MAGnEzS,EAAgBA,CAAC3E,EAAOkD,KAC1B,IAAIgU,EAAW,GACXnO,EAAW/I,EAAMjE,OAAOrB,MAE5B,GAAc,QAAVwI,EAAiB,CtBKQxI,EsBJOqO,EAAhCmO,EtBMkBvW,OAAO,uBAEXC,KAAKlG,GACjB,GACA,gCsBRFkO,EAAU,IAAKjU,EAAQ,CAACuO,GAAQgU,IAEhC,IAAI/e,EAAU,GACVC,EAAW,GAWf,OATI2Q,EAAS9a,OAAS,EAClBkK,EAAU4Q,GAGV5Q,EAAU4Q,EAASsO,UAAU,EAAG,GAChCjf,EAAW2Q,EAASsO,UAAU,SAGlCpB,EAAW,IAAKD,EAAS7d,UAASC,atBXTsC,MsBc7B,OAAQwI,GACJ,IAAK,cACDgU,EAAWhW,GAAW6H,GACtB,MACJ,IAAK,OACDmO,EtBDiBxc,KAC7B,IAAIzK,EAAMwR,GAA+B/G,GACzC,GAAIzK,EACA,OAAOA,EAQX,OAJAA,EADsC0Q,OAAO,eAEXC,KAAKlG,GAC7B,2CACA,GACHzK,GsBVgBqnB,CAAiBvO,GAC5B,MACJ,IAAK,QACDmO,EAAW7V,GAAc0H,GACzB,MACJ,IAAK,MACDmO,EAAW3V,GAAYwH,GACvB,MACJ,IAAK,MACDmO,EAAWlW,GAAY+H,GACN,KAAbmO,GAAmBnO,GACnBoN,EAAkBpN,GAEtB,MACJ,IAAK,iBACDmO,EAAWzW,GAAiBsI,GAMpCH,EAAU,IAAKjU,EAAQ,CAACuO,GAAQgU,IAChCjB,EAAW,IAAKD,EAAS,CAAC9S,GAAQ6F,KAGtC,OAAOpN,IAAAC,cAAA,OAAKC,UAAU,gBAClBF,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZ6H,IAAK,uBAAuB0gB,EAC5BvU,UAAQ,EACRhG,UAAU,iBACV5F,KAAK,sBACLyE,MAAOsb,EAAQ/d,YACfwL,MAAwB,YAAjBuS,EAAQnoB,KAAqB,iBAAmB,UACvDwD,MAAOsD,EAAOsD,YACdgO,aAAa,MACb9B,SAAWrW,IAAQ6W,EAAc7W,EAAG,gBACpC6T,UAAW,OAIvBhG,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZ6H,IAAK,gBAAkB0gB,EACvBvU,UAAQ,EACRhG,UAAU,iBACV5F,KAAK,eACLyE,MAAOsb,EAAQpe,KACf6L,MAAM,OACNpS,MAAOsD,EAAOiD,KACdqO,aAAa,MACb9B,SAAWrW,IAAQ6W,EAAc7W,EAAG,YAG5C6N,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,kBAAiB,UAClCF,IAAAC,cAAC2b,KAAS,CACNtkB,GAAG,iBACHukB,SAAS,QACTrT,SAAU4S,EACVrT,QAASnI,EACTkc,SAAUd,EACVhT,YAAY,eACZuC,OAnJQwR,KACpB,IAAI7nB,EAAOwmB,EAAcsB,QAAQpqB,MAAMsC,KACvC,GAAIA,EAAM,CACN,IAAIkF,EAAOwG,EAAU0H,KAAM2U,GAAgBA,EAAEld,MAAMmd,gBAAkBhoB,EAAKgoB,eAAiBD,EAAEnU,MAAMoU,gBAAkBhoB,EAAKgoB,eACtH9iB,EACAgiB,EAA2B,CAAChiB,IAG5BshB,EAAcsB,QAAQG,UA4IlBC,IAAK1B,MAIjB1a,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,kBAAiB,WAClCF,IAAAC,cAAC2b,KAAS,CACNtkB,GAAG,kBACHukB,SAAS,QACT9T,QAAS8S,EACTrS,SAAUgT,EACVM,SAAUZ,EACV3Q,OAlIS8R,KACrB,IAAInoB,EAAOymB,EAAeqB,QAAQpqB,MAAMsC,KACxC,GAAIA,EAAM,CACN,IAAIukB,EAAQoC,EAAcyB,UAAUljB,GAAQA,EAAK8iB,gBAAkBhoB,EAAKgoB,eACpE9iB,EAAOyhB,EAAcpC,GACrBrf,EACAoiB,EAA4B,CAACpiB,IAG7BuhB,EAAeqB,QAAQG,UA0HnBC,IAAKzB,IAER3hB,EAAOkD,QACJ8D,IAAAC,cAAA,QAAMC,UAAU,SAASlH,EAAOkD,QACnC4e,GACG9a,IAAAC,cAAA,QAAMC,UAAU,SAAS4a,IAEjC9a,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,kBAAiB,mBAClCF,IAAAC,cAACmK,KAAS,CAAC/B,KAAK,aAAagC,SAAU,KAAM/P,KAAK,aAAahD,GAAG,cAAcyC,IAAK,eAAiB0gB,EAAU1b,MAAOsb,EAAQ7d,QAAU,IAAM6d,EAAQ5d,SACnJ+L,SAAWrW,IAAQ6W,EAAc7W,EAAG,QAAUmY,aAAa,MAAMpK,UAAU,6BAA6B8H,YAAY,eACvHhP,EAAOujB,KACJvc,IAAAC,cAAA,QAAMC,UAAU,SAASlH,EAAOujB,OAG5Cvc,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,kBAAiB,sBAClCF,IAAAC,cAACmK,KAAS,CAAC/B,KAAK,eAAegC,SAAU,KAAM/P,KAAK,gBAAgBP,IAAK,iBAAmB0gB,EACxF1b,MAAOsb,EAAQhe,MAAOrD,OAAO,eAAewP,SAAWrW,IAAQ6W,EAAc7W,EAAG,UAChFmY,aAAa,MAAMpK,UAAU,+BAA+B8H,YAAY,iBAC3EhP,EAAOqD,OACJ2D,IAAAC,cAAA,QAAMC,UAAU,SAASlH,EAAOqD,SAG5C2D,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,aAAY,oBAC7BF,IAAAC,cAACmK,KAAS,CAAC/B,KAAK,eAAegC,SAAU,KAAM/P,KAAK,cAChDyE,MAAOsb,EAAQle,IAAKnD,OAAO,aAAae,IAAK,eAAiB0gB,EAC9DjS,SAAWrW,IAAQ6W,EAAc7W,EAAG,QAAUmY,aAAa,MAAMpK,UAAU,+BAA+B8H,YAAY,iBACzHhP,EAAOmD,KACJ6D,IAAAC,cAAA,QAAMC,UAAU,SAASlH,EAAOmD,QAI/Coe,GAAsBva,IAAAC,cAAEwH,KAAG,KACxBzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZ6H,IAAK,eAAiB0gB,EACtBvU,UAAQ,EACRhG,UAAU,iBACV5F,KAAK,cACLyE,MAAOsb,EAAQnnB,IACf4U,MAAwB,YAAjBuS,EAAQnoB,KAAqB,YAAc,MAClDwD,MAAOsD,EAAO9F,IACdoX,aAAa,MACb9B,SAAWrW,IAAQ6W,EAAc7W,EAAG,WAG5C6N,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZ6H,IAAK,0BAA4B0gB,EACjCngB,KAAK,yBACLyE,MAAOsb,EAAQje,eACf0L,MAAM,kBACNpS,MAAOsD,EAAOoD,eACdkO,aAAa,MACbtE,UAAW,EACXwC,SAAWrW,IAAQ6W,EAAc7W,EAAG,yB,wBC9OjD,MAAMqqB,GAAwB3b,IACjC,MAAMC,EAAWC,cACXC,EAAUC,gBAETwb,EAAYC,GAAiBpb,mBAAS,OACtCE,EAASuO,GAAarO,aAAW,CAAC,qBAClCib,EAAWC,GAAgBtb,mBAAS,IAC3C,IAAIpK,EAAciK,YAAavP,GAAUA,EAAMoN,wBAAwBjB,yBACvE,MAAM1C,EAAa8F,YAAavP,GAAUA,EAAMC,KAAKwJ,YAC/CnF,EAAaiL,YAAavP,GAAUA,EAAMC,KAAKqE,aAC9C2mB,EAAUC,GAAexb,mBAAS,OAClC7G,EAAoBwQ,GAAyB3J,mBAASmJ,IAEvD/Y,EAAWyP,YAAavP,GAAUA,EAAMC,KAAKH,UAC9CA,GACDsP,EAAQY,KAAK,KAGjB,MAAMhC,EAAYuB,YAAavP,GAAUA,EAAMoN,wBAAwBY,WACjEmd,EAAsBnd,EACtBA,EAAUrG,MAAM+F,IAAK2c,IAAe,CAAEld,MAAOkd,EAAEe,KAAMlV,MAAOmU,EAAE3hB,QAC9D,GAEA2iB,GAA+B,OAAX/lB,QAAW,IAAXA,OAAW,EAAXA,EAAa+lB,mBAA+B,OAAX/lB,QAAW,IAAXA,OAAW,EAAXA,EAAa+lB,kBAAoB,IACrFC,EAAiBC,GAAsB7b,mBAAS2b,EAAkB3qB,OAAS,EAAI2qB,EAAkB3V,KAAK8V,GAAgB,YAAXA,EAAElrB,MAAsB,IAAK6J,GAAsB7J,KAAM,aACpKmrB,EAAuBC,GAA4Bhc,mBAASvF,KAE5DwhB,EAAiBC,GAAsBlc,mBAAS2b,EAAkB3qB,OAAS,EAAI2qB,EAAkB3V,KAAK8V,GAAgB,YAAXA,EAAElrB,MAAsB,IAAK6J,GAAsB7J,KAAM,aACpKurB,EAAuBC,GAA4Bpc,mBAASvF,KAE5D4hB,EAAiBC,GAAsBtc,mBAAS2b,EAAkB3qB,OAAS,EAAI2qB,EAAkB3V,KAAK8V,GAAgB,YAAXA,EAAElrB,MAAsB,IAAK6J,GAAsB7J,KAAM,aACpK2rB,EAAuBC,GAA4Bxc,mBAASvF,KAE5DgiB,EAA6BC,GAAkC1c,oBAAS,IACxE2c,EAA6BC,GAAkC5c,oBAAS,IACxE6c,EAAgBC,GAAqB9c,oBAAS,IAC9C+c,EAAgBC,GAAqBhd,oBAAS,IAC9C4O,EAAaC,GAAkB7O,oBAAS,GAEzCid,EAAYpd,YAAavP,GAAUA,EAAMoN,wBAAwBf,cAEjEugB,EAAYxB,IACN,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAM1qB,QAAS,GAAKsN,EACbA,EAAUrG,MAAMC,OAAO6hB,GAAiBA,EAAc2B,OAASA,GAAM,GAAG1iB,KAExE,GAGTmkB,EAAYtd,YAAavP,GAAUA,EAAMoN,wBAAwBtJ,QAChEgpB,EAAkBC,GAAuBrd,oBAAS,IAClDsd,EAA6BC,GAAkCvd,oBAAS,IACxEwd,EAA2BC,IAAgCzd,mBAAS,IAAKvF,GAAsB7J,KAAM,eACrG8sB,GAA0BC,IAA+B3d,mBAASvF,IAEzE4F,oBAAU,KACFud,GAAgBJ,GAA2B,IAAShY,GAAakY,IACjEL,GAAoB,GAGpBA,GAAoB,IAEzB,CAACG,EAA2BE,KAE/B,MAAOlM,GAAMC,IAAWzR,mBAAS,KAC1B6d,GAA0BC,IAA+B9d,oBAAS,IAClE+d,GAAkBC,IAAuBhe,mBAAS,MAEnDie,GAAoCA,KAAQV,GAAgCD,IAC5EY,GAAoDC,IACtDF,KACAZ,GAAoB,GACpBe,GAAkBD,IAShBC,GAAqBD,IAClBA,GACDH,GAAoB,MAExBP,GAA6B,IAAKhjB,GAAsB7J,KAAM,cAC9D+sB,GAA4B,IAAKljB,MAK/B4jB,GAAcA,CAACC,EAAUrY,KAC3BuV,EAAYvV,GACZ,IAEIqD,EAAa/W,KAAKC,UAAUoD,GAChCgU,GAHc,gCACG,cAEiBN,GAClC9J,EAAS,CAAE5O,KhDnFiB,uBgDmFiBgB,IAAK0sB,KAwBtD,IAAIxY,GArB2ByY,MAC3B,IAAIC,EAAS,GAiBb,MAhBA,CAAC5C,EAAiBK,EAAiBI,GAAiB1W,QAAQ8Y,IACxDD,EAASA,EAAO5gB,OAAO,CACnB,CAAEnF,IAAKgmB,EAAc7tB,KAAO,WAAY6M,MAAOghB,EAAczjB,aAC7D,CAAEvC,IAAKgmB,EAAc7tB,KAAO,QAAS6M,MAAOghB,EAAc9jB,MAC1D,CAAElC,IAAKgmB,EAAc7tB,KAAO,UAAW6M,MAAOghB,EAAc7jB,QAC5D,CAAEnC,IAAKgmB,EAAc7tB,KAAO,SAAU6M,MAAOghB,EAAc1jB,OAC3D,CAAEtC,IAAKgmB,EAAc7tB,KAAO,SAAU6M,MAAOghB,EAAcnuB,OAC3D,CAAEmI,IAAKgmB,EAAc7tB,KAAO,YAAa6M,MAAOghB,EAAcvjB,SAC9D,CAAEzC,IAAKgmB,EAAc7tB,KAAO,YAAa6M,MAAOghB,EAActjB,YAEvC,YAAvBsjB,EAAc7tB,OACd4tB,EAASA,EAAO5gB,OAAO,CACnB,CAAEnF,IAAKgmB,EAAc7tB,KAAO,aAAc6M,MAAOghB,EAAc7sB,UAIpE4sB,GAGUD,GAMrBle,oBAAU,MACDtG,GAAcwhB,IACE,YAAbA,EACAS,EAAyB,IAAKD,EAAuBnqB,IAAKgD,IAG1D+oB,GAA4B,IAAKD,GAA0B9rB,IAAKgD,IAEpE4mB,EAAY,QAEjB,CAAC5mB,IAEJ,MAAMgpB,GAAkB,SAACa,GAAmD,IAApCC,EAAsBthB,UAAApM,OAAA,QAAAqM,IAAAD,UAAA,IAAAA,UAAA,GAC1D,GAAIqhB,EAAc9jB,MAAQ8jB,EAAc7jB,QAAU6jB,EAAc1jB,OACzD0jB,EAAcnuB,OAASmuB,EAAczjB,aAAeyjB,EAAcvjB,SAAWujB,EAActjB,SAAU,CACxG,IAAKujB,EAAwB,OAAO,EAC/B,GAAID,EAAc7sB,IAAK,OAAO,EAEvC,OAAO,GAGXyO,oBAAU,KACNoO,EAAU,kBAAmB,QAAS,CAAEU,KAAM,IAAKC,OAAQ,WAC5D,CAACwM,EAAiBK,EAAiBI,EAAiBN,EAAuBI,EAAuBI,EACjGa,IAsCJ,SAASha,GAAO3F,GACZ,OAAQA,EAOZ4C,oBAAU,KACFjQ,IACAqe,EAAU,kBAAmB,OAAQ,CAAEU,KAAM,IAAKC,OAAQ,UAC1D5P,EAAS,CAAE5O,KhDjL0B,sCgDkLrC4O,EAAS,CAAE5O,KhDxJ6B,uCgDwJqBgH,SAAUO,EAAe3B,YACtFgJ,EAAS,CAAE5O,KhDzJ6B,uCgDyJqBgH,SAAUO,EAAe7B,iBAE3F,IAEH+J,oBAAU,KACN,GAAI/B,EAAW,CACX,IAAIqgB,EAA8BhD,EAAkBzjB,OAAO4jB,GAAgB,cAAXA,EAAElrB,MAClE,GAAI+tB,EAA6B,CAC7B,IAAIC,EAAgB,GACpB,IAAK,IAAIhM,EAAI,EAAGA,EAAI+L,EAA4B3tB,OAAQ4hB,IAAK,CACzD,IAAIiM,EAAMF,EAA4B/L,GACtC,IAAItiB,EAAQ4sB,EAAS2B,EAAIvuB,OACrBwuB,EAAeD,EAAIlkB,KAAO,KAAOrK,EAAQ,OAASuuB,EAAI3jB,QAAU,IAAM2jB,EAAI1jB,SAC1E4jB,EAAqB,CAACF,EAAI7jB,YAAa8jB,GAC3CF,EAActe,KACV,CACItK,GAAI6oB,EAAInkB,mBACRskB,oBAAqBH,EAAI7jB,YACzBikB,oBAAqBJ,EAAI5jB,YACzBikB,UAAWL,EAAIlkB,KACfwkB,YAAaN,EAAIjkB,OACjBwkB,WAAYP,EAAIvuB,MAChB+uB,SAAUR,EAAI3jB,QAAU,IAAM2jB,EAAI1jB,SAClCmkB,WAAYT,EAAI9jB,MAChBwkB,SAAUV,EAAIhkB,IACd2kB,SAAUX,EAAIjtB,IACd6tB,oBAAqBZ,EAAI/jB,eACzB4kB,mBAAoBX,IAKhCtN,GAAQmN,MAGjB,CAACtgB,IAEJ+B,oBAAU,KACF/B,GAAa2e,GACbpO,GAAe,IAEpB,CAACvQ,EAAW2e,IAEf5c,oBAAU,KAxF+Bsf,MACrC,GAAIlD,EAA6B,CAC7B,IAAImD,EAAUhE,EACVK,IACA2D,EAAQllB,mBAAqBuhB,EAAgBvhB,oBAEjDwhB,EAAmB,IAAK0D,IACxB9C,GAAkB,QAEXb,EAAgBjhB,aAAgBihB,EAAgBthB,MAASshB,EAAgBrhB,QAAWqhB,EAAgB3rB,OAAU2rB,EAAgB/gB,SAAY+gB,EAAgB9gB,UAChK8gB,EAAgBlhB,QAASkhB,EAAgB4D,MAASpD,GACnDK,GAAkB,IA8EtB6C,IACD,CAAClD,IAEJpc,oBAAU,KA7E+Byf,MAErC,GAAInD,EAA6B,CAC7B,IAAIoD,EAAUnE,EACVS,IACA0D,EAAQrlB,mBAAqB2hB,EAAgB3hB,oBAEjD4hB,EAAmB,IAAKyD,IACxB/C,GAAkB,QAEXX,EAAgBrhB,aAAgBqhB,EAAgB1hB,MAAS0hB,EAAgBzhB,QAAWyhB,EAAgB/rB,OAAU+rB,EAAgBnhB,SAAYmhB,EAAgBlhB,UAChKkhB,EAAgBthB,QAASshB,EAAgBxhB,MAAS8hB,GACnDK,GAAkB,IAkEtB8C,IACD,CAACnD,IAMJ,MAAMlF,GAAcA,KAGhB,GAFA6D,EAAa,IAET9V,GAAauW,IACVvW,GAAa2W,IACb3W,GAAa+W,IACb/W,GAAakY,IAClB,CACE,IAAIvf,EAAiBvI,EACrB,IAEIoqB,EAAc,IAFKC,QACKC,MAI5B,GAFA/hB,EAAewd,kBAAoBqE,EAE/BpqB,EAAYuqB,UAAW,CACvB,IAAIC,EAAoB,GACxB,GAAIJ,EAAYhvB,OAAS,EAAG,CACxB,IACI2G,EADWqoB,EAAY9nB,OAAO4jB,GAAgB,cAAXA,EAAElrB,MAAmC,YAAXkrB,EAAElrB,MAC/CoN,KAAI,SAAU8d,GAAK,OAAQA,EAAEphB,sBACjD/C,EAAK0oB,OACLD,EAAoBA,EAAkBxiB,OAAOjG,GAGjDwG,EAAegiB,UAAYvqB,EAAYuqB,UAAUniB,IAAIsiB,IAAa,IAADC,EACzDD,EAAS1E,kBACJwE,GAAsBA,EAAkBI,KAAK1E,GAAKA,IAAMwE,EAAS1E,mBAClE0E,EAAS1E,gBAAkB,OAInC,IAAI6E,EAAyD,QAA/BF,EAAGD,EAASI,2BAAmB,IAAAH,OAAA,EAA5BA,EAA8BroB,OAAO2mB,IAClE,GAAIuB,EAAkBI,KAAK1E,GAAKA,IAAM+C,GAClC,OAAOA,IAIf,OADAyB,EAASI,oBAAsBD,EACxBH,IAIf,IAEIhX,EAAa/W,KAAKC,UAAU2L,GAChCyL,GAHc,8CACG,cAEiBN,GAElC9J,EAAS,CAAE5O,KhDzQ8B,wCgDyQqBgF,YAAauI,EAAgBrI,QAAQ,IACnG0J,EAAS,CAAE5O,KhDnRU,oBgDmRqB6L,wBAAyB0B,IACnEsQ,EAAU,kBAAmB,OAAQ,CAAEU,KAAM,IAAKC,OAAQ,eAG1DgM,EAAc,OAWhBuF,GAAiB9gB,YAAavP,GAAUA,EAAMoN,wBAAwBb,6BAC5EwD,oBAAU,KACFsgB,IAAkB/qB,GAClB4J,EAAS,CAAE5O,KhD1S0B,sCgD2SjCuqB,EACAzb,EAAQY,KAAK6a,IAEbhD,KACAmD,EAAa,aAEV6B,IACPhF,KACAmD,EAAa,WAEjBF,EAAc,OACf,CAACuF,GAAgBxD,IAEpB,MAAM8C,GAAkBA,KACpB,IAAIW,EAAY,GAEZC,EAAiB,IACdjF,EACHlhB,mBAAoBkhB,EAAgBlhB,mBAAqBkhB,EAAgBlhB,mBAAqBomB,OAC9F9lB,YAAa4gB,EAAgB5gB,YAAY4P,OACzCjQ,KAAMihB,EAAgBjhB,KAAKiQ,OAC3Bha,KAAM,WAGNmwB,EAAiB,IACd9E,EACHvhB,mBAAoBuhB,EAAgBvhB,mBAAqBuhB,EAAgBvhB,mBAAqBomB,OAC9F9lB,YAAaihB,EAAgBjhB,YAAY4P,OACzCjQ,KAAMshB,EAAgBthB,KAAKiQ,OAC3Bha,KAAM,UACNgB,IAAK,GACLkJ,eAAgB,IAGhBkmB,EAAiB,IACd3E,EACH3hB,mBAAoB2hB,EAAgB3hB,mBAAqB2hB,EAAgB3hB,mBAAqBomB,OAC9F9lB,YAAaqhB,EAAgBrhB,YAAY4P,OACzCjQ,KAAM0hB,EAAgB1hB,KAAKiQ,OAC3Bha,KAAM,UACNgB,IAAK,GACLkJ,eAAgB,IAMpB,OAHA8lB,EAAUtgB,KAAKugB,GACfD,EAAUtgB,KAAKygB,GACfH,EAAUtgB,KAAK0gB,GACRJ,GAGLV,GAA4BA,IACJ1O,GAAKxT,IAAIwL,IACxB,CACH9O,mBAAoB8O,EAASxT,GAAKwT,EAASxT,GAAK8qB,OAChD9lB,YAAawO,EAASwV,oBAAoBpU,OAC1C3P,YAAauO,EAASyV,oBACtBtkB,KAAM6O,EAAS0V,UAAUtU,OACzBhQ,OAAQ4O,EAAS2V,YACjBjkB,QAASsO,EAAS6V,SAASjF,UAAU,EAAG,GACxCjf,SAAUqO,EAAS6V,SAASjF,UAAU,EAAG,IACzC9pB,MAAOkZ,EAAS4V,WAChBxuB,KAAM,YACNiK,IAAK2O,EAAS+V,SACdxkB,MAAOyO,EAAS8V,WAChB1tB,IAAK4X,EAASgW,SACd1kB,eAAgB0O,EAASiW,uBAW/B1M,GAAU,CACZ,CACI9M,MAAO,qBACP+M,WAAY,UACZC,KAAM,EACNgO,SAAU,IACVC,UAAU,EACVC,UAAU,EACVjO,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfhO,MAAO,SACPiO,WAAalxB,GACTuO,IAAAC,cAAA,QAAMC,UAAU,qBACXzO,EAAOsN,MAAM,GACdiB,IAAAC,cAAA,WACCxO,EAAOsN,MAAM,KAI1B,CACIwI,MAAO,sBACP+M,WAAY,wBACZC,KAAM,EACNgO,SAAU,IACVC,UAAU,EACVC,UAAU,EACVjO,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfhO,MAAO,SACPkO,MAAM,GAEV,CACIrb,MAAO,sBACP+M,WAAY,wBACZiO,SAAU,IACVhO,KAAM,EACNiO,UAAU,EACVC,UAAU,EACVjO,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfhO,MAAO,SACPkO,MAAM,GAEV,CACIrb,MAAO,YACP+M,WAAY,OACZiO,SAAU,IACVhO,KAAM,EACNiO,UAAU,EACVhO,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfhO,MAAO,SACPkO,MAAM,GAEV,CACIrb,MAAO,cACP+M,WAAY,SACZiO,SAAU,IACVhO,KAAM,EACNiO,UAAU,EACVC,UAAU,EACVjO,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfhO,MAAO,SACPkO,MAAM,GAEV,CACIrb,MAAO,aACP+M,WAAY,QACZiO,SAAU,IACVhO,KAAM,EACNiO,UAAU,EACVhO,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfhO,MAAO,SACPkO,MAAM,GAEV,CACIrb,MAAO,WACP+M,WAAY,MACZiO,SAAU,IACVhO,KAAM,EACNiO,UAAU,EACVhO,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfhO,MAAO,SACPkO,MAAM,GAEV,CACIrb,MAAO,aACP+M,WAAY,QACZiO,SAAU,IACVhO,KAAM,EACNiO,UAAU,EACVC,UAAU,EACVjO,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfhO,MAAO,SACPkO,MAAM,GAEV,CACIrb,MAAO,WACP+M,WAAY,MACZiO,SAAU,IACVhO,KAAM,EACNiO,UAAU,EACVC,UAAU,EACVjO,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfhO,MAAO,SACPkO,MAAM,GAEV,CACIrb,MAAO,WACP+M,WAAY,eACZiO,SAAU,IACVhO,KAAM,EACNiO,UAAU,EACVhO,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfhO,MAAO,UAEX,CACInN,MAAO,sBACP+M,WAAY,aACZiO,SAAU,IACVhO,KAAM,EACNiO,UAAU,EACVhO,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfhO,MAAO,UAEX,CACInN,MAAO,oBACP+M,WAAY,OACZE,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfxR,YAAa,sDACbuR,UAAU,EACVI,MAAO,IACPC,2BAA2B,EAC3BH,WAAYA,IACR3iB,IAAAC,cAAA,cAAQ,IAACD,IAAAC,cAAC+B,KAAM,CAAC9B,UAAU,kBAAkB6N,KAAK,SAAS,UAAe,KAE9E2G,MAAO,UAEX,CACInN,MAAO,sBACP+M,WAAY,SACZE,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfxR,YAAa,sDACbuR,UAAU,EACVI,MAAO,IACPC,2BAA2B,EAC3BH,WAAYA,IACR3iB,IAAAC,cAAA,cAAQ,IAACD,IAAAC,cAAC+B,KAAM,CAAC9B,UAAU,kBAAkB6N,KAAK,SAAS,YAAiB,KAEhF2G,MAAO,WAsFTxJ,GAAeA,CAAC9Y,EAASuY,EAAYC,KAQvCK,EAPmB,CACf7Y,QAASA,EACTsY,SAAU,uBACVC,WAAYA,EACZC,WAAYA,IAIsB,OAAlCnQ,EAAmBkQ,YACnB7J,EAAS,CAAE5O,KhDnjBO,iBgDmjBqBuI,qBAAoB/I,cAInE,OAAQsO,IAAAC,cAAA,OAAKC,UAAU,wBAClByc,EAAUrqB,OAAS,GAAK0N,IAAAC,cAAC6Z,GAAW,CAAC5nB,KAAMyqB,IAC5C3c,IAAAC,cAACuH,GAAa,KAAC,iCAEX0I,EACIlQ,IAAAC,cAACuP,GAAgB,MACjBxP,IAAAC,cAAA,WACID,IAAAC,cAAC0N,KAAI,KAED3N,IAAAC,cAAC4Z,GAAgB,KAAC,+BAClB7Z,IAAAC,cAACka,GAAW,CAACE,QAAS6C,EAClBnjB,IAAK,UACL0gB,SAAU,UACVzhB,OAAQqkB,EACR/C,WAAY6C,EACZlQ,UAAWqQ,EACX/C,oBAAoB,EACpB3a,UAAWmd,EACX/f,WAAYuhB,EACZ/D,kBAAoBtnB,IAAUysB,GAAYzsB,EAAK,cACnD8M,IAAAC,cAAA,WACAD,IAAAC,cAAC4Z,GAAgB,KAAC,+BAClB7Z,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACL3H,IAAAC,cAACmJ,KAAK,CAAClJ,UAAU,WAAWhO,KAAK,WAAWoI,KAAK,8BAA8B+O,QAAS8U,EACpF7mB,GAAG,8BAA8BkR,SAAUA,IAAMwV,EAA+BtZ,MACpF1E,IAAAC,cAAA,YAAMD,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,kBAAiB,+BAGhDF,IAAAC,cAAA,WACAD,IAAAC,cAACka,GAAW,CAACE,QAASkD,EAClBxjB,IAAK,UACL0gB,SAAU,UACVzhB,OAAQykB,EACRnD,WAAYkD,EACZvQ,UAAWyQ,EACXnD,oBAAoB,EACpB3a,UAAWmd,EACX/f,WAAYuhB,IAChBve,IAAAC,cAAA,WACAD,IAAAC,cAAC4Z,GAAgB,KAAC,+BAClB7Z,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAACmJ,KAAK,CAAClJ,UAAU,WAAWhO,KAAK,WAAWoI,KAAK,8BAA8B+O,QAASgV,EACpF/mB,GAAG,8BAA8BkR,SAAUA,IAAM0V,EAA+BxZ,MACpF1E,IAAAC,cAAA,YAAMD,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,kBAAiB,+BAGhDF,IAAAC,cAAA,WACAD,IAAAC,cAACka,GAAW,CAACE,QAASsD,EAClB5jB,IAAK,UACL0gB,SAAU,UACVzhB,OAAQ6kB,EACRvD,WAAYsD,EACZ3Q,UAAW6Q,EACXvD,oBAAoB,EACpB3a,UAAWmd,EACX/f,WAAYuhB,IAChBve,IAAAC,cAAA,WACAD,IAAAC,cAAA,WACAD,IAAAC,cAAA,WACAD,IAAAC,cAAA,WACID,IAAAC,cAAA,WACID,IAAAC,cAAA,QAAMC,UAAU,iBAAiB+B,QAASud,IAAkD,KAC5Fxf,IAAAC,cAAA,QAAMC,UAAU,wBAAuB,gCAE3CF,IAAAC,cAAA,WACAD,IAAAC,cAAA,WACAD,IAAAC,cAAA,WACAD,IAAAC,cAACuE,KAAK,CAACC,OAAQma,EAA6Bla,OAAQ6a,GAAmCrf,UAAU,iCAAiC6iB,WAAW,GACzI/iB,IAAAC,cAAC2E,KAAS,CAAC1E,UAAU,6BACjBF,IAAAC,cAAC4Z,GAAgB,KAAC,kCAClB7Z,IAAAC,cAACka,GAAW,CAACE,QAASyE,EAClB/kB,IAAKslB,GACL5E,SAAU4E,GACVrmB,OAAQgmB,GACR1E,WAAYyE,GACZ9R,UAAWgS,GACX1E,oBAAoB,EACpB3a,UAAWmd,EACX/f,WAAYuhB,EACZ/D,kBAAoBtnB,IAAUysB,GAAYzsB,EAAK,kBAEvD8M,IAAAC,cAAC4E,KAAW,CAAC3E,UAAU,oCACnBF,IAAAC,cAAC+B,KAAM,CAAC9B,UAAU,SAAS+B,QAvqBvC+gB,KAChB5D,IAA4B,GAC5BG,KAEAG,OAmqB6E,UACjD1f,IAAAC,cAAC+B,KAAM,CAAC9B,UAAU,MAAM+B,QA7I9BghB,KAAO,IAADC,EAC5B,MAAMtI,EAA8F,QAArFsI,EAAGnG,EAAoBzV,KAAK1V,GAASA,EAAMmN,QAAU+f,EAA0BltB,cAAM,IAAAsxB,OAAA,EAAlFA,EAAoFpb,MAEtG,IAAIsY,EAAetB,EAA0B7iB,KAAO,KAC9C2e,EAAY,OAASkE,EAA0BtiB,QAAU,IAAMsiB,EAA0BriB,SAC3F4jB,EAAqB,CAACvB,EAA0BxiB,YAAa8jB,GACjE,IAAI+C,EAAc,IAAIrQ,IAIlBsQ,GAHQD,EAAY7wB,OAAS,GAC7B+wB,KAAKjb,IAAIkb,MAAMD,KAAMF,EAAY7jB,KAAI,SAAUgK,GAAK,OAAOA,EAAEhS,OAE5C,CACjBA,GAAK6nB,GAA2BE,GAAmB+C,OACnD9B,oBAAqBxB,EAA0BxiB,YAC/CikB,oBAAqBzB,EAA0BviB,YAC/CikB,UAAW1B,EAA0B7iB,KACrCwkB,YAAa3B,EAA0B5iB,OACvCwkB,WAAY5B,EAA0BltB,MACtC+uB,SAAU7B,EAA0BtiB,QAAU,IAAMsiB,EAA0BriB,SAC9EmkB,WAAY9B,EAA0BziB,MACtCwkB,SAAU/B,EAA0B3iB,IACpC2kB,SAAUhC,EAA0B5rB,IACpC6tB,oBAAqBjC,EAA0B1iB,eAC/C4kB,mBAAoBX,IAExB,GAAIlB,GAA0B,CAC1B,MAAMoE,EAAcJ,EAAY7G,UAAUc,GAAKA,EAAE9lB,KAAO+nB,IACxD8D,EAAYI,GAAeH,OAE3BD,EAAYvhB,KAAKwhB,GAErBrQ,GAAQoQ,GACR/D,IAA4B,GAC5BG,KAEA,IAAIntB,EAAU,+BAAiCgxB,EAAeI,kBAAoB,iCAE9E5Y,EAAa/W,KAAKC,UAAUoD,GAChCgU,GAAa9Y,EAFI,oBAEiBwY,IAwG8CtC,UAAWoW,GAAmB,0BAI9F1e,IAAAC,cAAA,OAAKwjB,MAAO,CAAEC,OAAQ,IAAKb,MAAO,SAC9B7iB,IAAAC,cAAC+U,KAAQ,CACLlC,KAAMA,GACNoC,UAAW,GACXb,QAASA,GACTY,SAAU,EACV0O,aAAc,EACdC,YAAaA,CAACnyB,EAAQ4S,KAClBA,EAAMiH,iBACNjH,EAAMwf,kBAlMPC,EAACryB,EAAQU,KACpC,IAAIC,EAAU,GAEVwY,EAAa,GAEjB,GAAqB,wBAAjBnZ,EAAO8V,MAAiC,CACxCnV,EAAU,gBAAkBX,EAAOsyB,IAAIzsB,GAAK,mCAC5CsT,EAAa/W,KAAKC,UAAUoD,GAC5BgU,GAAa9Y,EANA,yBAMqBwY,GAClC,IAAItT,EAAK7F,EAAOsyB,IAAIzsB,GACpByb,GAAQD,GAAKtZ,QAAO,SAAUwqB,GAC1B,OAAOA,EAAI1sB,KAAOA,MAI1B,GAAqB,sBAAjB7F,EAAO8V,MAA+B,CACtC,IAAIjQ,EAAK7F,EAAOsyB,IAAIzsB,GACpBgoB,GAAoBhoB,GACpB,IAAI2sB,EAAsB,CACtB/wB,IAAKzB,EAAOsyB,IAAIjD,SAChBxkB,YAAa7K,EAAOsyB,IAAIzD,oBACxB/jB,YAAa9K,EAAOsyB,IAAIxD,oBACxBtkB,KAAMxK,EAAOsyB,IAAIvD,UACjB5uB,MAAOH,EAAOsyB,IAAIrD,WAClBxkB,OAAQzK,EAAOsyB,IAAItD,YACnBjkB,QAAS/K,EAAOsyB,IAAIpD,SAASjF,UAAU,EAAG,GAC1Cjf,SAAUhL,EAAOsyB,IAAIpD,SAASjF,UAAU,EAAG,IAC3Crf,MAAO5K,EAAOsyB,IAAInD,WAClBzkB,IAAK1K,EAAOsyB,IAAIlD,SAChBzkB,eAAgB3K,EAAOsyB,IAAIhD,qBAE/B3B,IAA4B,GAC5BI,IAAiD,GACjDT,GAA6BkF,GAC7B7xB,EAAU,4BAA8B6xB,EAAoB3nB,YAAc,iCAC1EsO,EAAa/W,KAAKC,UAAUoD,GAC5BgU,GAAa9Y,EAlCA,yBAkCqBwY,KAgKVkZ,CAAuBryB,QAKvCuO,IAAAC,cAAC2Y,GAAgB,CAACC,gBA7cRqL,KACtBxH,EAAc,wBACd3D,MA4cgBA,YAAaA,GACbC,kBAldMA,KACtBhY,EAAQY,KAAK,yBAkdGuX,YA7oBAA,IACTrS,GAAauW,IAA0BvW,GAAa2W,IAA0B3W,GAAa+W,GA6oBlFzW,eAAgBA,QC5wB3B+c,GAAuBtjB,IAAW,IAADujB,EAC1C,MAAMtjB,EAAWC,cACXC,EAAUC,eACVvP,EAAWyP,YAAavP,GAAUA,EAAMC,KAAKH,UAC9CA,GACDsP,EAAQY,KAAK,KAEjB,MAAOsO,EAAaC,GAAkB7O,oBAAS,IACxCE,EAASuO,GAAarO,aAAW,CAAC,qBAClC+a,EAAYC,GAAiBpb,mBAAS,OACtCqb,EAAWC,GAAgBtb,mBAAS,KACpC+H,EAASgb,GAAc/iB,oBAAS,GACvC,IAAIpK,EAAciK,YAAavP,GAAUA,EAAMoN,wBAAwBjB,yBAEvE,MAAM0gB,EAAYtd,YAAavP,GAAUA,EAAMoN,wBAAwBtJ,OACjE4uB,EAAwC,QAAhCF,EAAc,OAAXltB,QAAW,IAAXA,OAAW,EAAXA,EAAaqtB,wBAAgB,IAAAH,IAAI,IAC3C3pB,EAAoBwQ,GAAyB3J,mBAASmJ,IACvD+Z,EAAyB,OAARF,QAAQ,IAARA,OAAQ,EAARA,EAAUhd,MAAK,SAAUmd,GAC5C,MAAyB,YAAlBA,EAAEC,eAEPC,EAA+B,OAARL,QAAQ,IAARA,OAAQ,EAARA,EAAUhd,MAAK,SAAUmd,GAClD,MAAyB,kBAAlBA,EAAEC,gBAENE,EAAIC,GAASvjB,mBAAS,CACzBojB,YAAa,UACbpqB,KAAoB,OAAdkqB,QAAc,IAAdA,OAAc,EAAdA,EAAgBlqB,KACtBhH,MAAqB,OAAdkxB,QAAc,IAAdA,OAAc,EAAdA,EAAgBlxB,MACvB+I,MAAqB,OAAdmoB,QAAc,IAAdA,OAAc,EAAdA,EAAgBnoB,MACvBF,IAAmB,OAAdqoB,QAAc,IAAdA,OAAc,EAAdA,EAAgBroB,IACrB2oB,eAA8B,OAAdN,QAAc,IAAdA,OAAc,EAAdA,EAAgBM,kBAE7BC,EAAIC,GAAS1jB,mBAAS,CACzBojB,YAAa,gBACbpqB,KAA0B,OAApBqqB,QAAoB,IAApBA,OAAoB,EAApBA,EAAsBrqB,KAC5BhH,MAA2B,OAApBqxB,QAAoB,IAApBA,OAAoB,EAApBA,EAAsBrxB,MAC7B+I,MAA2B,OAApBsoB,QAAoB,IAApBA,OAAoB,EAApBA,EAAsBtoB,MAC7BF,IAAyB,OAApBwoB,QAAoB,IAApBA,OAAoB,EAApBA,EAAsBxoB,IAC3B2oB,eAAgB,QAGb9rB,EAAQiU,GAAa3L,mBAAS,CACjC2jB,OAAQ,GACRC,QAAS,GACTC,QAAS,GACTC,MAAO,GACPC,iBAAkB,GAClBC,OAAQ,GACRC,QAAS,GACTC,QAAS,GACTC,MAAO,KAGLre,EAAiB,CAAC,CAAErN,IAAK,uBAAwBgF,MAAO6lB,EAAGtqB,MACjE,CAAEP,IAAK,wBAAyBgF,MAAO6lB,EAAGtxB,OAC1C,CAAEyG,IAAK,wBAAyBgF,MAAO6lB,EAAGvoB,OAC1C,CAAEtC,IAAK,kCAAmCgF,MAAO6lB,EAAGE,gBACpD,CAAE/qB,IAAK,6BAA8BgF,MAAOgmB,EAAGzqB,MAC/C,CAAEP,IAAK,8BAA+BgF,MAAOgmB,EAAGzxB,OAChD,CAAEyG,IAAK,8BAA+BgF,MAAOgmB,EAAG1oB,QAIhDsF,oBAAU,KACN,GAAI0H,EAAS,CACT,IAAIgE,EAAgB,IAAKrU,GACzBqU,EAAciY,OAAShY,GAA0B,OAAQyX,EAAGzqB,KAAM,GAAI,IAAMgU,GAAuByW,EAAGzqB,MACtG+S,EAAckY,QAAUjY,GAAyByX,EAAGzxB,QAAUgb,GAAuByW,EAAGzxB,OACxF+Z,EAAcmY,QAAUlY,GAAyByX,EAAG1oB,OACpDgR,EAAcoY,MAAQnY,GAAuByX,EAAG5oB,KAChD8Q,EAAUI,GACVgX,GAAW,KAEhB,CAACU,IAEJ,MAAMhM,EAAcA,KAIhB,GAHAhJ,EAAU,kBAAmB,OAAQ,CAAEU,KAAM,IAAKC,OAAQ,UAC1DkM,EAAa,IAETtP,GAAwBtU,GAAS,CACjC9B,EAAYqtB,iBAAmB,CAACK,EAAIG,GACpC,IAEIna,EAAa/W,KAAKC,UAAUoD,GAChCgU,EAHc,kCACG,cAEiBN,GAClC1T,EAAYqtB,iBAAmB,CAACK,EAAIG,GACpCjkB,EAAS,CAAE5O,KjD9C8B,wCiD8CqBgF,YAAaA,EAAaE,QAAQ,IAChG0J,EAAS,CAAE5O,KjDxDU,oBiDwDqB6L,wBAAyB7G,SAGnEwlB,EAAc,OAWhBuF,EAAiB9gB,YAAavP,GAAUA,EAAMoN,wBAAwBb,6BAC5EwD,oBAAU,KACFsgB,GAAkB/qB,GAClB4J,EAAS,CAAE5O,KjD9E0B,sCiD+EjCuqB,EACAzb,EAAQY,KAAK6a,IAEbhD,KACAmD,EAAa,aAEV6B,IACPhF,KACAmD,EAAa,WAEjBF,EAAc,OACf,CAACuF,EAAgBxD,IAEpB9c,oBAAU,KACFjQ,IACAqe,EAAU,kBAAmB,OAAQ,CAAEU,KAAM,IAAKC,OAAQ,UAC1D5P,EAAS,CAAE5O,KjD/F0B,sCiDgGrCie,GAAe,KAEpB,IAEH,MAAMhD,EAAuBA,CAAChb,EAAGD,KAC7B,MAAM,KAAEoI,EAAI,MAAEyE,GAAU5M,EAAEiO,OAC1BjO,EAAEmZ,iBACF,IAAI+B,EAAgB,IAAKrU,GACrBoU,EAAWrO,EAAMmN,OAErB,GAAa,OAATha,EAAe,CACf,OAAQoI,GACJ,IAAK,OACD+S,EAAc4X,QAAU7X,GAAYE,GAA0BhT,EAAM8S,EAAU,GAAI,IAAMkB,GAAuBlB,GAC/G,MACJ,IAAK,QACDC,EAAc6X,QAAU5X,GAAyBF,IAAakB,GAAuBlB,GAG7FH,EAAUI,GACVwX,EAAM,IAAKD,EAAI,CAACtqB,GAAO8S,SACpB,GAAa,OAATlb,EAAe,CACtB,OAAQoI,GACJ,IAAK,OACD+S,EAAciY,QAAUlY,GAAYE,GAA0BhT,EAAM8S,EAAU,GAAI,IAAMkB,GAAuBlB,GAC/G,MACJ,IAAK,QACDC,EAAckY,QAAUjY,GAAyBF,IAAakB,GAAuBlB,GAG7FH,EAAUI,GACV2X,EAAM,IAAKD,EAAI,CAACzqB,GAAO8S,MAKzBsY,EAAuBrhB,IACzB,MAAM,KAAE/J,EAAI,MAAEyE,GAAUsF,EAAMjE,OAC9BiE,EAAMiH,iBAEN,IAAI+B,EAAgB,IAAKrU,GACzB,OAAQsB,GACJ,IAAK,OACD+S,EAAc4X,QAAUlmB,GAASuO,GAA0BhT,EAAMyE,EAAO,GAAI,IAAMuP,GAAuBvP,GACzG,MACJ,IAAK,QACDsO,EAAc6X,QAAU5X,GAAyBvO,IAAUuP,GAAuBvP,GAClF,MACJ,IAAK,QACDsO,EAAc8X,QAAU7X,GAAyBvO,GACjD,MACJ,IAAK,MACDsO,EAAc+X,MAAQ9X,GAAuBvO,GAC7C,MACJ,IAAK,iBACDsO,EAAcgY,iBxBvGFtmB,KACxB,MAAM8G,EAAgBb,OAAO,+FAK7B,OAHKjG,GAAS8G,EAAcZ,KAAKlG,GACvB,GACA,uCwBkGmCuO,CAAuBvO,IAAUuP,GAAuBvP,GAKjGgR,EAAU,kBAAmB,QAAS,CAAEU,KAAM,IAAKC,OAAQ,UAC3DmU,EAAM,IAAKD,EAAI,CAACtqB,GAAOyE,IACvBkO,EAAUI,IAERsY,EAAuBthB,IACzB,MAAM,KAAE/J,EAAI,MAAEyE,GAAUsF,EAAMjE,OAC9BiE,EAAMiH,iBAEN,IAAI+B,EAAgB,IAAKrU,GACzB,OAAQsB,GACJ,IAAK,OACD+S,EAAciY,OAAShY,GAA0BhT,EAAMyE,EAAO,GAAI,IAAMuP,GAAuBvP,GAC/F,MACJ,IAAK,QACDsO,EAAckY,QAAUjY,GAAyBvO,IAAUuP,GAAuBvP,GAClF,MACJ,IAAK,QACDsO,EAAcmY,QAAUlY,GAAyBvO,GACjD,MACJ,IAAK,MACDsO,EAAcoY,MAAQnY,GAAuBvO,GAKrDgR,EAAU,kBAAmB,QAAS,CAAEU,KAAM,IAAKC,OAAQ,UAC3DsU,EAAM,IAAKD,EAAI,CAACzqB,GAAOyE,IACvBkO,EAAUI,IAkBRnC,EAAeA,CAAC9Y,EAASuY,EAAYC,KAQvCK,EAPmB,CACf7Y,QAASA,EACTsY,SAAU,sBACVC,WAAYA,EACZC,WAAYA,IAIsB,OAAlCnQ,EAAmBkQ,YACnB7J,EAAS,CAAE5O,KjDpIO,iBiDoIqBuI,qBAAoB/I,cAInE,OACIsO,IAAAC,cAAA,WACK0c,EAAUrqB,OAAS,GAAK0N,IAAAC,cAAC6Z,GAAW,CAAC5nB,KAAMyqB,IAC5C3c,IAAAC,cAACuH,GAAa,KAAC,gCAEX0I,EACIlQ,IAAAC,cAACuP,GAAgB,MACjBxP,IAAAC,cAAA,WACID,IAAAC,cAAC0N,KAAI,CAACrD,aAAa,OACftK,IAAAC,cAAC4Z,GAAgB,KAAC,mBAClB7Z,IAAAC,cAACwH,KAAG,CAACqG,MAAI,GACL9N,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZgU,UAAQ,EACR5L,KAAK,OACLhD,GAAG,gBACHwQ,MAAM,eACN/I,MAAO6lB,EAAGtqB,MAAQ,GAClBmO,WAAatW,GAAMgb,EAAqBhb,EAAG,MAC3CqW,SAAUkd,EACVhwB,MAAOsD,EAAOisB,UAGtBjlB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,QACZgU,UAAQ,EACR5L,KAAK,QACLhD,GAAG,iBACHwQ,MAAM,gBACN/I,MAAO6lB,EAAGtxB,OAAS,GACnBmV,WAAatW,GAAMgb,EAAqBhb,EAAG,MAC3CqW,SAAUkd,EACVhwB,MAAOsD,EAAOksB,YAI1BllB,IAAAC,cAACwH,KAAG,CAACqG,MAAI,GACL9N,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,YACZgU,UAAQ,EACR5L,KAAK,QACLhD,GAAG,iBACHwQ,MAAM,gBACN/I,MAAO6lB,EAAGvoB,OAAS,GACnBmM,SAAUkd,EACVhwB,MAAOsD,EAAOmsB,QACdnd,YAAY,eACZK,KAAK,kBAGbrI,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,YACZoI,KAAK,MACLhD,GAAG,eACHwQ,MAAM,cACN/I,MAAO6lB,EAAGzoB,KAAO,GACjBqM,SAAUkd,EACVhwB,MAAOsD,EAAOosB,MACdpd,YAAY,eACZK,KAAK,mBAIjBrI,IAAAC,cAACwH,KAAG,CAACqG,MAAI,GACL9N,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,MACZgU,UAAQ,EACR5L,KAAK,iBACLhD,GAAG,iBACHwQ,MAAM,kBACN/I,MAAO6lB,EAAGE,gBAAkB,GAC5Brc,WAAatW,GAAMgb,EAAqBhb,EAAG,MAC3CqW,SAAUkd,EACVhwB,MAAOsD,EAAOqsB,iBACdrf,UAAW,IACXgC,YAAY,yBAIxBhI,IAAAC,cAAC4Z,GAAgB,KAAC,yBAClB7Z,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,KACA1H,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,WAAWoI,KAAK,QAAQhD,GAAG,eAAe2K,QAAU9P,GA/GnEkS,KACzB,GAAIA,EAAMjE,OAAOiJ,QAAS,CACtB,IAAIuc,EAAgB,IAAKb,GACzBa,EAAclB,YAAc,gBAC5BkB,EAActrB,KAAS,OAAFsqB,QAAE,IAAFA,OAAE,EAAFA,EAAItqB,KACzBsrB,EAActyB,MAAU,OAAFsxB,QAAE,IAAFA,OAAE,EAAFA,EAAItxB,MAC1BsyB,EAAcvpB,MAAU,OAAFuoB,QAAE,IAAFA,OAAE,EAAFA,EAAIvoB,MAC1BupB,EAAczpB,IAAQ,OAAFyoB,QAAE,IAAFA,OAAE,EAAFA,EAAIzoB,IACxBypB,EAAcd,eAAiB,KAC/BE,EAAMY,GACNvB,GAAW,GAEftU,EAAU,kBAAmB,QAAS,CAAEU,KAAM,IAAKC,OAAQ,WAmGuCmV,CAAoB1zB,KAC1F6N,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,iBAAiBgJ,IAAI,eAAe4c,OAAK,GAAC,6BAGnE9lB,IAAAC,cAACwH,KAAG,CAACqG,MAAI,GACL9N,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZgU,UAAQ,EACR5L,KAAK,OACLhD,GAAG,gBACHwQ,MAAM,eACN/I,MAAOgmB,EAAGzqB,MAAQ,GAClBmO,WAAatW,GAAMgb,EAAqBhb,EAAG,MAC3CqW,SAAUmd,EACVjwB,MAAOsD,EAAOssB,UAGtBtlB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,QACZgU,UAAQ,EACR5L,KAAK,QACLhD,GAAG,iBACHwQ,MAAM,gBACN/I,MAAOgmB,EAAGzxB,OAAS,GACnBmV,WAAatW,GAAMgb,EAAqBhb,EAAG,MAC3CqW,SAAUmd,EACVjwB,MAAOsD,EAAOusB,YAI1BvlB,IAAAC,cAACwH,KAAG,CAACqG,MAAI,GACL9N,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,YACZgU,UAAQ,EACR5L,KAAK,QACLhD,GAAG,iBACHwQ,MAAM,gBACN/I,MAAOgmB,EAAG1oB,OAAS,GACnBmM,SAAUmd,EACVjwB,MAAOsD,EAAOwsB,QACdxd,YAAY,eACZK,KAAK,kBAGbrI,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,YACZoI,KAAK,MACLhD,GAAG,eACHwQ,MAAM,cACN/I,MAAOgmB,EAAG5oB,KAAO,GACjBqM,SAAUmd,EACVjwB,MAAOsD,EAAOysB,MACdzd,YAAY,eACZK,KAAK,oBAKrBrI,IAAAC,cAAC2Y,GAAgB,CACbC,gBA9REqL,KACtBxH,EAAc,wBACd3D,KA6RoBA,YAAaA,EACbC,kBAnSEA,KACtBhY,EAAQY,KAAK,0BAmSOuX,YAAaA,IAAM7L,GAAwBtU,GAC3CoO,eAAgBA,O,cCzYrC,MAAM2e,GAAcllB,IACvB,MAEMmlB,EAAeniB,mBACrB,IAAI,KAAEvJ,EAAI,SAAE4L,EAAQ,MAAE4B,EAAK,GAAExQ,EAAE,aAAE2uB,EAAY,MAAEvwB,EAAK,wBAAE6S,EAAuB,cAAEwL,GAAkBlT,EACjG,MAAOvM,EAAK4xB,GAAU5kB,oBAAWiH,IAAwC,OAAZ0d,QAAY,IAAZA,OAAY,EAAZA,EAAcE,SAAU,GAAMre,EAAQ,iBAC5Fse,EAAaC,GAAkB/kB,oBAAS,GAEzCR,EAAWC,cACX5G,EAAOgH,YAAavP,GACfA,EAAMiO,SAAS1F,MAEpBmsB,EAAWnlB,YAAavP,GACnBA,EAAMiO,SAASnK,OAEpB2F,EAAa8F,YAAavP,GACrBA,EAAMiO,SAASxE,YA8C1B,OAZAsG,oBAAU,MACDtG,GAAc+qB,IACfC,GAAe,GACXlsB,GAA4B,IAApBmsB,EAASh0B,QACjBi0B,UAAiBpsB,EAAkB,OAAZ8rB,QAAY,IAAZA,OAAY,EAAZA,EAAcjsB,YAE9C,CAACG,EAAMmsB,IAEV3kB,oBAAU,KACNukB,GAAS3d,IAAuC,OAAZ0d,QAAY,IAAZA,OAAY,EAAZA,EAAcE,SAAU,GAAMre,EAAQ,iBAC3E,CAACS,IAGAvI,IAAAC,cAAA,WACID,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAAC8e,GAAG,QACJxmB,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,CAAC1H,UAAWgG,EAAW,iBAAmB,GAAIgD,IAAK5O,GAAOwN,GAChE9H,IAAAC,cAAA,WACID,IAAAC,cAACmJ,KAAK,CAACqd,SAAUT,EAAc9zB,KAAK,OAAOoF,GAAIA,EAAIgD,KAAMA,EAAM2H,QAhDlEoC,IACjBA,EAAMjE,OAAOrB,MAAQ,IA+CqFyJ,SA5CtFnE,IACpB,IAAIqiB,EAAeriB,EAAMjE,OAAOumB,MAAM,GAEtC,IAAIryB,EAAM,GACLoyB,GAGDpyB,EzB0NsBsyB,EAACzsB,EAAM0sB,EAAgBC,KACrD,MAAMC,EAAgB5sB,EAAKG,KAAK0sB,MAAM,KAAKC,MAAM/K,cAC3CgL,EAAe/sB,EAAK4T,MAAQ5T,EAAK4T,KAAO,KAAO,MAAMoZ,QAAQ,GAAK,EACxE,OAAIN,EAAeG,MAAM,KAAKI,QAAQ,IAAML,GAAiB,EAClD,oCAAoCF,EAEtCQ,WAAWH,GAAgBJ,EACzB,mCAAmCA,OAGnC,IyBpOGxZ,CAA8BoZ,EA9BrB,kBADH,IAgCZR,EAAO5xB,IAHP4xB,EAAOhgB,EAAY4B,EAAQ,eAAkB,IAKjD,IAAIwf,OAA4B3oB,UAAhB+nB,GAA6C,MAAhBA,GAAwBpyB,EAAIhC,OAAS,EAAK,GAAKo0B,EACxFa,EAA4B,oBAAjBxT,EAA+B,GAAKA,EACnD,GAAIuT,GAAKC,EAAG,CAER,MAAMC,EAAW,IAAIC,SACrBD,EAASE,OAAO,OAAQJ,GACxBE,EAASE,OAAO,gBAAiBH,GACjCzmB,EAAS,CAAE5O,KlD2CU,oBkD3CqBiI,KAAMqtB,EAAUltB,KAAM+J,EAAMjE,OAAO9F,SA2BoDqtB,OAnElH,kBAmE0IC,QAAM,IAC/I5nB,IAAAC,cAAC+B,KAAM,CAAC1K,GAAIA,EAAIgD,KAAMA,EAAM4F,UAAU,gBAAgB+B,QApDxDoC,IAClB2hB,EAAahK,QAAQ6L,UAmD6E,eAC7E5B,GAAgBA,EAAaE,SAC1BnmB,IAAAC,cAAA,KAAG3I,GAAIA,EAAI6I,KAAK,IAAI8B,QA3B/B9P,IACbA,EAAEmZ,iBACF+a,GAAe,GACfvlB,EAAS,CAAE5O,KlDyCgB,sBkDzCiB6H,IAAiB,OAAZksB,QAAY,IAAZA,OAAY,EAAZA,EAAcE,QAASnsB,SAAsB,OAAZisB,QAAY,IAAZA,OAAY,EAAZA,EAAcjsB,YAwBlCoG,OAAO,UAAU6lB,EAAajsB,WAE3EtE,GAASsK,IAAAC,cAAA,QAAMC,UAAU,SAASxK,GAClCpB,EAAIhC,OAAS,GAAK0N,IAAAC,cAAA,QAAMC,UAAU,SAAS5L,QCnFvDwzB,GAAsC,CAC/C,CAAE/oB,MAAO,2BAA4B+I,MAAO,4BAC5C,CAAE/I,MAAO,sBAAuB+I,MAAO,uBACvC,CAAE/I,MAAO,sBAAuB+I,MAAO,wBAG3CpO,OAAOC,OAAOmuB,ICNP,MAAMC,GAAS,CAClB,CAAEhpB,MAAO,KAAM+I,MAAO,MACtB,CAAE/I,MAAO,KAAM+I,MAAO,MACtB,CAAE/I,MAAO,MAAO+I,MAAO,OACvB,CAAE/I,MAAO,KAAM+I,MAAO,MACtB,CAAE/I,MAAO,IAAK+I,MAAO,KACrB,CAAE/I,MAAO,KAAM+I,MAAO,MACtB,CAAE/I,MAAO,MAAO+I,MAAO,OACvB,CAAE/I,MAAO,OAAQ+I,MAAO,QACxB,CAAE/I,MAAO,KAAM+I,MAAO,MACtB,CAAE/I,MAAO,IAAK+I,MAAO,MAGzBpO,OAAOC,OAAOouB,ICWP,MAAMC,GAAuBnnB,IAAW,IAADonB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC1C,MAAOhoB,EAASuO,GAAarO,aAAW,CAAC,oBAEnCZ,EAAWC,cACXC,EAAUC,eACVvP,EAAWyP,YAAavP,GAAUA,EAAMC,KAAKH,UAC9CA,GACDsP,EAAQY,KAAK,KAGjB,MAAO6nB,EAAaC,GAAkBpoB,oBAAS,IACxCqb,EAAWC,GAAgBtb,mBAAS,IACrC2R,EAAY,CACdC,WAAW,EACXC,UAAW,GACXC,gBAAiB,GACjBC,iBAAkBA,OAClBsW,iBAAiB,IAGdzZ,EAAaC,GAAkB7O,oBAAS,IACxCgS,EAAOC,GAAYjS,mBAAS2R,GAC7BvO,EAASA,IAAM6O,EAASN,GACxB2W,EAAoBzoB,YAAavP,GAAUA,EAAMoN,wBAAwB5B,4BACzEysB,EAAuBD,EACvBA,EAAkBrwB,MAAM+F,IAAK2c,IAAe,CAAEld,MAAOkd,EAAE3hB,KAAMwN,MAAOmU,EAAE3hB,QACtE,GACAwvB,EAAoB3oB,YAAavP,GAAUA,EAAMoN,wBAAwB/B,cACzEA,EAAe6sB,EACjBA,EAAkBvwB,MAAM+F,IAAK2c,IAAe,CAAEld,MAAOkd,EAAE3hB,KAAMwN,MAAOmU,EAAE3hB,KAAMA,KAAM2hB,EAAE3hB,QAAY,GAC9FyvB,EAA+B5oB,YAAavP,GAAUA,EAAMoN,wBAAwBtB,iCACpFA,EAAkCqsB,EACpCA,EAA6BxwB,MAAM+F,IAAK2c,IAAe,CAAEld,MAAOkd,EAAE3hB,KAAMwN,MAAOmU,EAAE3hB,KAAMA,KAAM2hB,EAAE3hB,QAAY,IACxG0vB,EAAcC,GAAmB3oB,mBAAS,IACjD,IAAItC,EAA0BmC,YAAavP,GAAmBA,EAAMoN,wBAAwBjB,yBAE5F,MAAOmsB,EAAWC,IAAgB7oB,mBAAS,IACrCjG,GAAa8F,YAAavP,GAAUA,EAAMC,KAAKwJ,YAC/CnF,GAAaiL,YAAavP,GAAUA,EAAMC,KAAKqE,aAC9C2mB,GAAUC,IAAexb,mBAAS,OAElC8oB,GAAcC,IAAmB/oB,oBAAS,GAC3CgpB,GAAcnpB,YAAavP,GAAUA,EAAMoN,wBAAwBrB,eACnE4sB,GAAyBD,GACzBA,GAAY/wB,MAAM+F,IAAK2c,IAAe,CAAEld,MAAOkd,EAAE3hB,KAAMwN,MAAOmU,EAAE3hB,QAChE,GAEAkwB,GAAarpB,YAAavP,GAAUA,EAAMoN,wBAAwB9B,cAElEutB,GAAwBD,GACxBA,GAAWjxB,MAAM+F,IAAK2c,IAAe,CAAEld,MAAOkd,EAAEe,KAAMlV,MAAOmU,EAAEe,QAC/D,GAEA0N,GAA4BvpB,YAAavP,GAAUA,EAAMoN,wBAAwBzB,8BACjFotB,GAAmCD,GACnCA,GAA0BnxB,MAAM+F,IAAK2c,IAAe,CAAEld,MAAOkd,EAAE3hB,KAAMwN,MAAOmU,EAAE3hB,QAC9E,GAEAswB,GAA+BzpB,YAAavP,GAAUA,EAAMoN,wBAAwBxB,iCACpFqtB,GAAsCD,GACtCA,GAA6BrxB,MAAM+F,IAAK2c,IAAe,CAAEld,MAAOkd,EAAE3hB,KAAMwN,MAAOmU,EAAE3hB,QACjF,GAEAwwB,GAA8B3pB,YAAavP,GAAUA,EAAMoN,wBAAwBvB,iCACnFstB,GAAiBD,GACjBA,GAA4BvxB,MAAM+F,IAAK2c,IAAe,CAAEld,MAAOkd,EAAE3hB,KAAMwN,MAAOmU,EAAE3hB,QAChF,IAEC0wB,GAAeC,IAAoB3pB,oBAAgC,OAAvBtC,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyByiB,WAAmC,OAAvBziB,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyByiB,UAAY,KACtHyJ,GAAyBC,IAA8B7pB,oBAAS,IAChE+d,GAAkBC,IAAuBhe,mBAAS,OAClDwR,GAAMC,IAAWzR,mBAAS,KAC1B8pB,GAAcC,IAAmB/pB,oBAAS,IAC1C7G,GAAoBwQ,IAAyB3J,mBAASmJ,IAEvD6gB,GAAiB,CACnBlX,aAAc,KACdhhB,UAAW,KACXm4B,cAAe,KACfl4B,SAAU,KACV00B,OAAQ,KACR70B,IAAK,KACLs4B,IAAK,KACLC,WAAY,KACZC,WAAY,KACZC,cAAe,KACfC,2BAA4B,KAC5BC,4BAA6B,KAC7BC,UAAW,KACXC,uBAAwB,KACxBC,wBAAyB,KACzBC,cAAe,KACfC,UAAW,GACXC,UAAW,KACXC,OAAQ,KACRC,MAAO,KACPC,yBAA0B,KAC1BC,gBAAiB,KACjBC,2BAA4B,KAC5BC,kBAAmB,KACnBC,mBAAoB,KACpBC,4BAA6B,KAC7BC,oBAAqB,KACrBC,gBAAiB,KAEjBC,eAAgB,KAChBC,qBAAsB,GACtBC,uBAAwB,KACxBC,iCAAkC,KAClCC,mCAAoC,KACpChQ,gBAAiB,KACjB8E,oBAAqB,GACrBmL,mBAAoB,CAChBC,MAAO,KACPC,gBAAiB,KACjBC,gBAAiB,KACjBC,yBAA0B,MAE9BC,4BAA6B,CACzBC,oCAAqC,KACrCnzB,KAAM,KACNpH,IAAK,KACLw6B,UAAW,KACXC,sBAAuB,MAE3BC,qBAAsB,CAClBC,QAAS,KACTC,aAAc,KACd57B,KAAM,KACN67B,yBAA0B,KAC1BC,0BAA2B,KAC3BC,QAAS,KACTC,kBAAmB,QAGpBtM,GAAUuM,IAAe7sB,mBAASgqB,KAClC8C,GAAsBC,IAA2B/sB,mBAAS,KAC1DgtB,GAAwBC,IAA6BjtB,mBAAS,IAC/DktB,GAAkB,CACpBp7B,UAAW,GACXm4B,cAAe,GACfl4B,SAAU,GACVH,IAAK,GACLs4B,IAAK,GACLiD,kBAAmB,GACnBhD,WAAY,GACZC,WAAY,GACZC,cAAe,GACfC,2BAA4B,GAC5BC,4BAA6B,GAC7BC,UAAW,GACXC,uBAAwB,GACxBC,wBAAyB,GACzB0C,OAAQ,GACRvC,UAAW,GACXC,OAAQ,GAERW,qBAAsB,GACtBD,eAAgB,GAChB5P,gBAAiB,GACjB8E,oBAAqB,GAErB2M,cAAe,GACfC,aAAc,GACdf,QAAS,GACTC,aAAc,GACd57B,KAAM,GACN67B,yBAA0B,GAC1BC,0BAA2B,GAC3BC,QAAS,GACT1B,gBAAiB,GACjBE,kBAAmB,GACnBH,yBAAyB,GACzBE,2BAA2B,GAC3BE,mBAAoB,GACpBC,4BAA6B,GAC7BC,oBAAqB,GACrBQ,MAAO,GACPC,gBAAiB,GACjBC,gBAAiB,GACjBC,yBAA0B,GAC1BW,kBAAmB,KAEhBl1B,GAAQiU,IAAa3L,mBAASktB,KAC9BK,GAAgBC,IAAqBxtB,mBAASktB,KAE9CtC,GAAW6C,IAAgBztB,mBAAS,oBACpC0gB,GAAqBgN,IAA0B1tB,mBAAS,oBACxD2tB,GAAcC,IAAmB5tB,mBAAS,oBAC1C6tB,GAAsBC,IAA2B9tB,mBAAS,KAC1D+tB,GAAuBC,IAA4BhuB,oBAAS,IAC5DiuB,GAAoBC,IAAyBluB,oBAAS,IACtDmuB,GAAiCC,IAAsCpuB,oBAAS,GAEjFquB,GAAiBxuB,YAAavP,GAAmBA,EAAMiO,SAASxB,YAChEuxB,GAAmBzuB,YAAavP,GAC3BA,EAAMiO,SAASnK,OAEpBm6B,GAAqB1uB,YAAavP,GAC7BA,EAAMiO,SAASxE,YAEpBiD,GAAkB6C,YAAavP,GAC1BA,EAAMiO,SAASvB,iBAEpB2jB,GAAiB9gB,YAAavP,GAAUA,EAAMoN,wBAAwBb,6BACtEsgB,GAAYtd,YAAavP,GAAUA,EAAMoN,wBAAwBtJ,OAIvEiM,oBAAU,KACN,GAAIjQ,IACAqe,EAAU,kBAAmB,OAAQ,CAAEU,KAAM,IAAKC,OAAQ,UAC1D5P,EAAS,CAAE5O,KrDzK6B,uCqDyKqBgH,SAAUO,EAAexB,6BACtF6I,EAAS,CAAE5O,KrD1K6B,uCqD0KqBgH,SAAUO,EAAe5B,eACtFiJ,EAAS,CAAE5O,KrD3K6B,uCqD2KqBgH,SAAUO,EAAejB,gBACtFsI,EAAS,CAAE5O,KrD5K6B,uCqD4KqBgH,SAAUO,EAAe1B,eACtF+I,EAAS,CAAE5O,KrD7K6B,uCqD6KqBgH,SAAUO,EAAelB,kCACtFuI,EAAS,CAAE5O,KrD9K6B,uCqD8KqBgH,SAAUO,EAAerB,+BACtF0I,EAAS,CAAE5O,KrD/K6B,uCqD+KqBgH,SAAUO,EAAepB,kCACtFyI,EAAS,CAAE5O,KrDhL6B,uCqDgLqBgH,SAAUO,EAAenB,kCAG3D,OAAvB0G,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBie,mBAAmB,CAC5C,IAAI6S,EAAM,GACNC,EAAa/wB,EAAwBie,kBAAkB3V,KAAK8V,GAAgB,YAAXA,EAAElrB,MACnE69B,GACAD,EAAIluB,KAAK,CAAEtH,KAAMy1B,EAAW9zB,KAAO,KAAO8zB,EAAWn+B,MAAQ,KAAOm+B,EAAWvzB,QAAU,IAAMuzB,EAAWtzB,SAAW,KAAOszB,EAAWzzB,YAAayC,MAAOgxB,EAAW/zB,qBAC1K,IAAIg0B,EAAgBhxB,EAAwBie,kBAAkBzjB,OAAO4jB,GAAgB,cAAXA,EAAElrB,MAC5E,GAAI89B,EAAc19B,OAAS,EAAG,CAC1B,IAAI2G,EAAO+2B,EAAc1wB,KAAI,SAAU8d,GAAK,MAAQ,CAAE9iB,KAAM8iB,EAAEnhB,KAAO,KAAOmhB,EAAExrB,MAAQ,KAAOwrB,EAAE5gB,QAAU,IAAM4gB,EAAE3gB,SAAW,KAAO2gB,EAAE9gB,YAAayC,MAAOqe,EAAEphB,uBAC3J/C,EAAK0oB,OACLmO,EAAMA,EAAI5wB,OAAOjG,GAErB,MAAMg3B,EAAOH,EACPA,EAAIxwB,IAAK2c,IAAe,CAAEld,MAAOkd,EAAEld,MAAO+I,MAAOmU,EAAE3hB,KAAMA,KAAM2hB,EAAE3hB,QACjE,GACN6vB,GAAa8F,KAGtB,IAEHtuB,oBAAU,KACFioB,GAAqBE,GAAqBQ,IAAeE,IAAcT,GAAgCW,IACpGE,IAAgCE,IAA+BM,IAClEjb,GAAe,IAEpB,CAACyZ,EAAmBE,EAAmBQ,GAAaE,GAAYT,EAA8BW,GAA2BE,GAA8BE,KAE1JnpB,oBAAU,KACN,GAAIioB,EAAmB,CAEnB,IAAI5V,EAAW,GACf,GAA2B,OAAvBhV,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyByiB,UAAW,CACpC,IAAIxoB,EAA8B,OAAvB+F,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyByiB,UACpC,IAAK,IAAIvN,EAAI,EAAGA,EAAIjb,EAAK3G,OAAQ4hB,IAC7BF,EAASpS,KAAK,CACVtK,GAAI2B,EAAKib,GAAGE,aACZ/gB,SAAU4F,EAAKib,GAAG7gB,SAClBk4B,cAAetyB,EAAKib,GAAGqX,cACvBn4B,UAAW6F,EAAKib,GAAG9gB,UACnBF,IAAK+F,EAAKib,GAAGhhB,IACbs4B,IAAKvyB,EAAKib,GAAGsX,IACb0E,cAAeC,GAAgBl3B,EAAKib,IAAM,IAAM,MAK5DnB,GAAQiB,GACRqX,IAAgB,KAErB,CAACzB,IAEJjoB,oBAAU,KACN,IAAIoF,EAAQuH,GAAyBtV,IACrC0wB,EAAe3iB,GAASopB,GAAgBvO,MACzC,CAAC5oB,GAAQ4oB,GAAU9O,KAEtBnR,oBAAU,KACN,IAAIyuB,EAAqC,IAA9BxO,GAASsK,UAAU55B,OAAe,kBAAoBsvB,GAASsK,UAAUmE,KAAK,MACzFtB,GAAaqB,IACd,CAACxO,GAASsK,YAEbvqB,oBAAU,KAAO,IAADkgB,EAAAyO,EACZ,IAAIpO,EAAY,GAC+B,IAADqO,GAAd,QAA5B1O,EAAAD,GAASI,2BAAmB,IAAAH,OAAA,EAA5BA,EAA8BvvB,QAAS,IACvC4vB,EAAwC,QAA/BqO,EAAG3O,GAASI,2BAAmB,IAAAuO,OAAA,EAA5BA,EAA8BjxB,IAAI6gB,IAC1C,IAAI/C,EAA2B,OAAvBpe,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBie,kBAAkBzjB,OAAOg3B,GAAKA,EAAEx0B,qBAAuBmkB,GACxF,GAAI/C,GAAKA,EAAE9qB,OAAS,EAChB,OAAO8qB,EAAE,GAAGnhB,KAAO,KAAOmhB,EAAE,GAAGxrB,MAAQ,KAAOwrB,EAAE,GAAG5gB,QAAU,IAAM4gB,EAAE,GAAG3gB,SAAW,KAAO2gB,EAAE,GAAG9gB,eAK3G,IAAIm0B,GAAkB,QAATH,EAAApO,SAAS,IAAAoO,OAAA,EAATA,EAAWh+B,QAAS,EAAI4vB,EAAUmO,KAAK,MAAQ,kBAC5DrB,GAAuByB,IACxB,CAAC7O,GAASI,sBAEbrgB,oBAAU,KAEN,GAAqC,MAAjCigB,GAASmL,qBAA8B,CACvC,IAAI2D,EAAgD,IAAzC9O,GAASmL,qBAAqBz6B,OAAe,kBAAoBqK,MAAMg0B,KAAK/O,GAASmL,qBAAsB6D,GAAUA,EAAOt2B,MAAM+1B,KAAK,MAClJnB,GAAgBwB,GAChBtB,GAAwBsB,GAExB,IAAIniB,EAAO,IAAKvV,IACZ8iB,EAAWnf,MAAMg0B,KAAK/O,GAASmL,qBAAsB6D,GAAUA,EAAOt2B,MAC1EiU,EAAKwe,qBAAuB,IAEvBnL,GAASoL,wBAA0B5C,GACpC7b,EAAKwe,qBAAuB,wEACrBnL,GAASoL,wBAA8C,IAApBlR,EAASxpB,SACnDic,EAAKwe,qBAAuB,0EAGhC9f,GAAUsB,KAEf,CAACqT,GAASmL,uBAEbprB,oBAAU,KACFsgB,IAAkBjjB,GAClB8B,EAAS,CAAE5O,KrD/S0B,sCqDgThB,oBAAjB83B,GACA6G,GAAmBvF,IACnBwD,GAAkBN,IAClBvhB,GAAUuhB,IACVlP,GAAoB,MACpB7F,KACA4Q,IAAgB,GAChBzN,EAAa,YACW,gBAAjBoN,EACPzW,EAAS,CACLL,WAAW,EACXC,UAAW,6HACXC,gBAAiB,OACjBC,iBAAkByd,GAClBnH,iBAAiB,IAEG,oBAAjBK,GACPK,IAAgB,GAChBrpB,EAAQY,KAAK,0BAEb6X,KACAmD,EAAa,aAEV6B,KACPhF,KACAmD,EAAa,WAEjBqN,EAAgB,KACjB,CAAChI,GAAgBxD,KACpB9c,oBAAU,MACDtG,IAAcwhB,KACf5P,GAAU,IAAKjU,GAAQ,CAAC6jB,IAAW3mB,KACnC4mB,GAAY,QAEjB,CAAC5mB,KAEJ,MAAM46B,GAA4BA,KAC9BhwB,EAAS,CAAE5O,KrDhVc,oBqDgViB6L,wBAAyB,OACnEiD,EAAQY,KAAK,eAGX6G,GAAcpE,IAChB,MAAM,KAAE/J,EAAI,MAAEyE,GAAUsF,EAAMjE,OAC9B,IAAIgN,EAAWrO,EAAMmN,OACjBqC,EAAO,IAAKvV,IAChB,OAAQsB,GACJ,IAAK,YACDiU,EAAKnb,UAAYkb,GAA2BhU,EAAM8S,EAAU,GAAI,IAAMkB,GAAuBlB,GAC7F,MACJ,IAAK,gBACDmB,EAAKgd,cAAgBjd,GAA2BhU,EAAM8S,EAAU,EAAG,GACnE,MACJ,IAAK,WACDmB,EAAKlb,SAAWib,GAA2BhU,EAAM8S,EAAU,GAAI,IAAMkB,GAAuBlB,GAC5F,MACJ,IAAK,YACDmB,EAAKud,UAAYxd,GAA2BhU,EAAM8S,EAAU,GAAI,GAChE,MACJ,IAAK,gBACD,IAAIjF,EAAMknB,GAAwB,EAAI,EACtC9gB,EAAKogB,cAAgBrgB,GAA2BhU,EAAM8S,EAAU,GAAIjF,IAAQmG,GAAuBlB,GAMvG+gB,GADS,kBAAT7zB,EACY,IAAKsnB,GAAU4L,4BAA6B,IAAK5L,GAAS4L,4BAA6BlzB,KAAM8S,IAG7F,IAAKwU,GAAU,CAACtnB,GAAO8S,IAEvCH,GAAUsB,IAGRwiB,GAAuBA,CAACz2B,EAAM02B,EAAWlpB,KAKvCgnB,GAJCkC,EAIiB,IAAKnC,GAAgB,CAACv0B,GAAO,IAH7B,IAAKu0B,GAAgB,CAACv0B,GAAUwN,EAAH,kBAOjDmpB,GAAwBptB,oBACvBqtB,GAAsBC,IAA2B7vB,mBACpDsgB,GAASqK,cAAgB,CAACrK,GAASqK,eAAiB,IAElDmF,GAAuBtV,IAAc,IAADuV,EAAAC,EACtCH,GAAwBrV,GACxBiV,GAAqB,gBAA4B,QAAbM,EAAEvV,EAAS,UAAE,IAAAuV,OAAA,EAAXA,EAAatyB,MAAO,gBAC1DovB,GAAY,IAAKvM,GAAU,cAA8B,QAAd0P,EAAGxV,EAAS,UAAE,IAAAwV,OAAA,EAAXA,EAAavyB,QAC3D,IAAI6D,EAAQgnB,EAAoBA,EAAkBrwB,MAAM+N,KAAM2U,IAAO,IAADsV,EAAE,OAAOtV,EAAE3hB,QAAoB,QAAhBi3B,EAAKzV,EAAS,UAAE,IAAAyV,OAAA,EAAXA,EAAaxyB,SAAW,KAChHuwB,KAAyB1sB,GAAQA,EAAM4uB,yBAGrCC,GAAmB5tB,oBAClB6tB,GAAmBC,IAAwBrwB,mBAAS,IACrDswB,GAA6B9V,IAC/B6V,GAAqB7V,GACrB,MAAM+V,EAAoB/V,EAASxc,IAAIlG,GAAQA,EAAK2F,OACpDovB,GAAY,IAAKvM,GAAU,UAAeiQ,KAGxCC,GAAmCjuB,oBAClCkuB,GAAmCC,IAAwC1wB,oBAC7C,QAAjC2mB,EAAArG,GAAS0K,gCAAwB,IAAArE,OAAA,EAAjCA,EAAmC3tB,MAAO,CAACsnB,GAAS0K,yBAAyBhyB,MAAQ,IAEnF23B,GAAoCnW,IAAc,IAADoW,EAAAC,EACnDH,GAAqClW,GAErC,MAAMsW,EAAmC,QAAdF,EAAGpW,EAAS,UAAE,IAAAoW,OAAA,EAAXA,EAAanzB,MAE3CgyB,GAAqB,2BAA4BqB,EAAuB,qBAExE,IAAIC,EAAmB/H,GAAY/wB,MAAM+N,KAAM2U,GAAeA,EAAE3hB,OAAS83B,GAErE7jB,EAAO,IAAKvV,IAEhBuV,EAAKwe,qBAAuB,GAC5B1C,IAAgB,GAEZgI,GAAoBA,EAAiBC,gBACrCjI,IAAgB,GACXzI,GAASoL,yBACVze,EAAKwe,qBAAuB,0EAIpCxe,EAAKie,2BAA6B5K,GAAS4K,2BAA6B,GAAKje,EAAKie,2BAClFje,EAAK+d,yBAA2B,GAE5B8F,KAA6D,QAAxCD,EAAKvQ,GAAS4K,kCAA0B,IAAA2F,OAAA,EAAnCA,EAAqC73B,QAC/DiU,EAAK+d,yBAA2B,4DAGpCrf,GAAUsB,GACV4f,GAAY,IAAKvM,GAAU,yBAA8ByQ,KAGvDE,GAAqC1uB,oBACpC2uB,GAAqCC,IAA0CnxB,oBAC/C,QAAnC4mB,EAAAtG,GAAS4K,kCAA0B,IAAAtE,OAAA,EAAnCA,EAAqC5tB,MAAO,CAACsnB,GAAS4K,2BAA2BlyB,MAAQ,IAEvFo4B,GAAsC5W,IAAc,IAAD6W,EAAAC,EAErDH,GAAuC3W,GAEvC,MAAMsW,EAAmC,QAAdO,EAAG7W,EAAS,UAAE,IAAA6W,OAAA,EAAXA,EAAa5zB,MAC3C,IAAIwP,EAAO,IAAKvV,IACZ65B,EAAqBvI,GAAY/wB,MAAM+N,KAAM2U,GAAeA,EAAE3hB,OAAS83B,GAE3ErB,GAAqB,6BAA8BqB,EAAuB,uBAE1E7jB,EAAK+d,yBAA2B1K,GAAS0K,yBAA2B,GAAK/d,EAAK+d,yBAC9E/d,EAAKie,2BAA6B,IAEG,QAAjCoG,EAAAhR,GAAS0K,gCAAwB,IAAAsG,OAAA,EAAjCA,EAAmCt4B,QAAS83B,IAC5C7jB,EAAKie,2BAA6B,4DAGtCvf,GAAUsB,GACV4f,GAAY,IAAKvM,GAAU,2BAAgCiR,KAGzDC,GAA6BjvB,oBAC5BkvB,GAA6BC,IAAkC1xB,oBAC9B,QAApC6mB,EAAAvG,GAAS4L,mCAA2B,IAAArF,OAAA,EAApCA,EAAsCuF,WAAY,CAAC9L,GAAS4L,4BAA4BE,WAAa,IAEnGuF,GAA8BnX,IAAc,IAADoX,EAAAC,EAC7CH,GAA+BlX,GAC/BiV,GAAqB,qBAAiC,QAAbmC,EAAEpX,EAAS,UAAE,IAAAoX,OAAA,EAAXA,EAAan0B,MAAO,uBAE/D,MAAMqzB,EAAmC,QAAde,EAAGrX,EAAS,UAAE,IAAAqX,OAAA,EAAXA,EAAap0B,MAC3CovB,GAAY,IAAKvM,GAAU4L,4BAA6B,IAAK5L,GAAS4L,4BAA6BE,UAAW0E,MAG5GgB,GAAkBvvB,oBACjBwvB,GAAkBC,IAAuBhyB,oBACf,QAA7B8mB,EAAAxG,GAASgM,4BAAoB,IAAAxF,GAAS,QAATC,EAA7BD,EAA+ByF,eAAO,IAAAxF,OAAT,EAA7BA,EAAwC/tB,MAAO,CAACsnB,GAASgM,qBAAqBC,QAAQvzB,MAAQ,IAE5Fi5B,GAAmBzX,IAAc,IAAD0X,EAAAC,EAClCH,GAAoBxX,GAEpB,MAAM/c,EAAmB,QAAdy0B,EAAG1X,EAAS,UAAE,IAAA0X,OAAA,EAAXA,EAAaz0B,MAC3BovB,GAAY,IAAKvM,GAAU4L,4BAA6B,IAAK5L,GAAS4L,4BAA6BE,UAAW3uB,KAC9GgyB,GAAqB,UAAWhyB,EAAO,iCACvC,MAAM20B,EAA+C,OAA5B9I,SAA4B,IAA5BA,QAA4B,EAA5BA,GAA8BrxB,MAAM+N,MAAK,SAAUmd,GACxE,OAAOA,EAAEnqB,OAASyE,KAEtBovB,GAAY,IAAKvM,GAAUgM,qBAAsB,IAAKhM,GAASgM,qBAAsB,QAAa8F,EAAkB5F,aAAyB,UAAV/uB,EAAkD,QAAjC00B,EAAI7R,GAASgM,4BAAoB,IAAA6F,OAAA,EAA7BA,EAA+B3F,aAAe,SAGpM6F,GAA+B9vB,oBAC9B+vB,GAA+BC,IAAoCvyB,mBAAS,IAC7EwyB,GAAyChY,IAC3C+X,GAAiC/X,GACjCqS,GAAY,IAAKvM,GAAU,qBAA0B9F,KAGnDiY,GAA0BlwB,oBACzBmwB,GAA0BC,IAA+B3yB,mBAAS,IACnE4yB,GAA2BpY,IAAc,IAADqY,EAAAC,EAC1CH,GAA4BnY,GAE5B,MAAMxhB,EAAO,kBACPyE,EAAmB,QAAdo1B,EAAGrY,EAAS,UAAE,IAAAqY,OAAA,EAAXA,EAAap1B,MAC3B,IAAIwP,EAAO,IAAKvV,IAEhB+3B,GAAqBz2B,EAAMyE,EAAO,oBAClC,IAAIs1B,EAAW7J,GAAWjxB,MAAM+N,KAAMgtB,GAAeA,EAAEtX,KAAKd,iBAAuB,OAALnd,QAAK,IAALA,OAAK,EAALA,EAAOmd,gBACjFqY,EAAgBF,EAAWA,EAASrX,KAAOje,EAG/CwP,EAAKke,kBAAoB7K,GAAS6K,kBAAoB,GAAKle,EAAKke,kBAEhEle,EAAKge,gBAAkB,GAClB8H,GAGY,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAUrX,SAAmC,QAA/BoX,EAAKxS,GAAS6K,yBAAiB,IAAA2H,OAAA,EAA1BA,EAA4BpX,QACpDzO,EAAKge,gBAToB,0DAMzBhe,EAAKge,gBAAkB,8CAM3Btf,GAAUsB,GACV8f,GAAwBkG,GACxBpG,GAAY,IAAKvM,GAAU,CAACtnB,GAAO+5B,KAGjCG,GAA4B3wB,oBAC3B4wB,GAA4BC,IAAiCpzB,mBAAS,IACvEqzB,GAA6B7Y,IAAc,IAAD8Y,EAAAC,EAC5CH,GAA8B5Y,GAC9B,MACM/c,EAAmB,QAAd61B,EAAG9Y,EAAS,UAAE,IAAA8Y,OAAA,EAAXA,EAAa71B,MAC3B,IAAIwP,EAAO,IAAKvV,IAEZ87B,EAAiBtK,GAAWjxB,MAAM+N,KAAMgtB,GAAeA,EAAEtX,KAAKd,iBAAuB,OAALnd,QAAK,IAALA,OAAK,EAALA,EAAOmd,gBACvF6Y,EAAsBD,EAAiBA,EAAe9X,KAAOje,EAEjEwP,EAAKge,gBAAkB3K,GAAS2K,gBAAkB,GAAKhe,EAAKge,gBAE5Dhe,EAAKke,kBAAoB,IAEG,QAAxBoI,EAAAjT,GAAS2K,uBAAe,IAAAsI,OAAA,EAAxBA,EAA0B7X,SAAuB,OAAd8X,QAAc,IAAdA,OAAc,EAAdA,EAAgB9X,QACnDzO,EAAKke,kBAAoB,0DAG7Bxf,GAAUsB,GACVggB,GAA0BwG,GAC1B5G,GAAY,IAAKvM,GAAU,kBAAQkT,KAIjCE,GAAkBA,CAACC,EAAmBC,EAAkBC,EAAeC,KACzE,IAAIC,EAAiBJ,EAAkBjZ,QAAQpqB,MAAMsC,KACrD,GAAImhC,EAAgB,CAChB,IAAIC,EAAUJ,EAAiB5tB,KAAM2U,GAAgBA,EAAEld,MAAMmd,gBAAkBmZ,EAAenZ,eAAiBD,EAAEnU,MAAMoU,gBAAkBmZ,EAAenZ,eACpJqZ,EAAWD,EAAU,CAACA,GAAW,KACrC,GAAIF,EAAY,CACZ,IAAII,EAAgBP,EAAkBjZ,QAAQpqB,MAAMkqB,SACpD,GAAIwZ,EACqBE,EAAc1T,MAAK,SAAU1oB,GAC9C,OAAOA,EAAK2F,QAAUu2B,EAAQv2B,UAG9By2B,EAAc5zB,KAAK0zB,GAG3BL,EAAkBjZ,QAAQpqB,MAAMsC,KAAO,GACvCqhC,EAAWC,EAGf,GAAID,EACA,OAAQJ,GACJ,IAAK,cACD/D,GAAoBmE,GACpB,MACJ,IAAK,WACD3D,GAA0B2D,GAC1B,MACJ,IAAK,2BACDtD,GAAiCsD,GACjC,MACJ,IAAK,6BACD7C,GAAmC6C,GACnC,MACJ,IAAK,qBACDtC,GAA2BsC,GAC3B,MACJ,IAAK,UACDhC,GAAgBgC,GAChB,MACJ,IAAK,uBACDzB,GAAsCyB,GACtC,MACJ,IAAK,kBACDrB,GAAwBqB,GACxB,MACJ,IAAK,oBACDZ,GAA0BY,QAOlCN,EAAkBjZ,QAAQG,UAKhC/M,GAAc/K,IAAW,IAADoxB,EAAAC,EAC1B,MAAM,KAAEp7B,EAAI,MAAEyE,GAAUsF,EAAMjE,OAC9B,IAAIhO,EAAU,GACVuY,EAAa,GACbC,EAAa,GACb2D,EAAO,IAAKvV,IAChB,OAAQsB,GACJ,IAAK,YACDy2B,GAAqBz2B,EAAMyE,EAAO,cAClCwP,EAAKnb,WAAa2L,GAASuP,GAA2BhU,EAAMyE,EAAO,GAAI,IAAMuP,GAAuBvP,GACpG,MACJ,IAAK,gBACDwP,EAAKgd,cAAgBjd,GAA2BhU,EAAMyE,EAAO,EAAG,GAChE,MACJ,IAAK,WACDgyB,GAAqBz2B,EAAMyE,EAAO,aAClCwP,EAAKlb,UAAY0L,GAASuP,GAA2BhU,EAAMyE,EAAO,GAAI,IAAMuP,GAAuBvP,GACnG,MACJ,IAAK,MACDgyB,GAAqBz2B,EAAMyE,EAAO,OAClCwP,EAAKrb,IAAMob,GAAwBvP,GACnCwP,EAAKkgB,kBAAiC,KAAblgB,EAAKrb,IAAayiC,GAA0B52B,GAAS,GAE1EA,GAAS6iB,GAAS4L,4BAA4Bt6B,MAC9Cqb,EAAKrb,IAAM,oDAEX6L,GAAoC,KAA3BwP,EAAKkgB,mBAAyC,KAAblgB,EAAKrb,MAC/C4pB,GAAY,OACZ1qB,EAAU,uCAAyC2M,EAAQ,iBAC3D4L,EAAa,aACbC,EAAa/W,KAAKC,UAAUiL,GAC5BmM,GAAa9Y,EAASuY,EAAYC,GAClC9J,EAAS,CAAE5O,KrDhpBK,uBqDgpB6BgB,IAAK6L,KAEtD,MACJ,IAAK,MACDgyB,GAAqBz2B,EAAMyE,EAAO,0BAClCwP,EAAKid,I5BxhBOzsB,IAGA,oJAEJkG,KAAKlG,GACd,gBAGNA,GAPiB,+BAOMkG,KAAKlG,GACtB,GAGJ,e4B2gBgBuP,CAAwBvP,GACnC,MACJ,IAAK,aACDwP,EAAKkd,WAAand,GAA6BvP,GAC/C,MACJ,IAAK,aACDwP,EAAKmd,W5BhjBc3sB,KAC/B,MAAM62B,EAAqB5wB,OAAO,kBAKlC,OAHKjG,GAAS62B,EAAmB3wB,KAAKlG,GAC5B,GACA,2B4B2iBoBuP,CAA+BvP,GACjD,MACJ,IAAK,gBACDgyB,GAAqBz2B,EAAMyE,EAAO,kBAClCwP,EAAKod,c5B3iBiB5sB,KAClC,MAAM82B,EAAoB7wB,OAAO,uBAKjC,OAHKjG,GAAQ82B,EAAkB5wB,KAAKlG,GAC1B,GACA,mD4BsiBuBuP,CAAkCvP,GACvD,MACJ,IAAK,YACDwP,EAAKud,UAAYxd,GAA2BhU,EAAMyE,EAAO,GAAI,GACzDA,GACAywB,IAAsB,GACtBrB,GAAY,IAAKvM,GAAU,CAACtnB,GAAOyE,MAGnCywB,IAAsB,GACtBrB,GAAY,IACLvM,GACHkK,UAAW/sB,EACXgtB,uBAAwB,KACxBC,wBAAyB,OAG7B8C,GAAkB,IACXD,GACH9C,uBAAwB,GACxBC,wBAAyB,MAGjC,MACJ,IAAK,SACD+E,GAAqBz2B,EAAMyE,EAAO,UAClCovB,GAAY,IAAKvM,GAAU,CAACtnB,GAAO+J,EAAMjE,OAAO9I,KAChD,MACJ,IAAK,QACDy5B,GAAqBz2B,EAAMyE,EAAO,yBAClCovB,GAAY,IAAKvM,GAAU,CAACtnB,GAAkB,MAAVyE,IACpC,MACJ,IAAK,kBACDgyB,GAAqBz2B,EAAMyE,EAAO,kBAClCovB,GAAY,IAAKvM,GAAU,CAACtnB,GAAkB,MAAVyE,IACpC,MACJ,IAAK,iBACDwP,EAAKue,e5BlmBQ/tB,KACzB,MAAM8G,EAAgBb,OAAO,cAK7B,OAHKjG,GAAS8G,EAAcZ,KAAKlG,GACvB,GACA,6B4B6lBwBuP,CAAyBvP,GAC/C,MACJ,IAAK,yBACDgyB,GAAqBz2B,EAAMyE,EAAO,wBAElCwP,EAAKwe,qBAAuB,GACd,MAAVhuB,GAAiBqrB,GACjB7b,EAAKwe,qBAAuB,wEACX,MAAVhuB,GAA0D,IAAzC6iB,GAASmL,qBAAqBz6B,SACtDic,EAAKwe,qBAAuB,0EAEhCoB,GAAY,IAAKvM,GAAU,CAACtnB,GAAkB,MAAVyE,IACpC,MACJ,IAAK,kBACDgyB,GAAqBz2B,EAAMyE,EAAO,qBAEvB,QAAP02B,EADS7T,GAASI,2BACX,IAAAyT,OAAA,EAANA,EAAQrO,QAAQroB,KAAW,EAC5Bqa,MAAM,iEAEN+U,GAAY,IAAKvM,GAAU,CAACtnB,GAAOyE,IAEvC,MACJ,IAAK,sBAED,IAAW,QAAP22B,EADS9T,GAASI,2BACX,IAAA0T,OAAA,EAANA,EAAQtO,QAAQ/iB,EAAMjE,OAAO9I,MAAQ,GACtC,IAAK+M,EAAMjE,OAAOiJ,QAAS,CACvB,IAAIysB,EAAgBlU,GAASI,oBAAoBxoB,OAAOJ,GAAQA,IAASiL,EAAMjE,OAAO9I,IACtF62B,GAAY,IAAKvM,GAAU,CAACtnB,GAAOw7B,UAInClU,GAAS1E,kBAAoB7Y,EAAMjE,OAAO9I,GAC1C8hB,MAAM,kEAGN7K,EAAKyT,oBAAsB,GAC3BmM,GAAY,IAAKvM,GAAU,CAACtnB,GAAO,IAAIsnB,GAASI,oBAAqB3d,EAAMjE,OAAO9I,OAG1F,MACJ,IAAK,sCACD62B,GAAY,IAAKvM,GAAU4L,4BAA6B,IAAK5L,GAAS4L,4BAA6B,CAAClzB,GAAkB,MAAVyE,KAC5G,MACJ,IAAK,gBACD,IAAIoJ,EAAMknB,GAAwB,EAAI,EACtC9gB,EAAKogB,cAAgBrgB,GAA2BhU,EAAMyE,EAAO,GAAIoJ,GACjEgmB,GAAY,IAAKvM,GAAU4L,4BAA6B,IAAK5L,GAAS4L,4BAA6BlzB,KAAMyE,KACzG,MACJ,IAAK,eACDwP,EAAKqgB,aAAetgB,GAAwBvP,GAExCA,GAAS6iB,GAAS1uB,MAClBqb,EAAKqgB,aAAe,8CAGE,KAAtBrgB,EAAKqgB,eACL9R,GAAY,gBACZ1qB,EAAU,uCAAyC2M,EAAQ,kBAC3D4L,EAAa,aACbC,EAAa/W,KAAKC,UAAUiL,GAC5BmM,GAAa9Y,EAASuY,EAAYC,GAClC9J,EAAS,CAAE5O,KrDjwBK,uBqDiwB6BgB,IAAK6L,KAEtDovB,GAAY,IAAKvM,GAAU4L,4BAA6B,IAAK5L,GAAS4L,4BAA6Bt6B,IAAK6L,KACxG,MACJ,IAAK,wBACDovB,GAAY,IAAKvM,GAAU4L,4BAA6B,IAAK5L,GAAS4L,4BAA6B,CAAClzB,GAAkB,MAAVyE,KAC5G,MACJ,IAAK,OACDgyB,GAAqBz2B,EAAMyE,EAAO,8BAClC,MAAMg3B,EAAyC,OAAzBrL,SAAyB,IAAzBA,QAAyB,EAAzBA,GAA2BnxB,MAAM+N,MAAK,SAAUmd,GAClE,OAAOA,EAAEnqB,OAASyE,KAEtBovB,GAAY,IAAKvM,GAAUgM,qBAAsB,IAAKhM,GAASgM,qBAAsB,CAACtzB,GAAOy7B,KAC7F,MACJ,IAAK,UACDhF,GAAqBz2B,EAAMyE,EAAO,iCAClCovB,GAAY,IAAKvM,GAAUgM,qBAAsB,IAAKhM,GAASgM,qBAAsB,CAACtzB,GAAOyE,KAC7F,MACJ,IAAK,eACDovB,GAAY,IAAKvM,GAAUgM,qBAAsB,IAAKhM,GAASgM,qBAAsB,CAACtzB,GAAOyE,KAMrGgR,EAAU,kBAAmB,QAAS,CAAEU,KAAM,IAAKC,OAAQ,UAEtD,CAAC,gBAAiB,YAAa,SAAU,2BAA4B,kBAAmB,6BAA8B,oBACvH,QAAS,kBAAmB,uBAAwB,yBACpD,sCAAuC,gBAAiB,eAAgB,qBAAsB,wBAC9F,OAAQ,UAAW,eAAgB,UAAW,kBAAmB,sBAAuB,aAAavG,SAAS7P,IAC9G6zB,GAAY,IAAKvM,GAAU,CAACtnB,GAAOyE,IAEvCkO,GAAUsB,IAIRsiB,GAAsBtJ,IAAO,IAADyO,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC9BrI,GAAY5G,GACZ8G,GAAwB9G,EAAEgF,gBAAmC,QAApByJ,EAAGzO,EAAEgF,uBAAe,IAAAyJ,OAAA,EAAjBA,EAAmBhZ,KAAO,IACtEuR,GAA0BhH,EAAEkF,kBAAuC,QAAtBwJ,EAAG1O,EAAEkF,yBAAiB,IAAAwJ,OAAA,EAAnBA,EAAqBjZ,KAAO,IAC5E,IAAIpa,EAAQgnB,EAAoBA,EAAkBrwB,MAAM+N,KAAM2U,GAAeA,EAAE3hB,QAAU,OAADitB,QAAC,IAADA,OAAC,EAADA,EAAG0E,gBAAmB,KAC9GqD,KAAyB1sB,GAAQA,EAAM4uB,wBAEvCL,GAAwB5J,EAAE0E,cAAgB,CAAC1E,EAAE0E,eAAiB,IAC9D+F,IAA+D,QAA1BkE,EAAA3O,EAAE+E,gCAAwB,IAAA4J,OAAA,EAA1BA,EAA4B57B,MAAO,CAACitB,EAAE+E,yBAAyBhyB,MAAQ,IAC5Gm4B,IAAmE,QAA5B0D,EAAA5O,EAAEiF,kCAA0B,IAAA2J,OAAA,EAA5BA,EAA8B77B,MAAO,CAACitB,EAAEiF,2BAA2BlyB,MAAQ,IAClH04B,IAA4D,QAA7BoD,EAAA7O,EAAEiG,mCAA2B,IAAA4I,OAAA,EAA7BA,EAA+B1I,WAAY,CAACnG,EAAEiG,4BAA4BE,WAAa,IACtH4F,IAA0C,QAAtB+C,EAAA9O,EAAEqG,4BAAoB,IAAAyI,GAAS,QAATC,EAAtBD,EAAwBxI,eAAO,IAAAyI,OAAT,EAAtBA,EAAiCh8B,MAAO,CAAuB,QAAvBi8B,EAAChP,EAAEqG,4BAAoB,IAAA2I,GAAS,QAATC,EAAtBD,EAAwB1I,eAAO,IAAA2I,OAAT,EAAtBA,EAAiCl8B,MAAQ,IAEtG,IAAI4xB,EAAY3E,EAAE2E,UAAU5sB,IAAIm3B,IACrB,CACH13B,MAAO03B,EACP3uB,MAAO2uB,EACPn8B,KAAMm8B,KAId9E,GAAqBzF,GAGrB,IAAIa,EAAuBxF,EAAEwF,qBAAqBztB,IAAIo3B,IAC3C,CACH33B,MAAO23B,EAAGp8B,KACVwN,MAAO4uB,EAAGp8B,KACVA,KAAMo8B,EAAGp8B,QAIjBu5B,GAAiC9G,GAEjC,IAAIqB,EAAuB7G,EAAEgF,gBACvB,CACExtB,MAAOwoB,EAAEgF,gBAAgBvP,KACzBlV,MAAOyf,EAAEgF,gBAAgBvP,KACzB1iB,KAAMitB,EAAEgF,gBAAgBvP,MAE1B,GAENiX,GAA4B1M,EAAEgF,gBAAkB,CAAC6B,GAAwB,IAEzE,IAAIE,EAAyB/G,EAAEkF,kBACzB,CACE1tB,MAAOwoB,EAAEkF,kBAAkBzP,KAC3BlV,MAAOyf,EAAEkF,kBAAkBzP,KAC3B1iB,KAAMitB,EAAEkF,kBAAkBzP,MAE5B,GAEN0X,GAA8BnN,EAAEkF,kBAAoB,CAAC6B,GAA0B,KAsB7EqI,GAAoBA,CAACr8B,EAAMyE,EAAO+I,KAAW,IAAD8uB,EACjC,2BAATt8B,EACIsnB,GAASkK,WACTiF,GAAqBz2B,EAAMyE,EAAO+I,GAItCipB,GAAqBz2B,EAAMyE,EAAO+I,GAEtC,IAAIyG,EAAO,IAAKvV,IACZtD,EAAQ4Y,GAAyBvP,GACrC,OAAQzE,GACJ,IAAK,2BAED,GADAiU,EAAKwf,yBAA2Br4B,EACC,QAAjCkhC,EAAIhV,GAASgM,4BAAoB,IAAAgJ,OAAA,EAA7BA,EAA+B5I,0BAA2B,CAAC,IAAD6I,EAC1D,IAAInhC,EAAQ4Y,GAA8BvP,EAAoC,QAA/B83B,EAAEjV,GAASgM,4BAAoB,IAAAiJ,OAAA,EAA7BA,EAA+B7I,2BAChFzf,EAAKyf,0BAA4Bt4B,EAErCy4B,GAAY,IAAKvM,GAAUgM,qBAAsB,IAAKhM,GAASgM,qBAAsBG,yBAAoC,KAAVhvB,EAAe,KAAOA,KAErI,MACJ,IAAK,6BAED,GADAwP,EAAKqd,2BAA6Bl2B,EAC9BksB,GAASiK,4BAA6B,CACtC,IAAIn2B,EAAQ4Y,GAA8BvP,EAAO6iB,GAASiK,6BAC1Dtd,EAAKsd,4BAA8Bn2B,EAEvCy4B,GAAY,IAAKvM,GAAU,CAACtnB,GAAiB,KAAVyE,EAAe,KAAOA,IACzD,MACJ,IAAK,yBAED,GADAwP,EAAKwd,uBAAyBr2B,EAC1BksB,GAASoK,wBAAyB,CAClC,IAAIt2B,EAAQ4Y,GAA8BvP,EAAO6iB,GAASoK,yBAC1Dzd,EAAKyd,wBAA0Bt2B,EAEnCy4B,GAAY,IAAKvM,GAAU,CAACtnB,GAAiB,KAAVyE,EAAe,KAAOA,IAMjEkO,GAAU,IAAKsB,KAIbuoB,GAAqBA,CAACx8B,EAAMyE,EAAO+I,KACxB,4BAATxN,EACIsnB,GAASkK,WACTiF,GAAqBz2B,EAAMyE,EAAO+I,GAItCipB,GAAqBz2B,EAAMyE,EAAO+I,GAEtC,IAAIyG,EAAO,IAAKvV,IACZtD,EAAQ4Y,GAAyBvP,GACrC,OAAQzE,GACJ,IAAK,4BAED,GADAiU,EAAKyf,0BAA4Bt4B,EACnB,KAAVA,EAAc,CAAC,IAADqhC,EAE+DC,EAA7E,GADAthC,EAAQ4Y,GAAmCvP,GAC7B,KAAVrJ,IAA6C,QAAjCqhC,EAAInV,GAASgM,4BAAoB,IAAAmJ,OAAA,EAA7BA,EAA+BhJ,0BAC/Cr4B,EAAQ4Y,GAA2D,QAA9B0oB,EAACpV,GAASgM,4BAAoB,IAAAoJ,OAAA,EAA7BA,EAA+BjJ,yBAA0BhvB,GAEnGwP,EAAKyf,0BAA4Bt4B,EAErCy4B,GAAY,IAAKvM,GAAUgM,qBAAsB,IAAKhM,GAASgM,qBAAsBI,0BAAqC,KAAVjvB,EAAe,KAAOA,KAEtI,MACJ,IAAK,8BACDwP,EAAKsd,4BAA8Bn2B,EACrB,KAAVA,IACAA,EAAQ4Y,GAAmCvP,GAC7B,KAAVrJ,GAAgBksB,GAASgK,6BACzBl2B,EAAQ4Y,GAA8BsT,GAASgK,2BAA4B7sB,IAE/EwP,EAAKsd,4BAA8Bn2B,GAEvCy4B,GAAY,IAAKvM,GAAU,CAACtnB,GAAiB,KAAVyE,EAAe,KAAOA,IACzD,MACJ,IAAK,0BACDwP,EAAKyd,wBAA0Bt2B,EACjB,KAAVA,IACAA,EAAQ4Y,GAAmCvP,GAC7B,KAAVrJ,GAAgBksB,GAASmK,yBACzBr2B,EAAQ4Y,GAA8BsT,GAASmK,uBAAwBhtB,IAE3EwP,EAAKyd,wBAA0Bt2B,GAEnCy4B,GAAY,IAAKvM,GAAU,CAACtnB,GAAiB,KAAVyE,EAAe,KAAOA,IAKjEkO,GAAUsB,IAGR4hB,GAAmB5I,IAAO,IAAD0P,EAAAC,EAC3B,IAAIt0B,EAAQgnB,EAAoBA,EAAkBrwB,MAAM+N,KAAM2U,GAAeA,EAAE3hB,OAASitB,EAAE0E,eAAmB,KACzGuF,IAAyB5uB,GAAQA,EAAM4uB,uBACvC2F,IAAyB5P,EAAEuE,UAE/B,SAAUsL,GAAuB7P,KAC5BA,EAAEn0B,YAAcm0B,EAAEl0B,WAAak0B,EAAEr0B,MAAQq0B,EAAEiE,MACxCjE,EAAEoE,gBAAkBpE,EAAEqE,6BAA+BrE,EAAEsE,6BACvDsL,KAA4B5P,EAAEwE,yBAA2BxE,EAAEyE,2BAC3DzE,EAAE4E,YAAc5E,EAAE6E,SAAW7E,EAAE0E,gBAC/B1E,EAAE+E,2BAA6B/E,EAAEgF,kBAAoBhF,EAAE0F,kCAAgD,MAAX1F,EAAE8E,OACzE,MAArB9E,EAAEsF,mBACkB,QAArBoK,EAAC1P,EAAE4F,0BAAkB,IAAA8J,OAAA,EAApBA,EAAsB7J,SACrB7F,EAAEuF,iBAAmBuK,GAAY9P,EAAE4F,mBAAoB,CAAC,qBAAqD,MAA5B5F,EAAEyF,wBACpFzF,EAAEyF,wBAA6D,KAAb,QAAtBkK,EAAA3P,EAAE+P,4BAAoB,IAAAJ,OAAA,EAAtBA,EAAwB5kC,UAAkBi1B,EAAErK,iBACxEsU,IAA2B6F,GAAY9P,EAAEiG,4BAA6B,MACrE6J,GAAY9P,EAAEqG,qBAAsB,CAAC,mBAG5CwJ,GAA0B7P,IAAO,IAADgQ,EAAAC,EAClC,IAAIC,EAAWlQ,EAAEsE,6BAAqG,KAAtEvd,GAAmCiZ,EAAEsE,6BACjFC,GAAYvE,EAAEuE,WAAavE,EAAEyE,yBAA6F,KAAlE1d,GAAmCiZ,EAAEyE,yBAC7F0L,GAAqC,QAAtBH,EAAAhQ,EAAEqG,4BAAoB,IAAA2J,OAAA,EAAtBA,EAAwBvJ,4BAAuH,KAA1F1f,GAAyD,QAAvBkpB,EAACjQ,EAAEqG,4BAAoB,IAAA4J,OAAA,EAAtBA,EAAwBxJ,2BACnI,OAAQyJ,GAAW3L,GAAa4L,GAwD9BL,GAAcA,CAACrT,EAAK2T,KACtB,IAAIC,GAAqB,EACzB,IAAK,MAAMC,KAAY7T,EACdA,EAAI6T,IAAcF,EAAextB,SAAS0tB,IAAsC,mBAAlB7T,EAAI6T,KACnED,GAAqB,GAG7B,OAAOA,GAELE,GAAe9T,IACjB,IAAKA,EACD,OAAO,EAEX,IAAK,MAAM6T,KAAY7T,EAAK,CACxB,IAAI9c,EAAM8c,EAAI6T,GACd,GAAI3wB,EAAK,CACL,GAAmB,kBAARA,EAKP,OAAO,EAJP,IAAK4wB,GAAY5wB,GACb,OAAO,OAKZ,GAAmB,mBAARA,EACd,OAAO,EAGf,OAAO,GAELyuB,GAA6BziC,IAC/B,GAAIA,EACA,IAAK,IAAIghB,EAAI,EAAGA,EAAIpB,GAAKxgB,OAAQ4hB,IAC7B,GAAImL,KAAqBvM,GAAKoB,GAAG5c,IAAMpE,IAAQ4f,GAAKoB,GAAGhhB,IACnD,MAAO,0CAGnB,MAAO,IAGXyO,oBAAU,KACNsL,GAAU,IAAKjU,GAAQ,CAACsF,IAAkBsxB,KACtC,CAAC,QAAS,kBAAmB,kBAAmB,4BAA4BzlB,SAAS7L,IACrF6vB,GAAY,IAAKvM,GAAUuL,mBAAoB,IAAKvL,GAASuL,mBAAoB,CAAC7uB,IAAkBqxB,MAEpGxB,GAD2B,sBAApB7vB,GACK,IAAKsjB,GAAUgM,qBAAsB,IAAKhM,GAASgM,qBAAsB,CAACtvB,IAAkBqxB,KAE5F,IAAK/N,GAAU,CAACtjB,IAAkBqxB,KAE9CA,IACA5f,EAAU,kBAAmB,QAAS,CAAEU,KAAM,IAAKC,OAAQ,UAE/D5P,EAAS,CAAE5O,KrDxhCuB,gCqDyhCnC,CAAC29B,GAAoBD,KAExB,MAAMmI,GAAwBA,KAC1B,IAAIC,EAA2B,OAAbhN,SAAa,IAAbA,MAAiB,GACnC,IAAK8M,GAAYlW,IAAW,CACxB,IAAIuB,EAAc,IAAIrQ,IACtB8O,GAASxN,aAAewN,GAASxN,aAAewN,GAASxN,aAAegO,OAExE,IAAI6V,EAAa,CACb3gC,GAAK+nB,IAAsCuC,GAASxN,aACpD/gB,SAAUuuB,GAASvuB,SACnBk4B,cAAe3J,GAAS2J,cACxBn4B,UAAWwuB,GAASxuB,UACpBF,IAAK0uB,GAAS1uB,IACds4B,IAAK5J,GAAS4J,IACd0E,cAAeC,GAAgBvO,IAAY,IAAM,KAErD,GAAIvC,GAAkB,CAClB,MAAMkE,EAAcJ,EAAY7G,UAAUiL,GAAKA,EAAEjwB,KAAO+nB,IACxD2Y,EAAcA,EAAYx+B,QAAO,SAAUwqB,GACvC,OAAQA,EAAI5P,eAAiBiL,MAEjC8D,EAAYI,GAAe0U,OAE3B9U,EAAYvhB,KAAKq2B,GAErBllB,GAAQoQ,GACR7D,GAAoB2Y,EAAW3gC,IAC/B0gC,EAAc,IAAIA,EAAapW,IAC/BqJ,GAAiB+M,GAIrB,MADc,IAAKh5B,EAAyByiB,UAAWuW,IAGrDjf,GAAcA,KAGhB,GAFA6D,EAAa,IAETkb,GAAYlW,MAAcsJ,GAC1BjB,EAAgB,SAEf,GAAI3b,GAAyBtV,IAAS,CACvC,IAAIyrB,EAAIsT,KACRhoB,EAAU,kBAAmB,OAAQ,CAAEU,KAAM,IAAKC,OAAQ,UAC1D,IAEI9F,EAAa/W,KAAKC,UAAUkL,GAChCkM,GAHc,8CACG,cAEiBN,GAClC9J,EAAS,CAAE5O,KrD7mC8B,wCqD6mCqBgF,YAAautB,EAAGrtB,QAAQ,IACtF0J,EAAS,CAAE5O,KrDvnCU,oBqDunCqB6L,wBAAyB0mB,IACnE0G,IAA2B,QAG3BlB,EAAgB,KA2BlBiO,GAAyBA,KAC3BjO,EAAgB,eAChB,IAAIxF,EAAIsT,KACR,IAEIntB,EAAa/W,KAAKC,UAAU2wB,GAChCvZ,GAHc,gDACG,yBAEiBN,GAClCmF,EAAU,kBAAmB,OAAQ,CAAEU,KAAM,IAAKC,OAAQ,UAC1D5P,EAAS,CAAE5O,KrDrpCkC,wCqDqpCiBgF,YAAautB,EAAGrtB,QAAQ,IACtFsN,KAEEyzB,GAAuBpU,IACzB,IAAI3xB,EAAU,iCAAmC2xB,EAAIzsB,GAAK,cACtDqT,EAAa,sBACbC,EAAa/W,KAAKC,UAAUk3B,IAChC9f,GAAa9Y,EAASuY,EAAYC,GAC9ByU,KAAqB0E,EAAIzsB,KACzBu5B,GAAmBvF,IACnBhM,GAAoB,MACpBwP,GAAkBN,IAClBnE,IAAgB,GAChBpd,GAAUuhB,IACVze,EAAU,kBAAmB,OAAQ,CAAEU,KAAM,IAAKC,OAAQ,WAG9DqC,GAAQD,GAAKtZ,QAAO,SAAUwqB,GAC1B,OAAOA,EAAI1sB,KAAOysB,EAAIzsB,OAG1B,IAAI2B,EAAO+xB,GAAcxxB,QAAO,SAAUwqB,GACtC,OAAQA,EAAI5P,eAAiB2P,EAAIzsB,MAErC2zB,GAAiBhyB,GACjB,IAAIm/B,EAAU,IAAKp5B,EAAyByiB,UAAWxoB,GACnD7G,EAAU,8CACVuY,EAAa,sBACbC,EAAa/W,KAAKC,UAAUskC,GAChCltB,GAAa9Y,EAASuY,EAAYC,GAClC9J,EAAS,CAAE5O,KrDnrCkC,wCqDmrCiBgF,YAAakhC,EAAShhC,QAAQ,IAC5F0J,EAAS,CAAE5O,KrD7rCc,oBqD6rCiB6L,wBAAyBq6B,IACnEjN,IAA2B,GAC3BzmB,KASE2zB,GAA0BlmC,IAC5B,IAAIC,EAAU,GAEVwY,EAAa,GAEjB,GAAgB,mBAAZzY,EAAEoV,MACFnV,EAAU,gBAAkBD,EAAE4xB,IAAIzsB,GAAK,wBACvCsT,EAAa/W,KAAKC,UAAUk3B,IAC5B9f,GAAa9Y,EANA,yBAMqBwY,GAlEXmZ,EAmED5xB,EAAE4xB,IAlE5BxQ,EAAS,CACLL,WAAW,EACXC,UAAW,uCACXC,gBAAiB,SACjBC,iBAAkBA,KAAQ8kB,GAAoBpU,WAgE7C,GAAgB,iBAAZ5xB,EAAEoV,MAA0B,CAAC,IAAD+wB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACjC,IAAIxhC,EAAKnF,EAAE4xB,IAAIzsB,GACfgoB,GAAoBhoB,GACpB,IAAIiwB,EAAIyD,GAAc1jB,MAAK,SAAU0c,GACjC,OAAQA,EAAI5P,eAAiB9c,KAGjCu5B,GAAmB,IACZtJ,EACH4E,UAAsB,QAAbmM,EAAE/Q,EAAE4E,iBAAS,IAAAmM,OAAA,EAAXA,EAAa5c,UAAU,EAAG,IACrCkQ,2BAAwD,QAA9B2M,EAAEhR,EAAEqE,kCAA0B,IAAA2M,OAAA,EAA5BA,EAA8B7c,UAAU,EAAG,IACvEmQ,4BAA0D,QAA/B2M,EAAEjR,EAAEsE,mCAA2B,IAAA2M,OAAA,EAA7BA,EAA+B9c,UAAU,EAAG,IACzEqQ,uBAAgD,QAA1B0M,EAAElR,EAAEwE,8BAAsB,IAAA0M,OAAA,EAAxBA,EAA0B/c,UAAU,EAAG,IAC/DsQ,wBAAkD,QAA3B0M,EAAEnR,EAAEyE,+BAAuB,IAAA0M,OAAA,EAAzBA,EAA2Bhd,UAAU,EAAG,IACjEkS,qBAAsB,IACfrG,EAAEqG,qBACLG,yBAAgD,QAAxB4K,EAAEpR,EAAEqG,4BAAoB,IAAA+K,GAA0B,QAA1BC,EAAtBD,EAAwB5K,gCAAwB,IAAA6K,OAA1B,EAAtBA,EAAkDld,UAAU,EAAG,IACzFsS,0BAAiD,QAAxB6K,EAAEtR,EAAEqG,4BAAoB,IAAAiL,GAA2B,QAA3BC,EAAtBD,EAAwB7K,iCAAyB,IAAA8K,OAA3B,EAAtBA,EAAmDpd,UAAU,EAAG,OAG/F6L,EAAE+E,0BAA4B/E,EAAE+E,yBAAyBlC,cACzDC,IAAgB,GAEpBj4B,EAAU,4BAA8Bm1B,EAAEr0B,IAAM,sBAChD0X,EAAa/W,KAAKC,UAAUyzB,GAC5Brc,GAAa9Y,EAlCA,yBAkCqBwY,GAClC8kB,IAAmC,GACnC,IAAIqJ,EAAsBA,CAAC/H,EAAWlpB,KAClC,IAAIxT,EAAM08B,EAAY,GAAQlpB,EAAH,eAK3B,MAJY,KAARxT,GAAyB,mCAAVwT,GAAwD,+BAAVA,GAChD,gCAAVA,IACHxT,EAAMga,GAAmC0iB,IAEtC18B,GAGPizB,EAAEuE,UACF0D,IAAsB,GAGtBA,IAAsB,GAE1BV,GAAkB,IACXN,GACHp7B,UAAW2lC,EAAoBxR,EAAEn0B,UAAW,cAC5CC,SAAU0lC,EAAoBxR,EAAEl0B,SAAU,aAC1CH,IAAK6lC,EAAoBxR,EAAEr0B,IAAK,OAChCs4B,IAAKuN,EAAoBxR,EAAEiE,IAAK,0BAChCG,cAAeoN,EAAoBxR,EAAEoE,cAAe,kBACpDC,2BAA4BmN,EAAoBxR,EAAEqE,2BAA4B,iCAC9EC,4BAA6BkN,EAAoBxR,EAAEsE,4BAA6B,kCAChFE,uBAAwBxE,EAAEuE,UAAYiN,EAAoBxR,EAAEwE,uBAAwB,6BAA+B,GACnHC,wBAAyBzE,EAAEuE,UAAYiN,EAAoBxR,EAAEyE,wBAAyB,8BAAgC,GACtHC,cAAe8M,EAAoBxR,EAAE0E,cAAe,gBACpDG,OAAQ2M,EAAoBxR,EAAE6E,OAAQ,UACtCE,yBAA0ByM,EAAoBxR,EAAE+E,yBAA0B,qBAC1EC,gBAAiBwM,EAAoBxR,EAAEgF,gBAAiB,oBACxDF,MAAO0M,EAAoBxR,EAAE8E,MAAO,yBACpCQ,gBAAiBkM,EAAoBxR,EAAEsF,gBAAiB,kBAExDG,uBAAwB+L,EAAoBxR,EAAEyF,uBAAwB,wBACtE9P,gBAAiB6b,EAAoBxR,EAAErK,gBAAiB,mBACxDwN,0BAA2BqO,EAAoBxR,EAAEqG,qBAAqB17B,KAAM,6BAC5E04B,6BAA8BmO,EAAoBxR,EAAEqG,qBAAqBC,QAAS,gCAClF/C,4BAA6BiO,EAAoBxR,EAAEqG,qBAAqBK,QAAS,gCACjF9B,UAAW4M,EAAoBxR,EAAE4E,UAAW,iBAC5C4B,yBAA0BgL,EAAoBxR,EAAEqG,qBAAqBG,yBAA0B,8BAC/FC,0BAA2B+K,EAAoBxR,EAAEqG,qBAAqBI,0BAA2B,iCAErG/gB,GAAUuhB,IA1IazK,OA6IzB1P,GAAU,CACZ,CACI9M,MAAO,gBACP+M,WAAY,gBACZC,KAAM,EACNC,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfC,WAAalxB,GACwB,MAA7BA,EAAOsyB,IAAImM,cACHlwB,IAAAC,cAACkL,KAAe,CAACC,KAAK,eAAekK,MAAM,QAE3CtV,IAAAC,cAACkL,KAAe,CAACC,KAAK,eAAekK,MAAM,UAG3DZ,MAAO,UAEX,CACInN,MAAO,YACP+M,WAAY,aACZC,KAAM,EACNC,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfhO,MAAO,UAEX,CACInN,MAAO,gBACP+M,WAAY,iBACZC,KAAM,EACNC,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfhO,MAAO,UAEX,CACInN,MAAO,WACP+M,WAAY,YACZC,KAAM,EACNC,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfhO,MAAO,UAEX,CACInN,MAAO,MACP+M,WAAY,MACZpiB,KAAM,SACNqiB,KAAM,EACNC,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfhO,MAAO,UAEX,CACInN,MAAO,MACP+M,WAAY,oBACZpiB,KAAM,SACNqiB,KAAM,EACNC,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfhO,MAAO,UAEX,CACInN,MAAO,eACP+M,WAAY,OACZE,gBAAiB,cACjBC,YAAa,SACbiO,cAAe,YACfxR,YAAa,sDACbuR,UAAU,EACVI,MAAO,IACPC,2BAA2B,EAC3BH,WAAYA,IACR3iB,IAAAC,cAAA,cAAQ,IAACD,IAAAC,cAAC+B,KAAM,CAAC9B,UAAU,kBAAkB6N,KAAK,SAAS,UAAe,KAE9E2G,MAAO,UAEX,CACInN,MAAO,iBACP+M,WAAY,SACZE,gBAAiB,cACjBkO,cAAe,YACfxR,YAAa,sDACbuR,UAAU,EACVI,MAAO,IACPC,2BAA2B,EAC3BH,WAAYA,IACR3iB,IAAAC,cAAA,cAAQ,IAACD,IAAAC,cAAC+B,KAAM,CAAC9B,UAAU,kBAAkB6N,KAAK,SAAS,YAAiB,OAKlF7C,GAAeA,CAAC9Y,EAASuY,EAAYC,KAQvCK,GAPmB,CACf7Y,QAASA,EACTsY,SAAU,sBACVC,WAAYA,EACZC,WAAYA,IAIsB,OAAlCnQ,GAAmBkQ,YACnB7J,EAAS,CAAE5O,KrDzzCO,iBqDyzCqBuI,sBAAoB/I,cAInE,OAAOsO,IAAAC,cAAA,OAAKC,UAAU,wBACjByc,EAAUrqB,OAAS,GAAK0N,IAAAC,cAAC6Z,GAAW,CAAC5nB,KAAMyqB,IAC5C3c,IAAAC,cAACuH,GAAa,KAAC,wBAEX0I,EACIlQ,IAAAC,cAACuP,GAAgB,MACjBxP,IAAAC,cAAA,WACID,IAAAC,cAAC0N,KAAI,CAACrD,aAAa,OACftK,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACL3H,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAA,OAAK0H,GAAI,GAAI8b,MAAO,CAAEC,OAAQ,MAC1B1jB,IAAAC,cAAC+U,KAAQ,CACLlC,KAAMA,GACNuB,QAASA,GACTY,SAAU,EACV2O,YAAaA,CAACnyB,EAAQ4S,KAClBA,EAAMiH,iBACN+sB,GAAuB5mC,IAE3B2jB,WAAY,CACRC,cAAeA,IACXrV,IAAAC,cAAA,OACIwjB,MAAO,CACHZ,MAAO,OACPa,OAAQ,OACRsV,QAAS,OACTC,eAAgB,SAChBC,WAAY,WAEnB,uFAU7Bl5B,IAAAC,cAACwH,KAAG,MAEJzH,IAAAC,cAAC4Z,GAAgB,KAAC,2BAClB7Z,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,KAAE,IAAC5H,IAAAC,cAAA,QAAMC,UAAU,mBAAwB,eACjDF,IAAAC,cAACmJ,KAAK,CAAClJ,UAAYlH,GAAO5F,UAAUd,OAAS,EAAI,cAAgB,GAAKJ,KAAK,OAAOoI,KAAK,YAAYhD,GAAG,YAAYyH,MAAO6iB,GAASxuB,WAAa,GAAIoV,SAAU4G,GAAY9E,aAAa,MAAMC,OAAQ9B,KACnMzP,GAAO5F,UAAUd,OAAS,EAAI0N,IAAAC,cAAA,QAAMC,UAAU,SAASlH,GAAO5F,WAAoB,GACnF4M,IAAAC,cAAA,QAAMC,UAAU,SAAS2uB,GAAez7B,aAGhD4M,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,IAAG,mBACpBF,IAAAC,cAACmJ,KAAK,CAAClJ,UAAYlH,GAAOuyB,cAAcj5B,OAAS,EAAI,cAAgB,GAAKJ,KAAK,OAAOoI,KAAK,gBAAgBhD,GAAG,gBAAgByH,MAAO6iB,GAAS2J,eAAiB,GAAI/iB,SAAU4G,GAAY9E,aAAa,MAAMC,OAAQ9B,KACnNzP,GAAOuyB,cAAcj5B,OAAS,EAAI0N,IAAAC,cAAA,QAAMC,UAAU,SAASlH,GAAOuyB,eAAwB,KAGnGvrB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,KAAE5H,IAAAC,cAAA,QAAMC,UAAU,mBAAwB,aAChDF,IAAAC,cAACmJ,KAAK,CAAClJ,UAAYlH,GAAO3F,SAASf,OAAS,EAAI,cAAgB,GAAKJ,KAAK,OAAOoI,KAAK,WAAWhD,GAAG,WAAWyH,MAAO6iB,GAASvuB,UAAY,GAAImV,SAAU4G,GAAY9E,aAAa,MAAMC,OAAQ9B,KAC/LzP,GAAO3F,SAASf,OAAS,EAAI0N,IAAAC,cAAA,QAAMC,UAAU,SAASlH,GAAO3F,UAAmB,GACjF2M,IAAAC,cAAA,QAAMC,UAAU,SAAS2uB,GAAex7B,YAGhD2M,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,SACZoI,KAAK,SACLhD,GAAG,SACHwQ,MAAM,SACNC,QAASoxB,GACT3wB,SAAU4G,GACVrQ,MAAO6iB,GAASmG,QAAU,OAItC/nB,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,KAAE,IAAC5H,IAAAC,cAAA,QAAMC,UAAU,mBAAwB,QACjDF,IAAAC,cAACmJ,KAAK,CAAClJ,UAAYlH,GAAO9F,IAAIZ,OAAS,EAAI,cAAgB,GAAKJ,KAAK,OAAOoI,KAAK,MAAMhD,GAAG,MAAMyH,MAAO6iB,GAAS1uB,KAAO,GAAIsV,SAAU4G,GAAY9E,aAAa,QAC7JtR,GAAO9F,IAAIZ,OAAS,EAAI0N,IAAAC,cAAA,QAAMC,UAAU,SAASlH,GAAO9F,KAAc,GACtE8F,GAAOy1B,kBAAkBn8B,OAAS,GAAK0N,IAAAC,cAACwH,KAAG,KAACzH,IAAAC,cAACyH,KAAG,KAAC1H,IAAAC,cAAA,QAAMC,UAAU,SAASlH,GAAOy1B,qBAClFzuB,IAAAC,cAAA,QAAMC,UAAU,SAAS2uB,GAAe37B,MACtC27B,GAAe37B,KAAOu8B,KAAoC7N,GAAS1uB,KAAO8M,IAAAC,cAAA,QAAMC,UAAU,SAAQ,sBAG5GF,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,KAAE5H,IAAAC,cAAA,QAAMC,UAAU,mBAAwB,2BAChDF,IAAAC,cAACmK,KAAS,CAAC/B,KAAK,cAAcgC,SAAU,KAAM/P,KAAK,MAAMhD,GAAG,MACxDyH,MAAO6iB,GAAS4J,KAAO,GAAIxyB,OAAO,iBAAiBwP,SAAU4G,GAC7D9E,aAAa,MAAMtC,YAAY,cAAc9H,UAAU,iCAC1DlH,GAAOwyB,IAAIl5B,OAAS,EAAI0N,IAAAC,cAAA,QAAMC,UAAU,SAASlH,GAAOwyB,KAAc,GACvExrB,IAAAC,cAAA,QAAMC,UAAU,SAAS2uB,GAAerD,MACtCqD,GAAerD,KAAOiE,KAAoC7N,GAAS4J,KAAOxrB,IAAAC,cAAA,QAAMC,UAAU,SAAQ,0CAIhHF,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,KAAE,mBACR5H,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,OAAOgO,UAAYlH,GAAOyyB,WAAWn5B,OAAS,EAAI,cAAgB,GAAKgI,KAAK,aACpFhD,GAAG,aAAayH,MAAO6iB,GAAS6J,YAAc,GAAIjjB,SAAU4G,GAAY9E,aAAa,MAAMtE,UAAW,IACzGhN,GAAOyyB,WAAWn5B,OAAS,EAAI0N,IAAAC,cAAA,QAAMC,UAAU,SAASlH,GAAOyyB,YAAqB,KAI7FzrB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,KAAE,mBACR5H,IAAAC,cAACmJ,KAAK,CAAClJ,UAAYlH,GAAO0yB,WAAWp5B,OAAS,EAAI,cAAgB,GAAKJ,KAAK,OAAOoI,KAAK,aAAahD,GAAG,aAAa0O,UAAW,GAAIjH,MAAO6iB,GAAS8J,YAAc,GAAIljB,SAAU4G,GAAY9E,aAAa,QACxMtR,GAAO0yB,WAAWp5B,OAAS,EAAI0N,IAAAC,cAAA,QAAMC,UAAU,SAASlH,GAAO0yB,YAAqB,MAKjG1rB,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZgU,UAAQ,EACRqC,wBAAyBknB,GACzBn1B,KAAK,gBACLhD,GAAG,gBACHwQ,MAAM,iBACN/I,MAAO6iB,GAAS+J,eAAiB,GACjCnjB,SAAU4G,GACV1Z,MAAOsD,GAAO2yB,iBAGtB3rB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZgU,UAAQ,EACRkC,IAAI,aACJ9N,KAAK,6BACLhD,GAAG,+BACHwQ,MAAM,gCACN/I,MAAO6iB,GAASgK,2BAA6BhK,GAASgK,2BAA6B,GACnFpjB,SAAWrW,IAAQwkC,GAAkBxkC,EAAEiO,OAAO9F,KAAMnI,EAAEiO,OAAOrB,MAAO,kCACpErJ,MAAOsD,GAAO4yB,2BAA2Bt5B,OAAS,EAAI0G,GAAO4yB,2BAA6BiD,GAAejD,8BAGjH5rB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZgU,UAAQ,EACRkC,IAAI,aACJ9N,KAAK,8BACLhD,GAAG,0BACHwQ,MAAM,iCACN/I,MAAO6iB,GAASiK,4BAA8BjK,GAASiK,4BAA8B,GACrFrjB,SAAWrW,IAAQ2kC,GAAmB3kC,EAAEiO,OAAO9F,KAAMnI,EAAEiO,OAAOrB,MAAO,mCACrErJ,MAAOsD,GAAO6yB,4BAA4Bv5B,OAAS,EAAI0G,GAAO6yB,4BAA8BgD,GAAehD,gCAGjH,IAAC7rB,IAAAC,cAACwH,KAAG,KACPzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZoI,KAAK,YACLhD,GAAG,YACHwQ,MAAM,aACN/I,MAAO6iB,GAASkK,WAAa,GAC7BtjB,SAAU4G,GACV1Z,MAAOsD,GAAO8yB,aAGtB9rB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZgU,SAAUqpB,GACVjnB,UAAWinB,GACXnnB,IAAI,aACJ9N,KAAK,yBACLhD,GAAG,2BACHwQ,MAAM,4BACN/I,MAAO6iB,GAASmK,uBAAyBnK,GAASmK,uBAAyB,GAC3EvjB,SAAWrW,IAAQwkC,GAAkBxkC,EAAEiO,OAAO9F,KAAMnI,EAAEiO,OAAOrB,MAAO,8BACpErJ,MAAOsD,GAAO+yB,uBAAuBz5B,OAAS,EAAI0G,GAAO+yB,uBAAyB8C,GAAe9C,0BAGzG/rB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZgU,SAAUqpB,GACVjnB,UAAWinB,GACXnnB,IAAI,aACJ9N,KAAK,0BACLhD,GAAG,4BACHwQ,MAAM,6BACN/I,MAAO6iB,GAASoK,wBAA0BpK,GAASoK,wBAA0B,GAC7ExjB,SAAWrW,IAAQ2kC,GAAmB3kC,EAAEiO,OAAO9F,KAAMnI,EAAEiO,OAAOrB,MAAO,+BACrErJ,MAAOsD,GAAOgzB,wBAAwB15B,OAAS,EAAI0G,GAAOgzB,wBAA0B6C,GAAe7C,4BAI/GhsB,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GAEL3H,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,kBAAiB,gBAClCF,IAAAC,cAAC2b,KAAS,CACNtkB,GAAG,wBACHukB,SAAS,QACT9T,QAAS8hB,EACT/N,SAAUoV,GACV1oB,SAAU4oB,GACVppB,YAAY,SACZuC,OAAQA,IAAMyqB,GAAgB/D,GAAuBpH,EAAsB,eAAe,GAC1FzN,IAAK6U,KAERpC,GAAe5C,cAAgBjsB,IAAAC,cAAA,QAAMC,UAAU,SAAS2uB,GAAe5C,eAAwB,IAEpGjsB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC2H,KAAK,KAAC,uCACP5H,IAAAC,cAAC2b,KAAS,CACNtkB,GAAG,qBACHukB,SAAS,QACTud,UAAQ,EACR5wB,SAAUopB,GACV7pB,QAAS9K,EACT+K,YAAY,SACZ8T,SAAU4V,GACVnnB,OAAQA,IAAMyqB,GAAgBvD,GAAkBx0B,EAAc,YAAY,GAC1Emf,IAAKqV,OAKjBzxB,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZgU,UAAQ,EACRqC,wBAAyBknB,GACzBrnB,KAAK,IAAI9B,MAAO+yB,cAAcrS,MAAM,KAAK,GACzC1sB,KAAK,aACLhD,GAAG,aACHwQ,MAAM,sBACN/I,MAAO6iB,GAASuK,UAAYvK,GAASuK,UAAY,GACjD3jB,SAAWrW,IAryBxB4M,KACnB,MAAMu6B,EAAQ,IAAIhzB,KAGlB,GAFoB,IAAIA,KAAKvH,GAEXu6B,EAAO,CACrB,IAAI/qB,EAAO,IAAKvV,IAChBuV,EAAK4d,UAAY,yCACjBlf,GAAUsB,GACV4f,GAAY,IAAKvM,GAAUuK,UAAW,WACnC,CACH4E,GAAqB,YAAahyB,EAAO,iBACzC,IAAIwP,EAAO,IAAKvV,IAChBuV,EAAK4d,UAAY7d,GAAyBvP,GAC1CkO,GAAUsB,GACV4f,GAAY,IAAKvM,GAAUuK,UAAqB,KAAVptB,EAAe,KAAOA,MAuxBbw6B,CAAcpnC,EAAEiO,OAAOrB,QAC1CrJ,MAAOsD,GAAOmzB,UAAU75B,OAAS,EAAI0G,GAAOmzB,UAAY0C,GAAe1C,cAInFnsB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,KAAE5H,IAAAC,cAAA,QAAMC,UAAU,mBAAwB,WAChDF,IAAAC,cAACwH,KAAG,CAACvH,UAAU,4BACXF,IAAAC,cAAA,YAAMD,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,QAAQoF,GAAG,IAAIgD,KAAK,SAASkO,SAAU4G,GAAY/F,QAA6B,MAApBuY,GAASwK,SAAiC,QACxHpsB,IAAAC,cAAA,YAAMD,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,QAAQoF,GAAG,IAAIgD,KAAK,SAASkO,SAAU4G,GAAY/F,QAA6B,MAApBuY,GAASwK,SAAiC,WAE3HqD,KAAoC7N,GAASwK,QAAUpsB,IAAAC,cAAA,QAAMC,UAAU,SAAQ,0BAK5FF,IAAAC,cAAC4Z,GAAgB,KAAC,sBAClB7Z,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,SACZgU,UAAQ,EACRqC,wBAAyBknB,GACzBn1B,KAAK,QACLhD,GAAG,QACHwQ,MAAM,mCACNU,SAAU4G,GACVrQ,MAAO6iB,GAASyK,UAI5BrsB,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,kBAAiB,qBAClCF,IAAAC,cAAC2b,KAAS,CACNtkB,GAAG,qCACHukB,SAAS,QACT9T,QAASwiB,GACTzO,SAAUiW,GACVvpB,SAAUypB,GACVjqB,YAAY,SACZuC,OAAQA,IAAMyqB,GAAgBlD,GAAkCvH,GAAwB,4BAA4B,GACpHnO,IAAK0V,KAERjD,GAAevC,yBAA2BtsB,IAAAC,cAAA,QAAMC,UAAU,SAAS2uB,GAAevC,0BAAmCtzB,GAAOszB,yBACzHtsB,IAAAC,cAAA,OAAKC,UAAU,SACVlH,GAAOszB,0BAGZ,IAERtsB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,kBAAiB,oBAClCF,IAAAC,cAAC2b,KAAS,CACNtkB,GAAG,4BACHukB,SAAS,QACT9T,QAAS0iB,GACT3O,SAAUkY,GACVxrB,SAAU0rB,GACVlsB,YAAY,SACZuC,OAAQA,IAAMyqB,GAAgBjB,GAAyBtJ,GAAuB,mBAAmB,GACjGrO,IAAK2X,KAERlF,GAAetC,gBAAkBvsB,IAAAC,cAAA,QAAMC,UAAU,SAAS2uB,GAAetC,iBAA0BvzB,GAAOuzB,gBACvGvsB,IAAAC,cAAA,OAAKC,UAAU,SACVlH,GAAOuzB,iBAGZ,IAERvsB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,SACZgU,UAAQ,EACRqC,wBAAyBknB,GACzBn1B,KAAK,mCACLhD,GAAG,mCACHwQ,MAAM,wCACNC,QAAS2kB,GACTlkB,SAAU4G,GACVrQ,MAAO6iB,GAASqL,kCAAoC,OAIhEjtB,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACJyiB,GAAepqB,IAAAC,cAAA,OAAKC,UAAU,QAAQF,IAAAC,cAAA,YAAMD,IAAAC,cAACkL,KAAe,CAACC,KAAK,cAAckK,MAAM,WAAW,qEAAgF,KAG1LtV,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC2H,KAAK,KAAC,uBACP5H,IAAAC,cAAC2b,KAAS,CACNtkB,GAAG,uCACHukB,SAAS,QACT9T,QAASwiB,GACTzO,SAAU0W,GACVhqB,SAAUkqB,GACV1qB,YAAY,SACZuC,OAAQA,IAAMyqB,GAAgBzC,GAAoChI,GAAwB,8BAA8B,GACxHnO,IAAKmW,KAERv5B,GAAOwzB,4BACJxsB,IAAAC,cAAA,OAAKC,UAAU,SACVlH,GAAOwzB,6BAIpBxsB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC2H,KAAK,KAAC,sBACP5H,IAAAC,cAAC2b,KAAS,CACNtkB,GAAG,8BACHukB,SAAS,QACT9T,QAAS0iB,GACT3O,SAAU2Y,GACVjsB,SAAUmsB,GACV3sB,YAAY,SACZuC,OAAQA,IAAMyqB,GAAgBR,GAA2B/J,GAAuB,qBAAqB,GACrGrO,IAAKoY,KAERx7B,GAAOyzB,mBACJzsB,IAAAC,cAAA,OAAKC,UAAU,SACVlH,GAAOyzB,oBAIpBzsB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,SACZoI,KAAK,qCACLhD,GAAG,qCACHwQ,MAAM,+CACNC,QAAS2kB,GACTlkB,SAAU4G,GACVrQ,MAAO6iB,GAASsL,oCAAsC,OAKlEltB,IAAAC,cAAC4Z,GAAgB,KAAC,oCAClB7Z,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC8lB,GAAU,CAAC7zB,KAAK,OACboF,GAAG,qBACHgD,KAAK,qBACLwN,MAAM,sBACNiM,cAAsC,OAAvB/U,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyB1H,GACxC2uB,aAAcrE,GAAS8K,mBACvBh3B,MAAOsD,GAAO0zB,sBAGtB1sB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC8lB,GAAU,CAAC7zB,KAAK,OACboF,GAAG,8BACHgD,KAAK,8BACLwN,MAAM,gCACNiM,cAAsC,OAAvB/U,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyB1H,GACxC2uB,aAAcrE,GAAS+K,4BACvBj3B,MAAOsD,GAAO2zB,gCAI1B3sB,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC8lB,GAAU,CAAC7zB,KAAK,OACboF,GAAG,sBACHgD,KAAK,sBACLwN,MAAM,wBACNiM,cAAsC,OAAvB/U,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyB1H,GACxC2uB,aAAcrE,GAASgL,oBACvBl3B,MAAOsD,GAAO4zB,wBAI1B5sB,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,SACZgU,UAAQ,EACRqC,wBAAyBknB,GACzBn1B,KAAK,kBACLhD,GAAG,kBACHwQ,MAAM,kBACNU,SAAU4G,GACVrQ,MAAO6iB,GAASiL,oBAI5B7sB,IAAAC,cAACwH,KAAG,CAACqG,MAAI,GACL9N,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACL3H,IAAAC,cAAA,WACID,IAAAC,cAAC2H,KAAK,KAAC,kMAKnB5H,IAAAC,cAACwH,KAAG,CAACqG,MAAI,GACL9N,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,SACZgU,UAAQ,EACRqC,wBAAyBknB,GACzBn1B,KAAK,yBACLhD,GAAG,yBACHwQ,MAAM,oCACNU,SAAU4G,GACV1Z,MAAOsD,GAAO+zB,qBACdhuB,MAAO6iB,GAASoL,2BAI5BhtB,IAAAC,cAACwH,KAAG,CAACqG,MAAI,GACL9N,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC2H,KAAK,CAAC4xB,MAAO5X,GAASoL,uBAAyB,iBAAmB,IAAK,yBACxEhtB,IAAAC,cAAC2b,KAAS,CACNtkB,GAAG,iCACHukB,SAAS,QACTud,UAAQ,EACR5wB,SAAUsrB,GACV/rB,QAASrK,EACTsK,YAAY,SACZ8T,SAAU8X,GACVrpB,OAAQA,IAAMyqB,GAAgBrB,GAA8Bj2B,EAAiC,wBAAwB,GACrH0e,IAAKuX,KAER/R,GAASoL,wBAA0B6B,GAAe9B,qBAAuB/sB,IAAAC,cAAA,QAAMC,UAAU,SAAS2uB,GAAe9B,sBAA+B,KAIzJ/sB,IAAAC,cAAC4Z,GAAgB,KAAC,0BAClB7Z,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACL3H,IAAAC,cAAA,WACID,IAAAC,cAAC2H,KAAK,KAAC,8HAA2H5H,IAAAC,cAAA,QAAMC,UAAU,kBAAiB,MAAS,2BAKxLF,IAAAC,cAACwH,KAAG,CAACqG,MAAI,GACL9N,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,CAACsB,IAAI,kBAAiB,eAC5BlJ,IAAAC,cAACmJ,KAAK,CAAClJ,UAAYlH,GAAO8zB,eAAex6B,OAAS,EAAI,cAAgB,GAAKJ,KAAK,OAAOoI,KAAK,iBAAiBhD,GAAG,iBAAiByH,MAAO6iB,GAASkL,gBAAkB,GAAItkB,SAAU4G,KAChLpW,GAAO8zB,eAAex6B,OAAS,GAC5B0N,IAAAC,cAAA,QAAMC,UAAU,SAASlH,GAAO8zB,mBAIhD9sB,IAAAC,cAACwH,KAAG,CAACqG,MAAI,GACL9N,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC8lB,GAAU,CAAC7zB,KAAK,OACbgU,UAAQ,EACRqC,wBAAyBknB,GACzBn4B,GAAG,QACHgD,KAAK,QACLwN,MAAM,MACNiM,cAAsC,OAAvB/U,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyB1H,GACxC2uB,aAAyC,QAA7BqC,EAAE1G,GAASuL,0BAAkB,IAAA7E,OAAA,EAA3BA,EAA6B8E,MAC3C13B,MAAOsD,GAAOo0B,SAGtBptB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC8lB,GAAU,CAAC7zB,KAAK,OACbgU,UAAU,EACVqC,yBAAyB,EACzBjR,GAAG,kBACHgD,KAAK,kBACLwN,MAAM,2BACNiM,cAAsC,OAAvB/U,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyB1H,GACxC2uB,aAAyC,QAA7BsC,EAAE3G,GAASuL,0BAAkB,IAAA5E,OAAA,EAA3BA,EAA6B8E,gBAC3C33B,MAAOsD,GAAOq0B,oBAI1BrtB,IAAAC,cAACwH,KAAG,CAACqG,MAAI,GACL9N,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC8lB,GAAU,CAAC7zB,KAAK,OACbgU,UAAY0b,GAASkL,eACrBvkB,wBAAyBknB,KAAoC7N,GAASkL,eACtEx1B,GAAG,kBACHgD,KAAK,kBACLwN,MAAM,mBACNiM,cAAsC,OAAvB/U,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyB1H,GACxC2uB,aAAyC,QAA7BuC,EAAE5G,GAASuL,0BAAkB,IAAA3E,OAAA,EAA3BA,EAA6B8E,gBAC3C53B,MAAOsD,GAAOs0B,mBAGtBttB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC8lB,GAAU,CAAC7zB,KAAK,OACbgU,UAAY0b,GAASkL,eACrBvkB,wBAAyBknB,KAAoC7N,GAASkL,eACtEx1B,GAAG,2BACHgD,KAAK,2BACLwN,MAAM,yDACNiM,cAAsC,OAAvB/U,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyB1H,GACxC2uB,aAAyC,QAA7BwC,EAAE7G,GAASuL,0BAAkB,IAAA1E,OAAA,EAA3BA,EAA6B8E,yBAC3C73B,MAAOsD,GAAOu0B,2BAElBvtB,IAAAC,cAAA,WACID,IAAAC,cAAA,SAAGD,IAAAC,cAAA,KAAGG,OAAO,SAASC,IAAI,aAAaF,KAAK,sDAAqD,eAAe,4BAK5HH,IAAAC,cAAC4Z,GAAgB,KAAC,sBAClB7Z,IAAAC,cAACwH,KAAG,CAACqG,MAAI,GACL9N,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,SACZgU,UAAQ,EACRqC,wBAAyBknB,GACzBn1B,KAAK,kBACLhD,GAAG,kBACHwQ,MAAM,sDACNpS,MAAOsD,GAAOkkB,gBACdnV,QAASmiB,EACT1hB,SAAU4G,GACVrQ,MAAO6iB,GAAS1E,iBAAmB,MAG3Cld,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,WACZoI,KAAK,sBACLwN,MAAM,0DACNpS,MAAOsD,GAAOgpB,oBACdxZ,SAAU4G,GACVrQ,MAAOijB,GACP9Z,WAAYgiB,EACZjiB,gBAAiB2Z,GAASI,wBAKtChiB,IAAAC,cAAC4Z,GAAgB,KAAC,uBAClB7Z,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,SACZgU,SAAUmpB,GACV9mB,wBAAyBknB,IAAmCJ,GAC5D/0B,KAAK,sCACLhD,GAAG,sCACHwQ,MAAM,+BACNU,SAAU4G,GACVrQ,MAA2C,QAAtC2pB,EAAE9G,GAAS4L,mCAA2B,IAAA9E,OAAA,EAApCA,EAAsC+E,wCAIzDztB,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZgU,SAAUmpB,GACV9mB,wBAAyBknB,IAAmCJ,GAC5D/0B,KAAK,gBACLhD,GAAG,gBACHwQ,MAAM,8CACNpS,MAAOsD,GAAO21B,cACdnmB,SAAU4G,GACV3G,WAAatW,GAAMsW,GAAWtW,GAC9B6T,UAAW,GACXjH,OAA2C,QAApC4pB,EAAA/G,GAAS4L,mCAA2B,IAAA7E,OAAA,EAApCA,EAAsCruB,OAAQ,MAG7D0F,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZgU,SAAUmpB,GACV9mB,wBAAyBknB,IAAmCJ,GAC5D/0B,KAAK,eACLhD,GAAG,eACHwQ,MAAM,8BACNpS,MAAOsD,GAAO41B,aACdpmB,SAAU4G,GACVrQ,OAA2C,QAApC6pB,EAAAhH,GAAS4L,mCAA2B,IAAA5E,OAAA,EAApCA,EAAsC11B,MAAO,OAIhE8M,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC2H,KAAK,CAAC1H,UAAWmvB,GAAwB,iBAAmB,IAAI,qCACjErvB,IAAAC,cAAC2b,KAAS,CACNtkB,GAAG,+BACHukB,SAAS,QACT9T,QAASwiB,GACTzO,SAAUiX,GACVvqB,SAAUyqB,GACVjrB,YAAY,SACZuC,OAAQA,IAAMyqB,GAAgBlC,GAA4BvI,GAAwB,sBAAsB,GACxGnO,IAAK0W,KAERzD,IAAyBR,GAAe4K,mBAAqBz5B,IAAAC,cAAA,QAAMC,UAAU,SAAS2uB,GAAe4K,oBAA6B,IAEvIz5B,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,SACZgU,SAAUmpB,GACV9mB,wBAAyBknB,IAAmCJ,GAC5D/0B,KAAK,wBACLhD,GAAG,wBACHwQ,MAAM,uCACNU,SAAU4G,GACVrQ,MAA2C,QAAtC8pB,EAAEjH,GAAS4L,mCAA2B,IAAA3E,OAAA,EAApCA,EAAsC8E,0BAKzD3tB,IAAAC,cAAC4Z,GAAgB,KAAC,sBAClB7Z,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,SACZgU,UAAQ,EACRqC,wBAAyBknB,GACzBn1B,KAAK,OACLhD,GAAG,OACHwQ,MAAM,6BACNpS,MAAOsD,GAAO9G,KACd6V,QAAS4iB,GACTniB,SAAU4G,GACVrQ,OAAoC,QAA7B+pB,EAAAlH,GAASgM,4BAAoB,IAAA9E,GAAM,QAANC,EAA7BD,EAA+B52B,YAAI,IAAA62B,OAAN,EAA7BA,EAAqCzuB,OAAQ,MAG5D0F,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZgU,UAAQ,EACRkC,IAAI,aACJ9N,KAAK,2BACLhD,GAAG,6BACHwQ,MAAM,uCACN/I,OAAoC,QAA7BiqB,EAAApH,GAASgM,4BAAoB,IAAA5E,OAAA,EAA7BA,EAA+B+E,0BAAwD,QAAhC9E,EAAGrH,GAASgM,4BAAoB,IAAA3E,OAAA,EAA7BA,EAA+B8E,yBAA2B,GAC3HvlB,SAAWrW,IAAQwkC,GAAkBxkC,EAAEiO,OAAO9F,KAAMnI,EAAEiO,OAAOrB,MAAO,yCACpErJ,MAAOsD,GAAO+0B,yBAAyBz7B,OAAS,EAAI0G,GAAO+0B,yBAA2Bc,GAAed,4BAG7G/tB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZgU,UAAQ,EACRkC,IAAI,aACJ9N,KAAK,4BACLhD,GAAG,8BACHwQ,MAAM,wCACN/I,OAAoC,QAA7BmqB,EAAAtH,GAASgM,4BAAoB,IAAA1E,OAAA,EAA7BA,EAA+B8E,2BAAyD,QAAhC7E,EAAGvH,GAASgM,4BAAoB,IAAAzE,OAAA,EAA7BA,EAA+B6E,0BAA4B,GAC7HxlB,SAAWrW,IAAQ2kC,GAAmB3kC,EAAEiO,OAAO9F,KAAMnI,EAAEiO,OAAOrB,MAAO,0CACrErJ,MAAOsD,GAAOg1B,0BAA0B17B,OAAS,EAAI0G,GAAOg1B,0BAA4Ba,GAAeb,8BAInHhuB,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC8lB,GAAU,CAAC7zB,KAAK,OACbgU,UAAQ,EACRqC,wBAAyBknB,GACzBn4B,GAAG,oBACHgD,KAAK,oBACLwN,MAAM,6BACNiM,cAAsC,OAAvB/U,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyB1H,GACxC2uB,aAA2C,QAA/BmD,EAAExH,GAASgM,4BAAoB,IAAAxE,OAAA,EAA7BA,EAA+B8E,kBAC7Cx4B,MAAOsD,GAAOk1B,qBAGtBluB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,kBAAiB,iCAClCF,IAAAC,cAAC2b,KAAS,CACNtkB,GAAG,oBACHukB,SAAS,QACT9T,QAAS8iB,GACT/O,SAAUuX,GACV7qB,SAAU+qB,GACVvrB,YAAY,SACZuC,OAAQA,IAAMyqB,GAAgB5B,GAAiBvI,GAAqC,WAAW,GAC/FzO,IAAKgX,KAERvE,GAAehB,QAAU7tB,IAAAC,cAAA,QAAMC,UAAU,SAAS2uB,GAAehB,SAAkB,KAI5F7tB,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,SACZgU,UAAQ,EACRqC,wBAAyBknB,GACzBn1B,KAAK,UACLhD,GAAG,UACHwQ,MAAM,6DACNpS,MAAOsD,GAAOi1B,QACdlmB,QAASgjB,GACTviB,SAAU4G,GACVrQ,OAAoC,QAA7BsqB,EAAAzH,GAASgM,4BAAoB,IAAAvE,OAAA,EAA7BA,EAA+B4E,UAAW,MAGzDjuB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GAC6C,WAApB,QAA7B2hB,EAAA1H,GAASgM,4BAAoB,IAAAtE,GAAS,QAATC,EAA7BD,EAA+BuE,eAAO,IAAAtE,OAAT,EAA7BA,EAAwCjvB,OACrC0F,IAAAC,cAAE4H,GAAS,CAAC3V,KAAK,OACboI,KAAK,eACLhD,GAAG,eACHwQ,MAAM,sCACNpS,MAAOsD,GAAO80B,aACdtlB,SAAU4G,GACVrQ,OAAoC,QAA7ByqB,EAAA5H,GAASgM,4BAAoB,IAAApE,OAAA,EAA7BA,EAA+BsE,eAAgB,OAMtE9tB,IAAAC,cAACwH,KAAG,MACJzH,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACT3H,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC+B,KAAM,CAAC9B,UAAU,kBAAkB+B,QAv6BjCy3B,KAC3BzP,EAAgB,mBAChBuF,IAAsB,GACtBE,IAAmC,GACnC3W,OAm6B6F,8BAEzE/Y,IAAAC,cAACyH,KAAG,CAACC,GAAI,MAGjB3H,IAAAC,cAACuE,KAAK,CAACC,OAAQ6O,EAAMJ,UAAWxO,OAAQA,GACpC1E,IAAAC,cAAC2E,KAAS,KACL0O,EAAMH,WAEXnT,IAAAC,cAAC4E,KAAW,KACR7E,IAAAC,cAAC+B,KAAM,CAACsT,MAAM,UAAUrT,QAASqR,EAAMD,kBAAmBC,EAAMF,iBAA0B,IACzFE,EAAMqW,gBAAkB,GAAK3pB,IAAAC,cAAC+B,KAAM,CAACsT,MAAM,YAAYrT,QAASyC,GAAQ,YAIjF1E,IAAAC,cAAC2Y,GAAgB,CAACC,gBAt/BRqL,KACtB,IAAIyV,EArKiBC,MACrB,GAAK9B,GAAYlW,KAAa9O,GAAKxgB,OAAS,GAAMm3B,GAC9C,IAAK,IAAIvV,EAAI,EAAGA,GAAQ,OAAJpB,SAAI,IAAJA,QAAI,EAAJA,GAAMxgB,QAAQ4hB,IAC9B,GAA8B,MAA1BpB,GAAKoB,GAAGgc,eAAyB7Q,KAAqBvM,GAAKoB,GAAG5c,GAC9D,OAAOwb,GAAKoB,GAAG9gB,UAAY,IAAM0f,GAAKoB,GAAG7gB,aAKhD,IAAIykC,GAAYlW,KAA6B,IAAhB9O,GAAKxgB,OACnC,MAAO,0BAEN,CAAC,IAADunC,EACD,IAAIj3B,EAAQgnB,EAAoBA,EAAkBrwB,MAAM+N,KAAM2U,GAAeA,EAAE3hB,OAASsnB,GAASqK,eAAmB,KAChHuF,IAAyB5uB,GAAQA,EAAM4uB,uBACvC2F,IAAyBvV,GAASkK,UAElCgO,EAAyB,CAAC,CAAE//B,IAAK,aAAcgF,MAAO6iB,GAASxuB,WAAa,CAAE2G,IAAK,YAAagF,MAAO6iB,GAASvuB,UACpH,CAAE0G,IAAK,MAAOgF,MAAO6iB,GAAS1uB,KAC9B,CAAE6G,IAAK,yBAA0BgF,MAAO6iB,GAAS4J,KACjD,CAAEzxB,IAAK,iBAAkBgF,MAAO6iB,GAAS+J,eACzC,CAAE5xB,IAAK,gCAAiCgF,MAAO6iB,GAASgK,4BACxD,CAAE7xB,IAAK,iCAAkCgF,MAAO6iB,GAASiK,6BACzD,CAAE9xB,IAAK,eAAgBgF,MAAO6iB,GAASqK,eACvC,CAAElyB,IAAK,gBAAiBgF,MAAO6iB,GAASuK,WACxC,CAAEpyB,IAAK,SAAUgF,MAAO6iB,GAASwK,QACjC,CAAEryB,IAAK,oBAAqBgF,MAAO6iB,GAAS0K,0BAC5C,CAAEvyB,IAAK,mBAAoBgF,MAAO6iB,GAAS2K,iBAC3C,CAAExyB,IAAK,8BAA+BgF,MAAO6iB,GAASqL,kCACtD,CAAElzB,IAAK,wBAAyBgF,QAA2B,MAAlB6iB,GAASyK,QAClD,CAAEtyB,IAAK,iBAAkBgF,QAAqC,MAA5B6iB,GAASiL,kBAC3C,CAAE9yB,IAAK,uBAAwBgF,QAA4C,MAAnC6iB,GAASoL,yBACjD,CAAEjzB,IAAK,sBAAuBgF,MAAkC,QAA7B86B,EAAEjY,GAASuL,0BAAkB,IAAA0M,OAAA,EAA3BA,EAA6BzM,OAClE,CAAErzB,IAAK,gBAAiBgF,MAAQ6iB,GAASkL,gBAAkBuK,GAAYzV,GAASuL,mBAAoB,CAAC,qBACrG,CAAEpzB,IAAK,mBAAoBgF,MAAO6iB,GAAS1E,iBAC3C,CAAEnjB,IAAK,sBAAuBgF,OAAUyyB,GAA2B6F,GAAYzV,GAAS4L,4BAA6B,KACrH,CAAEzzB,IAAK,wBAAyBgF,MAAOs4B,GAAYzV,GAASgM,qBAAsB,CAAC,mBAGnF,GAAIuJ,EAAwB,CACxB,IAAI4C,EAAyB,CAAC,CAAEhgC,IAAK,4BAA6BgF,MAAO6iB,GAASmK,wBAA0B,CAAEhyB,IAAK,6BAA8BgF,MAAO6iB,GAASoK,0BACjK8N,EAAuBE,OAAO,EAAG,KAAMD,GAG3C,IAAI1yB,EAAeiH,GAAmCwrB,GACtD,GAAIzyB,EACA,MAAO,gBAAgBua,GAASxuB,UAAYwuB,GAASxuB,UAAY,MAAMwuB,GAASvuB,SAAWuuB,GAASvuB,SAAW,QAAQgU,KAI/H,MAAO,IAmHeuyB,GACE,KAApBD,EAIJpmB,EAAS,CACLL,WAAW,EACXC,UAAW,sDACXC,gBAAiB,SACjBC,iBAAkB6kB,KAPlB9e,MAAM,yBAA2BugB,IAo/BrB5gB,YAAaA,GACbC,kBA3/BMA,KACtBhY,EAAQY,KAAK,yBA2/BGuX,YAAaA,IAAM7K,GAAyBtV,IAC5CoO,eAl8DG,GAm8DH0R,mBAAmB,OCrqE9BmhB,GAAoBp5B,IAAW,IAADq5B,EAAAC,EAAAC,EACvC,IAAI,YAAEC,EAAW,SAAEC,EAAQ,YAAEC,EAAW,MAAEx7B,EAAK,MAAE0Z,GAAU5X,EAC3D,MAAO25B,EAAWC,GAAgBn5B,mBAAkB,QAAV44B,EAACn7B,EAAMnD,WAAG,IAAAs+B,IAAI,WACjDr+B,EAAW6+B,GAAgBp5B,mBAAwB,QAAhB64B,EAACp7B,EAAMlD,iBAAS,IAAAs+B,IAAI,OACvDr+B,EAAS6+B,GAAcr5B,mBAAsB,QAAd84B,EAACr7B,EAAMjD,eAAO,IAAAs+B,IAAI,MAGlDQ,EADgB,CAAC,SAAU,UAAW,YAAa,WAAY,SAAU,WAAY,UAChDt7B,IAAK1D,IAAiB,CAAEmD,MAAOnD,EAAMkM,MAAOlM,KAEjFoN,EAAgBA,CAACzB,EAAOpV,KAC1B,IAAI+kB,EAAmB,CAAEtb,IAAK4+B,EAAW3+B,YAAWC,WAGpD,OAFAob,EAAmB,IAAIA,EAAkB,CAAC3P,GAAQpV,EAAEiO,OAAOrB,OAEnDwI,GACJ,IAAK,MACDkzB,EAAatoC,EAAEiO,OAAOrB,OACtB,MACJ,IAAK,YACD27B,EAAavoC,EAAEiO,OAAOrB,OACtB,MACJ,IAAK,UACD47B,EAAWxoC,EAAEiO,OAAOrB,OAI5Bs7B,EAAYnjB,IAGhB,OAAOlX,IAAAC,cAACwH,KAAG,CAACvH,UAAU,sBAClBF,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,SACZgU,UAAQ,EACR5L,KAAK,YACLhD,GAAG,YACHwQ,MAAM,aACNC,QAAS6yB,EACT77B,MAAOA,EAAMnD,IACb4M,SAAWrW,GAAM6W,EAAc,MAAO7W,MAG9C6N,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CACN3H,UAAU,eACVhO,KAAK,OACLoI,KAAK,YACLhD,GAAG,YACHwQ,MAAM,aACN5B,UAAQ,EACRnH,MAAOA,EAAMlD,UACb2M,SAAWrW,GAAM6W,EAAc,YAAa7W,MAGpD6N,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CACN3H,UAAU,eACVhO,KAAK,OACLoI,KAAK,UACLhD,GAAG,UACHwQ,MAAM,WACN5B,UAAQ,EACRnH,MAAOA,EAAMjD,QACb0M,SAAWrW,GAAM6W,EAAc,UAAW7W,MAGlD6N,IAAAC,cAACyH,KAAG,KACA1H,IAAAC,cAAC+B,KAAM,CAAC9B,UAAU,eAAe+B,QAASq4B,GAAU,KACzC,IAAV7hB,GAAezY,IAAAC,cAAC+B,KAAM,CAAC9B,UAAU,eAAe+B,QAASs4B,GAAa,QCvEtEM,GAA2B,CACpCC,GAAI,MACJC,yBAA0B,2BAC1BC,yBAA0B,2BAC1BC,0BAA2B,4BAC3BC,wBAAyB,0BACzBC,oCAAqC,sCACrCC,wBAAyB,0BACzBC,2BAA4B,6BAC5BC,qBAAsB,uBACtBC,gBAAiB,kBACjBC,uBAAwB,yBACxBC,cAAe,gBACfC,qBAAsB,uBACtBC,gBAAiB,kBACjBC,uBAAwB,yBACxBC,sBAAuB,wBACvBC,6BAA8B,gCAGlCpiC,OAAOC,OAAOkhC,ICbP,MAAMkB,GAAuBl7B,IAChC,IAAI,0BAAEm7B,EAAyB,2BAAEC,GAA+Bp7B,EAChE,MAAMC,EAAWC,eAEVrL,EAAOwmC,GAAY56B,mBAAS,KAC5B66B,EAA0BC,GAA+B96B,oBAAS,IAClE+6B,EAAgCC,GAAqCh7B,mBAAS,eAC9Ei7B,EAA4BC,GAAiCl7B,oBAAS,IACtEm7B,EAAkCC,GAAuCp7B,mBAAS,eAClFq7B,EAA4BC,GAAiCt7B,oBAAS,IACtEu7B,EAAkCC,GAAuCx7B,mBAAS,eAClFy7B,EAAkCC,GAAuC17B,oBAAS,IAClF27B,EAAwCC,GAA6C57B,mBAAS,eAE9F67B,EAAeC,GAAoB97B,oBAAS,IAC5C+7B,EAAqCC,GAA0Ch8B,oBAAS,IACxFi8B,EAAqCC,GAA0Cl8B,oBAAS,IACxFm8B,EAAsCC,GAA2Cp8B,oBAAS,IAC1Fq8B,EAAoCC,GAAyCt8B,oBAAS,IACtFu8B,EAAgDC,GAAqDx8B,oBAAS,IAC9Gy8B,EAAoCC,GAAyC18B,oBAAS,IACtF28B,EAAuCC,GAA4C58B,oBAAS,IAC5F68B,EAAiCC,GAAsC98B,oBAAS,GAEvFK,oBAAU,KACNb,EAAS,CAAE5O,KxDmCiC,uCwDnCiBgH,SAAUO,EAAehB,0BACvF,IACH,MAAM4lC,EAA6Bl9B,YAAavP,GAAUA,EAAMoN,wBAAwBpB,wBAElF0gC,EAAgBD,EAA6BA,EAA2B9kC,MAAMC,OAAOyiB,GAAKA,EAAE/pB,OAASqsC,GAAqC9C,eAAiB,KAC3J+C,EAAuBF,EACvBA,EAAch/B,IAAKg1B,IAAe,CAAEv1B,MAAOu1B,EAAEh6B,KAAMwN,MAAOwsB,EAAEv1B,SAAa,GAEzE0/B,EAAkBJ,EAA6BA,EAA2B9kC,MAAMC,OAAOyiB,GAAKA,EAAE/pB,OAASqsC,GAAqChD,iBAAmB,KAC/JmD,EAAyBD,EACzBA,EAAgBn/B,IAAKg1B,IAAe,CAAEv1B,MAAOu1B,EAAEh6B,KAAMwN,MAAOwsB,EAAEv1B,SAAa,GAE3E4/B,EAAkBN,EAA6BA,EAA2B9kC,MAAMC,OAAOyiB,GAAKA,EAAE/pB,OAASqsC,GAAqC5C,iBAAmB,KAC/JiD,EAAyBD,EACzBA,EAAgBr/B,IAAKg1B,IAAe,CAAEv1B,MAAOu1B,EAAEh6B,KAAMwN,MAAOwsB,EAAEv1B,SAAa,GAE3E8/B,EAAwBR,EAA6BA,EAA2B9kC,MAAMC,OAAOyiB,GAAKA,EAAE/pB,OAASqsC,GAAqC1C,uBAAyB,KAC3KiD,EAA+BD,EAC/BA,EAAsBv/B,IAAKg1B,IAAe,CAAEv1B,MAAOu1B,EAAEh6B,KAAMwN,MAAOwsB,EAAEv1B,SAAa,GAEvF4C,oBAAU,KACN,GAAIs6B,EAA4B,CAC5B,IAAI3kC,EAAK2kC,EAA2B/pC,KAChC6M,EAAQk9B,EAA2B3hC,KACvCykC,GAAcznC,GACVA,IAAOinC,GAAqC9C,eAAiBnkC,IAAOinC,GAAqChD,iBAAmBjkC,IAAOinC,GAAqC5C,iBAAmBrkC,IAAOinC,GAAqC1C,uBACvOmD,GAAiB1nC,EAAIyH,KAG9B,CAACk9B,IAEJ,MAAMgD,EAAe9sC,IACjB,IAAIosC,EAAcF,EAA2B9kC,MAAM+N,KAAMgtB,GAC9CA,EAAEh6B,KAAK4hB,gBAAkB/pB,EAAEiO,OAAOrB,MAAMmd,eAEnD8f,EAA0BuC,GAC1BrC,EAAS,KAGPgD,GAAqB/sC,IACvB,IAAImF,EAAKnF,EAAEiO,OAAO9I,GAQlB,GAPA6nC,KACAJ,GAAcznC,GACd0kC,EAA0B,MAC1BM,EAAkC,cAClCI,EAAoC,cACpCI,EAAoC,cACpCI,EAA0C,cACtC5lC,IAAOinC,GAAqC9C,eAAiBnkC,IAAOinC,GAAqChD,iBAAmBjkC,IAAOinC,GAAqC5C,iBAAmBrkC,IAAOinC,GAAqC1C,sBAAuB,CAC9PK,EAAS,IACT,IAAIqC,EAAcF,EAA2B9kC,MAAM+N,KAAMgtB,GAC9CA,EAAEpiC,KAAKgqB,gBAAkB/pB,EAAEiO,OAAO9I,GAAG4kB,eAEhD8f,EAA0BuC,QAE1BrC,EAAS,6BAIX8C,GAAmBA,CAAC1nC,EAAIyH,KAC1B,OAAQzH,GACJ,KAAKinC,GAAqC7C,qBAC1C,KAAK6C,GAAqC9C,cACtCa,EAAkCv9B,GAClC,MACJ,KAAKw/B,GAAqC/C,uBAC1C,KAAK+C,GAAqChD,gBACtCmB,EAAoC39B,GACpC,MACJ,KAAKw/B,GAAqC3C,uBAC1C,KAAK2C,GAAqC5C,gBACtCmB,EAAoC/9B,GACpC,MACJ,KAAKw/B,GAAqCzC,6BAC1C,KAAKyC,GAAqC1C,sBACtCqB,EAA0Cn+B,KAKhDggC,GAAiBznC,IACnB,OAAQA,GACJ,KAAKinC,GAAqCzD,GACtCsC,GAAiB,GACjB,MACJ,KAAKmB,GAAqCxD,yBACtCuC,GAAuC,GACvC,MACJ,KAAKiB,GAAqCvD,yBACtCwC,GAAuC,GACvC,MACJ,KAAKe,GAAqCtD,0BACtCyC,GAAwC,GACxC,MACJ,KAAKa,GAAqCrD,wBACtC0C,GAAsC,GACtC,MACJ,KAAKW,GAAqCpD,oCACtC2C,GAAkD,GAClD,MACJ,KAAKS,GAAqCnD,wBACtC4C,GAAsC,GACtC,MACJ,KAAKO,GAAqClD,2BACtC6C,GAAyC,GACzC,MACJ,KAAKK,GAAqCjD,qBACtC8C,GAAmC,GACnC,MACJ,KAAKG,GAAqChD,gBACtCiB,GAA8B,GAC9B,MACJ,KAAK+B,GAAqC9C,cACtCW,GAA4B,GAC5B,MACJ,KAAKmC,GAAqC5C,gBACtCiB,GAA8B,GAC9B,MACJ,KAAK2B,GAAqC1C,sBACtCmB,GAAoC,KAK1CmC,GAAmBA,KACrB/B,GAAiB,GACjBE,GAAuC,GACvCE,GAAuC,GACvCE,GAAwC,GACxCE,GAAsC,GACtCE,GAAkD,GAClDE,GAAsC,GACtCE,GAAyC,GACzCE,GAAmC,GACnC5B,GAA8B,GAC9BJ,GAA4B,GAC5BQ,GAA8B,GAC9BI,GAAoC,IAGxC,OAAOh9B,IAAAC,cAAA,OAAKC,UAAU,wBACjBxK,GAASsK,IAAAC,cAAA,QAAMC,UAAU,SAASxK,GACnCsK,IAAAC,cAAA,WAAKD,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,QAAQoF,GAAG,MAAMgD,KAAK,sBAAsBkO,SAAWrW,GAAM+sC,GAAkB/sC,GAAIkX,QAAS8zB,IAAiBn9B,IAAAC,cAAC2H,KAAK,KAAC,QACrI5H,IAAAC,cAAA,WACID,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,QAAQoF,GAAG,gBAAgBgD,KAAK,sBAAsBkO,SAAWrW,GAAM+sC,GAAkB/sC,GAAIkX,QAAS8yB,IAClHn8B,IAAAC,cAAC2H,KAAK,KAAC,mBACH5H,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,SAASoI,KAAK,uBAAuBhD,GAAG,uBAAuByH,MAAOs9B,EAAgC7zB,SAAUy2B,EAAa32B,UAAW6zB,GAC5In8B,IAAAC,cAAA,UAAQlB,MAAM,IAAI,cACjBy/B,EAAqBl/B,IAAIgK,GAAKtJ,IAAAC,cAAA,UAAQlB,MAAOuK,EAAEvK,MAAOhF,IAAK,UAAYuP,EAAEvK,OAAQ,IAAEuK,EAAExB,SACrF,cAIjB9H,IAAAC,cAAA,WACID,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,QAAQoF,GAAG,kBAAkBgD,KAAK,sBAAsBkO,SAAWrW,GAAM+sC,GAAkB/sC,GAAIkX,QAASkzB,IACpHv8B,IAAAC,cAAC2H,KAAK,KAAC,mBACF5H,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,SAASoI,KAAK,yBAAyBhD,GAAG,yBAAyByH,MAAO09B,EAAkCj0B,SAAUy2B,EAAa32B,UAAWi0B,GACvJv8B,IAAAC,cAAA,UAAQlB,MAAM,IAAI,cACjB2/B,EAAuBp/B,IAAIgK,GAAKtJ,IAAAC,cAAA,UAAQlB,MAAOuK,EAAEvK,MAAOhF,IAAK,UAAYuP,EAAEvK,OAAQ,IAAEuK,EAAExB,SACpF,gBAIhB9H,IAAAC,cAAA,WACID,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,QAAQoF,GAAG,2BAA2BgD,KAAK,sBAAsBkO,SAAWrW,GAAM+sC,GAAkB/sC,GAAIkX,QAASg0B,IAC7Hr9B,IAAAC,cAAC2H,KAAK,KAAC,mCAEX5H,IAAAC,cAAA,WACID,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,QAAQoF,GAAG,2BAA2BgD,KAAK,sBAAsBkO,SAAWrW,GAAM+sC,GAAkB/sC,GAAIkX,QAASk0B,IAC7Hv9B,IAAAC,cAAC2H,KAAK,KAAC,oCAEX5H,IAAAC,cAAA,WACID,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,QAAQoF,GAAG,kBAAkBgD,KAAK,sBAAsBkO,SAAWrW,GAAM+sC,GAAkB/sC,GAAIkX,QAASszB,IACpH38B,IAAAC,cAAC2H,KAAK,KAAC,mBACH5H,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,SAASoI,KAAK,yBAAyBhD,GAAG,yBAAyByH,MAAO89B,EAAkCr0B,SAAUy2B,EAAa32B,UAAWq0B,GACtJ38B,IAAAC,cAAA,UAAQlB,MAAM,IAAI,cACjB6/B,EAAuBt/B,IAAIgK,GAAKtJ,IAAAC,cAAA,UAAQlB,MAAOuK,EAAEvK,MAAOhF,IAAK,UAAYuP,EAAEvK,OAAQ,IAAEuK,EAAExB,SACpF,gBAIhB9H,IAAAC,cAAA,WAAKD,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,QAAQoF,GAAG,wBAAwBgD,KAAK,sBAAsBkO,SAAWrW,GAAM+sC,GAAkB/sC,GAAIkX,QAAS0zB,IAC3H/8B,IAAAC,cAAC2H,KAAK,KAAC,+BACD5H,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,SAASoI,KAAK,+BAA+BhD,GAAG,+BAA+ByH,MAAOk+B,EAAwCz0B,SAAUy2B,EAAa32B,UAAWy0B,GAC1K/8B,IAAAC,cAAA,UAAQlB,MAAM,IAAI,cACjB+/B,EAA6Bx/B,IAAIgK,GAAKtJ,IAAAC,cAAA,UAAQlB,MAAOuK,EAAEvK,MAAOhF,IAAK,UAAYuP,EAAEvK,OAAQ,IAAEuK,EAAExB,WAI1G9H,IAAAC,cAAA,WAAKD,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,QAAQoF,GAAG,4BAA4BgD,KAAK,sBAAsBkO,SAAWrW,GAAM+sC,GAAkB/sC,GAAIkX,QAASo0B,IAAwCz9B,IAAAC,cAAC2H,KAAK,KAAC,iCAClL5H,IAAAC,cAAA,WAAKD,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,QAAQoF,GAAG,0BAA0BgD,KAAK,sBAAsBkO,SAAWrW,GAAM+sC,GAAkB/sC,GAAIkX,QAASs0B,IAAsC39B,IAAAC,cAAC2H,KAAK,KAAC,+BAC9K5H,IAAAC,cAAA,WAAKD,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,QAAQoF,GAAG,sCAAsCgD,KAAK,sBAAsBkO,SAAWrW,GAAM+sC,GAAkB/sC,GAAIkX,QAASw0B,IAAkD79B,IAAAC,cAAC2H,KAAK,KAAC,2CACtM5H,IAAAC,cAAA,WAAKD,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,QAAQoF,GAAG,0BAA0BgD,KAAK,sBAAsBkO,SAAWrW,GAAM+sC,GAAkB/sC,GAAIkX,QAAS00B,IAAsC/9B,IAAAC,cAAC2H,KAAK,KAAC,+BAC9K5H,IAAAC,cAAA,WAAKD,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,QAAQoF,GAAG,6BAA6BgD,KAAK,sBAAsBkO,SAAWrW,GAAM+sC,GAAkB/sC,GAAIkX,QAAS40B,IAAyCj+B,IAAAC,cAAC2H,KAAK,KAAC,iCACpL5H,IAAAC,cAAA,WAAKD,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,QAAQoF,GAAG,uBAAuBgD,KAAK,sBAAsBkO,SAAWrW,GAAM+sC,GAAkB/sC,GAAIkX,QAAS80B,IAAmCn+B,IAAAC,cAAC2H,KAAK,KAAC,4BC7MnKw3B,GAAuBv+B,IAAW,IAADw+B,EAAAC,EAC1C,MAAMx+B,EAAWC,cACXC,EAAUC,eACVs+B,EAAyB17B,oBAGxBqM,EAAaC,IADEnP,GAAWA,EAAQ8J,SAASlZ,OAAQoP,EAAQ8J,SAASlZ,MAAMmF,MAC3CuK,oBAAS,IACzC5P,EAAWyP,YAAavP,GAAUA,EAAMC,KAAKH,UAC9CA,GACDsP,EAAQY,KAAK,KAEjB,MAAOJ,EAASuO,GAAarO,aAAW,CAAC,qBAClC89B,EAAUC,GAAen+B,mBAAS,IACjCuI,QAASyG,GAAyB/E,GAAe,0CAClDyK,EAAc2B,GAAmBrW,oBAAS,IAE1CtI,EAAQiU,GAAa3L,mBAAS,CACjCo+B,eAAgB,GAChBC,eAAgB,GAChBC,MAAO,GACPC,SAAU,GACVC,eAAgB,KAGdtrC,EAAW2M,YAAavP,GACnBA,EAAMC,KAAKH,SAAWE,EAAMC,KAAKH,SAASmF,SAAW,IAE1DrD,EAAe2N,YAAavP,GACvBA,EAAMC,KAAKH,SAAWE,EAAMC,KAAKH,SAAS8B,aAAe,IAG9D82B,EAAcnpB,YAAavP,GAAUA,EAAMoN,wBAAwBrB,eACnE4sB,EAAyBD,EACzBA,EAAY/wB,MAAM+F,IAAK2c,IAAe,CAAEld,MAAOkd,EAAE3hB,KAAMwN,MAAOmU,EAAE3hB,QAChE,GAEAzB,GADesI,YAAavP,GAAUA,EAAMoN,wBAAwBlB,cAC/CqD,YAAavP,GAAUA,EAAMoN,wBAAwBnG,qBAC1EkF,EAA0BoD,YAAavP,GAAUA,EAAMoN,wBAAwBjB,yBACrF,IAAIgiC,EAAkBhiC,GAAoDlF,EAE1E,MAAM8C,EAAuB,CAAC,CAAEC,IAAK,SAAUC,UAAW,GAAIC,QAAS,MAEhEkkC,EAAWC,GAAgB3+B,mBAAwB,OAAfy+B,QAAe,IAAfA,OAAe,EAAfA,EAAiBprB,YACrDurB,EAAqBC,GAAsB7+B,mBAAwB,OAAfy+B,QAAe,IAAfA,OAAe,EAAfA,EAAiBlpB,sBACrEgpB,EAAUO,GAAe9+B,mBAAwB,OAAfy+B,QAAe,IAAfA,OAAe,EAAfA,EAAiBlrB,UACpDxZ,EAAa8F,YAAavP,GAAUA,EAAMC,KAAKwJ,YAC/CnF,EAAaiL,YAAavP,GAAUA,EAAMC,KAAKqE,YAC/CD,EAAakL,YAAavP,GAAUA,EAAMC,KAAKoE,aAC9CwE,EAAoBwQ,GAAyB3J,mBAASmJ,KActD41B,EAAgBC,GAAqBh/B,mBAAwB,OAAfy+B,QAAe,IAAfA,OAAe,EAAfA,EAAiBjpB,iBAE/DypB,EAAyBC,GAA8Bl/B,mBAASy+B,EAAgBjpB,eAAiB,CAA+B,QAA/BuoB,EAACU,EAAgBjpB,sBAAc,IAAAuoB,OAAA,EAA9BA,EAAgC/kC,MAAQ,IAc3ImmC,EAA0BC,IAAuB,IAADC,EAClDH,EAA2BE,GAE3B,MAAMtO,EAA4C,QAAvBuO,EAAGD,EAAkB,UAAE,IAAAC,OAAA,EAApBA,EAAsB5hC,MACpD,IAAI2uB,EAAYpD,EAAY/wB,MAAM+N,KAAM2U,GAAeA,EAAE3hB,OAAS83B,GAClEkO,EAAkB5S,KAEfkS,EAAOxpB,GAAY9U,mBAAwB,OAAfy+B,QAAe,IAAfA,OAAe,EAAfA,EAAiB5sC,QAiB7CusC,EAAgBkB,GAAqBt/B,mBAAwB,OAAfy+B,QAAe,IAAfA,OAAe,EAAfA,EAAiBhpB,MAgB/D0F,EAAYC,GAAiBpb,mBAAS,OACtCq+B,EAAgBkB,GAAqBv/B,mBAAwB,OAAfy+B,QAAe,IAAfA,OAAe,EAAfA,EAAiB/oB,iBAC/D8oB,GAAgBgB,IAAqBx/B,mBAAwB,OAAfy+B,QAAe,IAAfA,OAAe,EAAfA,EAAiB9oB,gBAQ/D8pB,GAAqBC,IAA0B1/B,oBAAS,IACxD4V,GAAkB+pB,IAAuB3/B,mBAA0C,QAAlCg+B,EAAgB,OAAfS,QAAe,IAAfA,OAAe,EAAfA,EAAiB7oB,wBAAgB,IAAAooB,IAAI3jC,GAMxFulC,GAAsBA,KACxB,GAAIhqB,GAAiB5kB,QAAU,EAAG,OAClC,IAAI6uC,EAAQ,IAAIjqB,IAChBiqB,EAAMv/B,KAAK,CAAEhG,IAAK,SAAUC,UAAW,GAAIC,QAAS,KACpDmlC,GAAoBE,IAsClBC,GAA+BA,MACI,IAA5BlqB,GAAiB5kB,QACnB4kB,GAAiB,GAAGtb,MAAQD,EAAqB,GAAGC,KACpDsb,GAAiB,GAAGrb,YAAcF,EAAqB,GAAGE,WAC1Dqb,GAAiB,GAAGpb,UAAYH,EAAqB,GAAGG,UAG5DulC,GAAaC,IAA0BhgC,oBAAwB,OAAfy+B,QAAe,IAAfA,OAAe,EAAfA,EAAiB5oB,qBAAqC,OAAf4oB,QAAe,IAAfA,OAAe,EAAfA,EAAiB5oB,oBAAsB,OAE9HwF,GAAWC,IAAgBtb,mBAAS,KACpC8M,GAAeC,IAAoB/M,oBAAS,GAE7CigC,GAAgB,CAAC,SAAU,UAAW,YAAa,WAAY,SAAU,WAAY,UACrFn6B,GAAiB,CAAC,CAAErN,IAAK,aAAcgF,MAAOihC,GAAa,CAAEjmC,IAAK,oBAAqBgF,MAAOmhC,GACpG,CAAEnmC,IAAK,YAAagF,MAAO8gC,GAAY,CAAE9lC,IAAK,SAAUgF,MAAO6gC,GAAS,CAAE7lC,IAAK,sBAAuBgF,MAAO+gC,IAC7G,CAAE/lC,IAAK,uBAAwBgF,MAAOsiC,IAAe,CAAEtnC,IAAK,qBAAsBgF,MAAQqiC,KAAiClqB,GAAmB,OAMxIuH,GAAYtd,YAAavP,GAAUA,EAAMoN,wBAAwBtJ,OAEvEiM,oBAAU,KACFjQ,IACAoP,EAAS,CAAE5O,KzDtL0B,sCyDuLrC4O,EAAS,CAAE5O,KzD7J6B,uCyD6JqBgH,SAAUO,EAAejB,kBAE3F,IAEHmJ,oBAAU,KACF2oB,GACAna,GAAe,IAEpB,CAACma,IAEJ3oB,oBAAU,KACF69B,EAAW,GACXzvB,EAAU,kBAAmB,QAAS,CAAEU,KAAM,IAAKC,OAAQ,UAE/D+uB,EAAY+B,GAAiBA,EAAgB,IAC9C,CAACxB,EAAWE,EAAqBL,EAAUQ,EAAgBT,EAAOE,GAAgB5oB,GAAkBwoB,EAAgB2B,GAAaroC,IAEpI2I,oBAAU,KACDtG,GACD4R,EAAU,IAAKjU,EAAQ6mC,SAAU3pC,KACtC,CAACA,IACJyL,oBAAU,KACDtG,GACD4R,EAAU,IAAKjU,EAAQ4mC,MAAO3pC,KACnC,CAACA,IAEJ,MAAM8iB,GAAcA,KAGhB,GAFA6D,GAAa,IAET9V,GAAa9N,GAAS,CACtB,IAAI9B,EAAc,IACX6oC,EACHvsC,aAAcA,EACdgB,SAAUA,EACVmgB,UAAWqrB,EACXnpB,oBAAqBqpB,EACrBrrB,SAAUgrB,EACV/oB,eAAgBupB,EAChBltC,MAAOysC,EACP7oB,IAAK2oB,EACL1oB,eAAgB2oB,EAChB1oB,cAAe6oB,GACf5oB,oBACAC,oBAAqBkqB,IAErBjvC,EAAU,GACVuY,EAAa,cACbC,EAAa,GACZm1B,GAAoBA,EAAgBzoC,IAarClF,EAAU,8CACVwY,EAAa/W,KAAKC,UAAUoD,GAC5BgU,GAAa9Y,EAASuY,EAAYC,GAClC9J,EAAS,CAAE5O,KzDzO0B,wCyDyOyBgF,YAAaA,EAAaE,QAAQ,MAfhGhF,EAAU,8CACVwY,EAAa/W,KAAKC,UAAUoD,GAC5BgU,GAAa9Y,EAASuY,EAAYC,GAGlCyD,IAAiB,GAEbvN,EADAwP,EACS,CAAEpe,KzDtOsB,wCyDsO6BgF,YAAaA,EAAa4B,6BAA6B,GAE5G,CAAE5G,KzDxOsB,wCyDwO6BgF,YAAaA,EAAa4B,6BAA6B,KAQ7HgI,EAAS,CAAE5O,KzDpPU,oByDoPqB6L,wBAAyB7G,IAGnE6Y,EAAU,kBAAmB,OAAQ,CAAEU,KAAM,IAAKC,OAAQ,UAC1D,IAAI+wB,EAA2B,yCAA2Cxf,GAAiB,IACvFA,KACA7vB,EAAUqvC,EACV72B,EAAa/W,KAAKC,UAAUisC,GAC5B70B,GAAa9Y,EAASuY,EAAYC,IAGlC6T,KACArsB,EAAUqvC,EACV92B,EAAa,cACbC,EAAa/W,KAAKC,UAAU2qB,IAC5BijB,GAActvC,EAASuY,EAAYC,SAIvC8R,EAAc,OAahBuF,GAAiB9gB,YAAavP,GAAUA,EAAMoN,wBAAwBb,6BAC5EwD,oBAAU,KACFsgB,IAAkB8d,GAClBj/B,EAAS,CAAE5O,KzD5R0B,sCyD6RjCuqB,EACAzb,EAAQY,KAAK6a,IAGbhD,KACAmD,GAAa,aAEV6B,KACPhF,KACAmD,GAAa,WAEjBF,EAAc,MAEdrO,IAAiB,IAClB,CAAC4T,GAAgBxD,KAEpB,MAAMvT,GAAeA,CAAC9Y,EAASuY,EAAYC,KAQvCK,EAPmB,CACf7Y,QAASA,EACTsY,SAAU,sBACVC,WAAYA,EACZC,WAAYA,IAIsB,OAAlCnQ,EAAmBkQ,YACnB7J,EAAS,CAAE5O,KzDxOO,iByDwOqBuI,qBAAoB/I,cAI7DgwC,GAAgBA,CAACtvC,EAASuY,EAAYC,KAQxCK,EAPmB,CACf7Y,QAASA,EACTsY,SAAU,sBACVC,WAAYA,EACZC,WAAYA,IAIsB,OAAlCnQ,EAAmBkQ,YACnB7J,EAAS,CAAE5O,KzDnPQ,kByDmPqBuI,qBAAoB/I,cAIpE,OAAOsO,IAAAC,cAAA,OAAKC,UAAU,wBACjByc,GAAUrqB,OAAS,GAAK0N,IAAAC,cAAC6Z,GAAW,CAAC5nB,KAAMyqB,KAC5C3c,IAAAC,cAACuH,GAAa,KAAC,wBAEX0I,EACIlQ,IAAAC,cAACuP,GAAgB,MACjBxP,IAAAC,cAAA,WACID,IAAAC,cAAC0N,KAAI,KACD3N,IAAAC,cAAC4Z,GAAgB,KAAC,mBAClB7Z,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZgU,UAAQ,EACR5L,KAAK,YACLhD,GAAG,YACHwQ,MAAM,kCACN/I,MAAOihC,EACPh6B,UAAW,GACXyC,WAAatW,GAAM8tC,EAAa9tC,EAAEiO,OAAOrB,MAAMmN,QAC/C1D,SAAWrW,GAAM8tC,EAAa9tC,EAAEiO,OAAOrB,SAE3CiB,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,KACA1H,IAAAC,cAACgJ,KAAS,KACNjJ,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,iBAAiBgJ,IAAI,OAAM,qBAC5ClJ,IAAAC,cAAA,QAAMC,UAAU,eACZF,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,WAAWoI,KAAK,QAAQhD,GAAG,iBAAiB2K,QAAU9P,IAAYA,EAAEiO,OAAOiJ,SAAW82B,EAAmBH,MACrHhgC,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,iBAAiBgJ,IAAI,iBAAiB4c,OAAK,GAAC,uBAEjE9lB,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,OAAOoI,KAAK,MAAMhD,GAAG,MAAMyH,MAAOmhC,EAAqB13B,SAAWrW,GAAMguC,EAAmBhuC,EAAEiO,OAAOrB,OAC5GiH,UAAW,GAAIuE,OAASpY,GAAMguC,EAAmBhuC,EAAEiO,OAAOrB,MAAMmN,aAIhFlM,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZgU,UAAQ,EACR5L,KAAK,WACLhD,GAAG,WACHwQ,MAAM,YACN/I,MAAO8gC,EACPnqC,MAAOsD,EAAO6mC,SACdr3B,SArVNrW,IACtB,IAAIuD,EAAQ2P,GAAYlT,EAAEiO,OAAOrB,OACjC,GAAc,KAAVrJ,EAAc,CACd,IAAItD,EAAU,uCAAyCD,EAAEiO,OAAOrB,MAAQ,IAEpE6L,EAAa/W,KAAKC,UAAU3B,EAAEiO,OAAOrB,OACzCmM,GAAa9Y,EAFI,mBAEiBwY,GAClC9J,EAAS,CAAE5O,KzD7Ca,uByD6CqBgB,IAAKf,EAAEiO,OAAOrB,QAG/DkO,EAAU,IAAKjU,EAAQ6mC,SAAUnqC,IACjC0qC,EAAYjuC,EAAEiO,OAAOrB,WA6UDiB,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC2H,KAAK,KAAC,oBACP5H,IAAAC,cAAC2b,KAAS,CACNtkB,GAAG,2BACHukB,SAAS,QACT9T,QAASwiB,EACTzO,SAAUykB,EACV/3B,SAAUi4B,EACVz4B,YAAY,SACZuC,OAhVHo3B,KACrB,IAAIztC,EAAOqrC,EAAuBvjB,QAAQpqB,MAAMsC,KAChD,GAAIA,EAAM,CACN,IAAIkF,EAAOmxB,EAAuBjjB,KAAM2U,GAAgBA,EAAEld,MAAMmd,gBAAkBhoB,EAAKgoB,eAAiBD,EAAEnU,MAAMoU,gBAAkBhoB,EAAKgoB,eACnI9iB,EACAqnC,EAAuB,CAACrnC,IAGxBmmC,EAAuBvjB,QAAQG,UAyUfC,IAAKmjB,MAIjBv/B,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZgU,UAAQ,EACR5L,KAAK,QACLhD,GAAG,QACHwQ,MAAM,SACN/I,MAAO6gC,EACPlqC,MAAOsD,EAAO4mC,MACdp3B,SA1UTrW,IACnB,IAAIuD,EAAQ0P,GAAcjT,EAAEiO,OAAOrB,OACnC,GAAc,KAAVrJ,EAAc,CACd,IAAItD,EAAU,0CAA4CD,EAAEiO,OAAOrB,MAAQ,IAEvE6L,EAAa/W,KAAKC,UAAU3B,EAAEiO,OAAOrB,OACzCmM,GAAa9Y,EAFI,mBAEiBwY,GAClC9J,EAAS,CAAE5O,KzDvFgB,0ByDuFqBiB,MAAOhB,EAAEiO,OAAOrB,QAEpEkO,EAAU,IAAKjU,EAAQ4mC,MAAOlqC,IAC9B0gB,EAASjkB,EAAEiO,OAAOrB,QAiUUuJ,SAAUgI,KAGjBA,GAAwBtQ,IAAAC,cAACyH,KAAG,CAACC,GAAI,GAC9B3H,IAAAC,cAAA,WACAD,IAAAC,cAAC+B,KAAM,CAAC9B,UAAU,cAAc+B,QAASA,KAAQ0V,GAAgB,KAAS,UAGlF3X,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZoI,KAAK,iBACLhD,GAAG,iBACHwQ,MAAM,2BACN/I,MAAO2gC,EACPhqC,MAAOsD,EAAO0mC,eACdl3B,SA1UArW,IAC5B,IAAIuD,EAAQoP,GAAiB3S,EAAEiO,OAAOrB,OAEtCkO,EAAU,IAAKjU,EAAQ0mC,eAAgBhqC,IAEvCkrC,EAAkBzuC,EAAEiO,OAAOrB,QAsUCiH,UAAW,KAGnBhG,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,OACZoI,KAAK,iBACLhD,GAAG,iBACHwQ,MAAM,kBACN/I,MAAO4gC,EACPjqC,MAAOsD,EAAO2mC,eACdn3B,SA7UArW,IAC5B,IAAIuD,EAAQ6P,GAAWpT,EAAEiO,OAAOrB,OAEhCkO,EAAU,IAAKjU,EAAQ2mC,eAAgBjqC,IAEvCmrC,EAAkB1uC,EAAEiO,OAAOrB,QAyUCiH,UAAW,OAIvBhG,IAAAC,cAAC4Z,GAAgB,KAAC,gBAClB7Z,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,GACL3H,IAAAC,cAAC4H,GAAS,CAAC3V,KAAK,SACZgU,UAAQ,EACR5L,KAAK,iBACLhD,GAAG,iBACHwQ,MAAM,sBACN/I,MAAO+gC,GACP33B,IAAK,EACLC,IAAK,IACL1S,MAAOsD,EAAO8mC,eACdt3B,SAAWrW,GApVX4M,KAC5B,IAAIrJ,EhCgIyB,SAACksC,EAAez5B,GAAmB,IAAdC,EAAG1J,UAAApM,OAAA,QAAAqM,IAAAD,UAAA,GAAAA,UAAA,GAAC,KAC1D,OAAIkjC,GAAiBz5B,KAASC,GAAQA,GAAOw5B,GAAiBx5B,GACnD,GAEPA,EACO,yBAAyBD,SAAWC,KAExC,8BAA8BD,EgCvIrB05B,CAAsB9iC,EAAO,EAAG,KAE5CkO,EAAU,IAAKjU,EAAQ8mC,eAAgBpqC,IAEvCorC,GAAkB/hC,IA+U2B+iC,CAAuB3vC,EAAEiO,OAAOrB,WAI7DiB,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACL3H,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,kBAAiB,wBAG1CF,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACL3H,IAAAC,cAACmJ,KAAK,CAAClX,KAAK,WAAW6M,MAAOgiC,GAAqB9+B,QAtUjC9P,IAC1C,GAAKA,EAAEiO,OAAOiJ,QAIT,CACD,IAAI04B,EAA0B,CAC1B,CAAEnmC,IAAK2lC,GAAc,GAAI1lC,UAAW,QAASC,QAAS,SACtD,CAAEF,IAAK2lC,GAAc,GAAI1lC,UAAW,QAASC,QAAS,SACtD,CAAEF,IAAK2lC,GAAc,GAAI1lC,UAAW,QAASC,QAAS,SACtD,CAAEF,IAAK2lC,GAAc,GAAI1lC,UAAW,QAASC,QAAS,SACtD,CAAEF,IAAK2lC,GAAc,GAAI1lC,UAAW,QAASC,QAAS,UAG1DmlC,GAAoBc,GACpBf,IAAuB,QAbvBC,GAAoBtlC,GACpBqlC,IAAuB,MAmUiG,IAAChhC,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,kBAAiB,0EAG7I6gC,IAAuB7pB,GAAiB5X,IAAI,CAAC0iC,EAAGvpB,IAAUzY,IAAAC,cAACg6B,GAAgB,CACzElgC,IAAK,sBAAwB0e,EAC7BA,MAAOA,EACP6hB,SAAU4G,GACV3G,YAAaA,IAlVL9hB,KAC5B,IAAI0oB,EAAQjqB,GAAiB1d,OAAO,CAACyoC,EAAGC,IAAWA,IAAWzpB,GAE9DwoB,GAAoBE,IA+UmBgB,CAAuB1pB,GAC1C4hB,YAAct7B,GA9VLqjC,EAAC3pB,EAAO1Z,KACrC,IAAIoiC,EAAQ,IAAIjqB,IAChBiqB,EAAM1oB,GAAS1Z,EACfkiC,GAAoBE,IA2VwBiB,CAAyB3pB,EAAO1Z,GACxDA,MAAOijC,KACXhiC,IAAAC,cAACwH,KAAG,KACAzH,IAAAC,cAACyH,KAAG,CAACC,GAAI,IACL3H,IAAAC,cAAC2H,KAAK,CAAC1H,UAAU,kBAAiB,4CAG1CF,IAAAC,cAAC87B,GAAmB,CAACC,0BAA2BsF,GAAwBrF,2BAA4BoF,MAExGrhC,IAAAC,cAAC8V,GAAU,CAACC,aAAcA,EACtBG,UAAWypB,EACX3pB,WAAYA,KAAQ0B,GAAgB,IACpCzB,YA1YQ/iB,IACxB4c,EAAU,kBAAmB,QAAS,CAAEU,KAAM,IAAKC,OAAQ,UAC3D0F,EAASjjB,MA0YG6M,IAAAC,cAAC2Y,GAAgB,CAACK,uBAAuB,EACrCJ,gBAvMMqL,KACtBxH,EAAc,yBACd3D,MAsMgBA,YAAaA,GAAaG,iBAAkB9K,GAC5C4K,kBA9MMA,KACtBlY,EAAS,CAAE5O,KzDzQ4B,oCyD0QvC4O,EAAS,CAAE5O,KzD5Qc,oByD4QiB6L,wBAAyB,OACnEiD,EAAQY,KAAK,eA4MGuX,YAhTAA,IACTrS,GAAa9N,IA/BSqpC,MAC7B,IAAKjB,KACD,OAAO,EASX,OAA8B,IANZlqB,GAAiB1d,OAAQoC,KACnCA,EAAIA,KAAOA,EAAIC,WAAaD,EAAIE,UAKrBxJ,QAoBY+vC,GAgTfj7B,eAAgBA,Q,uBCvfxCk7B,KAAQC,IAAIC,KAAeC,KAAeC,KAAcr3B,KAAoBuJ,KAASG,KAAaD,MAEnF,MAAM6tB,WAAY7/B,YAE7BC,SACI,OACI/C,IAAAC,cAAC4C,GAAM,KACH7C,IAAAC,cAACoD,GAAe,MAGhBrD,IAAAC,cAAC2iC,KAAK,CAACC,OAAK,EAACpyB,KAAK,IAAIqyB,UAAWpzB,KACjC1P,IAAAC,cAAC2iC,KAAK,CAACC,OAAK,EAACpyB,KAAK,UAAUqyB,UAAWv2B,KACvCvM,IAAAC,cAAC2iC,KAAK,CAACC,OAAK,EAACpyB,KAAK,kBAAkBqyB,UAAW70B,KAC/CjO,IAAAC,cAAC2iC,KAAK,CAACC,OAAK,EAACpyB,KAAK,gBAAgBqyB,UAAWzzB,KAG7CrP,IAAAC,cAAC2iC,KAAK,CAACC,OAAK,EAACpyB,KAAK,aAAaqyB,UAAW1rB,KAC1CpX,IAAAC,cAAC2iC,KAAK,CAACC,OAAK,EAACpyB,KAAK,iBAAiBqyB,UAAWt0B,KAC9CxO,IAAAC,cAAC2iC,KAAK,CAACC,OAAK,EAACpyB,KAAK,wBAAwBqyB,UAAWtmB,KACrDxc,IAAAC,cAAC2iC,KAAK,CAACC,OAAK,EAACpyB,KAAK,uBAAuBqyB,UAAW3e,KACpDnkB,IAAAC,cAAC2iC,KAAK,CAACC,OAAK,EAACpyB,KAAK,uBAAuBqyB,UAAW1D,KACpDp/B,IAAAC,cAAC2iC,KAAK,CAACC,OAAK,EAACpyB,KAAK,uBAAuBqyB,UAAW9a,OAInE+a,GAvBoBJ,MACVv/B,YAAcu/B,GAAIroC,K,cCT7B,MAAM0oC,GAAUnjC,SAASojC,qBAAqB,QAAQ,GAAGC,aAAa,QAChEC,GAActjC,SAASujC,eAAe,QACtCC,GCNS,SAAwBC,GACnC,MAAMC,EAAiBC,cACjBC,EAAc,CAACF,GAEfF,EAAQK,sBAAYnlC,GAAa+kC,EAAgBK,8BACnDC,6BAAmBH,KAKvB,OADAF,EAAeM,IAAIC,IACZT,EDJGU,GAEdC,IAASjhC,OACL/C,IAAAC,cAACgkC,IAAa,CAACC,SAAUlB,IACrBhjC,IAAAC,cAACkkC,IAAQ,CAACd,MAAOA,IACbrjC,IAAAC,cAACmkC,KAAe,KACZpkC,IAAAC,cAAC0iC,GAAG,SAIlBQ,M","file":"static/js/main.1bc64841.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/2_Baylor Scott & White Health Plan_Horz_Color.a93b2977.png\";","module.exports = __webpack_public_path__ + \"static/media/footer-line.ed973f4a.jpg\";","module.exports = \"data:image/gif;base64,R0lGODlhuQAUAPEDAJa2332k1/////T07iH5BAUUAAMAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAuQAUAAAC/oyPmcPtrWJ8lMl7KsVYP355DngB5ommZyBCwgvHMsy2QzDnct3i+s8T+X65oGdI3AVUzJRRg0zSbDfp7FmJWrEb646qlRqaZAD3442dR+mpLZxcu9oCuYVeX5aZ9iq9D0cEiDf4B0aot+d0aPhGyNhWGAmZNqa46NjY85g52VlJ6WV5uRK6ZSqGGqcqyAqUSGrmqiMJ+ik6W5R7BUtai3t7Gpw6vFos2Hv5K7ypKcTZ7Bldmay4TDwNnM387HyEGFt6DLT7NU5brpZOU713bbyN3S09bxsf11723nqu23+17sW+V+FMDET3z9w9fgvJJVSTj8xBfw0RVqRYT1vGLS0Rm0wE+NDNRZAjFW4U05FPwDorP5r85g0KIhIKwNBc8OYmAps6DfDs+VNnAQAh+QQFFAADACwBAAEAMwASAAACTpSPecPtD6KcVKqbnna1UwwK2+iVQIiNm+mhl6qxnavAkPzRiM3hk77jMXw/oEE4JEaMR6RyyUQOnqeo88kUXZVZKbW7JYKFXysZa+ZRCwAh+QQFFAADACwiAAEAMwASAAACTpSPecPtD6KcVKqbnna1UwwK2+iVQIiNm+mhl6qxnavAkPzRiM3hk77jMXw/oEE4JEaMR6RyyUQOnqeo88kUXZVZKbW7JYKFXysZa+ZRCwAh+QQFFAADACxDAAEAMwASAAACTpSPecPtD6KcVKqbnna1UwwK2+iVQIiNm+mhl6qxnavAkPzRiM3hk77jMXw/oEE4JEaMR6RyyUQOnqeo88kUXZVZKbW7JYKFXysZa+ZRCwAh+QQFFAADACxkAAEAMwASAAACTpSPecPtD6KcVKqbnna1UwwK2+iVQIiNm+mhl6qxnavAkPzRiM3hk77jMXw/oEE4JEaMR6RyyUQOnqeo88kUXZVZKbW7JYKFXysZa+ZRCwAh+QQFFAADACyFAAEAMwASAAACTpSPecPtD6KcVKqbnna1UwwK2+iVQIiNm+mhl6qxnavAkPzRiM3hk77jMXw/oEE4JEaMR6RyyUQOnqeo88kUXZVZKbW7JYKFXysZa+ZRCwAh+QQFFAADACyFAAEAMwASAAACToSPecPtL6KcVKqbnna1UwwC2+iVQoiNm+mhl6qxnavAkPzRiM3hk77jMXw/oEE4JEaMR6RyyUQOnqeo88kUXZVZKbW7JYKFXysZa+ZRCwAh+QQFFAADACxkAAEAMwASAAACToSPecPtL6KcVKqbnna1UwwC2+iVQoiNm+mhl6qxnavAkPzRiM3hk77jMXw/oEE4JEaMR6RyyUQOnqeo88kUXZVZKbW7JYKFXysZa+ZRCwAh+QQFFAADACxDAAEAMwASAAACToSPecPtL6KcVKqbnna1UwwC2+iVQoiNm+mhl6qxnavAkPzRiM3hk77jMXw/oEE4JEaMR6RyyUQOnqeo88kUXZVZKbW7JYKFXysZa+ZRCwAh+QQFFAADACwiAAEAMwASAAACToSPecPtL6KcVKqbnna1UwwC2+iVQoiNm+mhl6qxnavAkPzRiM3hk77jMXw/oEE4JEaMR6RyyUQOnqeo88kUXZVZKbW7JYKFXysZa+ZRCwA7\"","module.exports = __webpack_public_path__ + \"static/media/loading_symbol_3.70392d3b.gif\";","export const DASHBOARD_GET_APPLICATION_STATUS = \"DASHBOARD_GET_APPLICATION_STATUS\";\r\nexport const DASHBOARD_GET_APPLICATION_STATUS_SUCCESS = \"DASHBOARD_GET_APPLICATION_STATUS_SUCCESS\";\r\nexport const DASHBOARD_GET_APPLICATION_STATUS_FAILURE = \"DASHBOARD_GET_APPLICATION_STATUS_FAILURE\";\r\n\r\nexport const DASHBOARD_GET_MESSAGES = \"DASHBOARD_GET_MESSAGES\";\r\nexport const DASHBOARD_GET_MESSAGES_SUCCESS = \"DASHBOARD_GET_MESSAGES_SUCCESS\";\r\nexport const DASHBOARD_GET_MESSAGES_FAILURE = \"DASHBOARD_GET_MESSAGES_FAILURE\";\r\n\r\nexport const SIGNUP_CREATE_USER_INFO_START = \"SIGNUP_CREATE_USER_INFO_START\";\r\nexport const SIGNUP_CREATE_USER_INFO_SUCCESS = \"SIGNUP_CREATE_USER_INFO_SUCCESS\";\r\nexport const SIGNUP_CREATE_USER_INFO_FAILURE = \"SIGNUP_CREATE_USER_INFO_FAILURE\";\r\n\r\nexport const SIGNUP_UPDATE_USER_INFO_START = \"SIGNUP_UPDATE_USER_INFO_START\";\r\nexport const SIGNUP_UPDATE_USER_INFO_SUCCESS = \"SIGNUP_UPDATE_USER_INFO_SUCCESS\";\r\nexport const SIGNUP_UPDATE_USER_INFO_FAILURE = \"SIGNUP_UPDATE_USER_INFO_FAILURE\";\r\n\r\nexport const SIGNUP_UPDATE_USER_INFO_INITIALIZE_START = \"SIGNUP_UPDATE_USER_INFO_INITIALIZE_START\";\r\nexport const SIGNUP_UPDATE_USER_INFO_INITIALIZE_SUCESS = \"SIGNUP_UPDATE_USER_INFO_INITIALIZE_SUCESS\";\r\n\r\nexport const SIGNIN_GET_USER_INFO_START = \"SIGNIN_GET_USER_INFO_START\";\r\nexport const SIGNIN_GET_USER_INFO_SUCCESS = \"SIGNIN_GET_USER_INFO_SUCCESS\";\r\nexport const SIGNIN_GET_USER_INFO_FAILURE = \"SIGNIN_GET_USER_INFO_FAILURE\";\r\n\r\nexport const SIGNUP_GET_USER_BY_EMAIL_START = \"SIGNUP_GET_USER_BY_EMAIL_START\";\r\nexport const SIGNUP_GET_USER_BY_EMAIL_SUCCESS = \"SIGNUP_GET_USER_BY_EMAIL_SUCCESS\";\r\nexport const SIGNUP_GET_USER_BY_EMAIL_FAILURE = \"SIGNUP_GET_USER_BY_EMAIL_FAILURE\";\r\n\r\nexport const SIGNUP_GET_TAX_ID_START = \"SIGNUP_GET_TAX_ID_START\";\r\nexport const SIGNUP_GET_TAX_ID_SUCCESS = \"SIGNUP_GET_TAX_ID_SUCCESS\";\r\nexport const SIGNUP_GET_TAX_ID_FAILURE = \"SIGNUP_GET_TAX_ID_FAILURE\";\r\nexport const SIGNUP_GET_TAX_ID_CANCEL = \"SIGNUP_GET_TAX_ID_CANCEL\";\r\n\r\nexport const SIGNUP_GET_NPI_START = \"SIGNUP_GET_NPI_START\";\r\nexport const SIGNUP_GET_NPI_SUCCESS = \"SIGNUP_GET_NPI_SUCCESS\";\r\nexport const SIGNUP_GET_NPI_FAILURE = \"SIGNUP_GET_NPI_FAILURE\";\r\n\r\nexport const SIGNUP_RESEND_EMAIL_START = \"SIGNUP_RESEND_EMAIL_START\";\r\nexport const SIGNUP_RESEND_EMAIL_SUCCESS = \"SIGNUP_RESEND_EMAIL_SUCCESS\";\r\nexport const SIGNUP_RESEND_EMAIL_FAILURE = \"SIGNUP_RESEND_EMAIL_FAILURE\";\r\nexport const SIGNUP_RESEND_EMAIL_RESET = \"SIGNUP_RESEND_EMAIL_RESET\";\r\n\r\nexport const REFRESH_APPLICATION_API_CALL_FLAG = \"REFRESH_APPLICATION_API_CALL_FLAG\";\r\nexport const GET_PROFESSIONAL_APPLICATIONS_START = \"GET_PROFESSIONAL_APPLICATIONS_START\";\r\nexport const GET_PROFESSIONAL_APPLICATIONS_SUCCESS = \"GET_PROFESSIONAL_APPLICATIONS_SUCCESS\";\r\nexport const GET_PROFESSIONAL_APPLICATIONS_FAILURE = \"GET_PROFESSIONAL_APPLICATIONS_FAILURE\";\r\n\r\nexport const STORE_APPLICATION = \"STORE_APPLICATION\";\r\nexport const INITIALIZE_PROFESSIONAL_APPLICATION = \"INITIALIZE_PROFESSIONAL_APPLICATION\";\r\nexport const CLEAN_PROFESSIONAL_APPLICATIONS = \"CLEAN_PROFESSIONAL_APPLICATIONS\";\r\n\r\nexport const CREATE_PROFESSIONAL_APPLICATION_START = \"CREATE_PROFESSIONAL_APPLICATION_START\";\r\nexport const CREATE_PROFESSIONAL_APPLICATION_SUCCESS = \"CREATE_PROFESSIONAL_APPLICATION_SUCCESS\";\r\nexport const CREATE_PROFESSIONAL_APPLICATION_FAILURE = \"CREATE_PROFESSIONAL_APPLICATION_FAILURE\";\r\nexport const CREATE_PROFESSIONAL_APPLICATION_FLAGOFF_SUCCESS = \"CREATE_PROFESSIONAL_APPLICATION_FLAGOFF_SUCCESS\";\r\n\r\nexport const UPDATE_PROFESSIONAL_APPLICATION_START = \"UPDATE_PROFESSIONAL_APPLICATION_START\";\r\nexport const UPDATE_PROFESSIONAL_APPLICATION_SUCCESS = \"UPDATE_PROFESSIONAL_APPLICATION_SUCCESS\";\r\nexport const UPDATE_PROFESSIONAL_APPLICATION_FAILURE = \"UPDATE_PROFESSIONAL_APPLICATION_FAILURE\";\r\n\r\nexport const DELETE_PROFESSIONAL_APPLICATION_START = \"DELETE_PROFESSIONAL_APPLICATION_START\";\r\nexport const DELETE_PROFESSIONAL_APPLICATION_SUCCESS = \"DELETE_PROFESSIONAL_APPLICATION_SUCCESS\";\r\nexport const DELETE_PROFESSIONAL_APPLICATION_FAILURE = \"DELETE_PROFESSIONAL_APPLICATION_FAILURE\";\r\n\r\nexport const GET_APPLICATION_DETAILS_START = \"GET_APPLICATION_DETAILS_START\";\r\nexport const GET_APPLICATION_DETAILS_SUCCESS = \"GET_APPLICATION_DETAILS_SUCCESS\";\r\nexport const GET_APPLICATION_DETAILS_FAILURE = \"GET_APPLICATION_DETAILS_FAILURE\";\r\n\r\nexport const APPLICATION_GET_REFERENCE_LIST_START = \"APPLICATION_GET_REFERENCE_LIST_START\";\r\nexport const APPLICATION_GET_TAXID_REFERENCE_LIST_SUCCESS = \"APPLICATION_GET_ACCREDITATIONTYPE_REFERENCE_LIST_SUCCESS\";\r\nexport const APPLICATION_GET_COUNTY_REFERENCE_LIST_SUCCESS = \"APPLICATION_GET_COUNTY_REFERENCE_LIST_SUCCESS\";\r\nexport const APPLICATION_GET_LANGUAGE_REFERENCE_LIST_SUCCESS = \"APPLICATION_GET_LANGUAGE_REFERENCE_LIST_SUCCESS\";\r\nexport const APPLICATION_GET_STATE_REFERENCE_LIST_SUCCESS = \"APPLICATION_GET_STATE_REFERENCE_LIST_SUCCESS\";\r\nexport const APPLICATION_GET_TAXONOMY_REFERENCE_LIST_SUCCESS = \"APPLICATION_GET_TAXONOMY_REFERENCE_LIST_SUCCESS\";\r\nexport const APPLICATION_GET_ACCREDITATIONTYPE_REFERENCE_LIST_SUCCESS = \"APPLICATION_GET_ACCREDITATIONTYPE_REFERENCE_LIST_SUCCESS\";\r\nexport const APPLICATION_GET_DEGREEANDCERTIFICATION_REFERENCE_LIST_SUCCESS = \"APPLICATION_GET_DEGREEANDCERTIFICATION_REFERENCE_LIST_SUCCESS\";\r\nexport const APPLICATION_GET_ADDRESSTYPE_REFERENCE_LIST_SUCCESS = \"APPLICATION_GET_ADDRESSTYPE_REFERENCE_LIST_SUCCESS\";\r\nexport const APPLICATION_GET_CONTACTTYPE_REFERENCE_LIST_SUCCESS = \"APPLICATION_GET_CONTACTTYPE_REFERENCE_LIST_SUCCESS\";\r\nexport const APPLICATION_GET_MALPRACTICEINSURANCETYPE_REFERENCE_LIST_SUCCESS = \"APPLICATION_GET_MALPRACTICEINSURANCETYPE_REFERENCE_LIST_SUCCESS\";\r\nexport const APPLICATION_GET_MALPRACTICEINSURANCECARRIER_REFERENCE_LIST_SUCCESS = \"APPLICATION_GET_MALPRACTICEINSURANCECARRIER_REFERENCE_LIST_SUCCESS\";\r\nexport const APPLICATION_GET_MALPRACTICEINSURANCEAMOUNTS_REFERENCE_LIST_SUCCESS = \"APPLICATION_GET_MALPRACTICEINSURANCEAMOUNTS_REFERENCE_LIST_SUCCESS\";\r\nexport const APPLICATION_GET_PROVIDERFACILITYAFFILIATION_REFERENCE_LIST_SUCCESS = \"APPLICATION_GET_PROVIDERFACILITYAFFILIATION_REFERENCE_LIST_SUCCESS\";\r\nexport const APPLICATION_GET_SPECIALTY_REFERENCE_LIST_SUCCESS = \"APPLICATION_GET_SPECIALTY_REFERENCE_LIST_SUCCESS\";\r\nexport const APPLICATION_GET_PRACTICELIMITATION_REFERENCE_LIST_SUCCESS = \"APPLICATION_GET_PRACTICELIMITATION_REFERENCE_LIST_SUCCESS\";\r\nexport const APPLICATION_GET_MENTALHEALTH_REFERENCE_LIST_SUCCESS = \"APPLICATION_GET_MENTALHEALTH_REFERENCE_LIST_SUCCESS\";\r\nexport const APPLICATION_GET_REFERENCE_LIST_FAILURE = \"APPLICATION_GET_REFERENCE_LIST_FAILURE\";\r\n\r\nexport const LOGIN = \"LOGIN\";\r\nexport const LOGOUT = \"LOGOUT\";\r\nexport const LOGOUT_SUCCESS = \"LOGOUT_SUCCESS\";\r\nexport const LOGOUT_FAILURE = \"LOGOUT_FAILURE\";\r\n\r\nexport const SET_DEFAULT_DOCUMENT_STATE = \"SET_DEFAULT_DOCUMENT_STATE\"\r\n\r\nexport const FILE_UPLOAD_START = \"FILE_UPLOAD_START\";\r\nexport const FILE_UPLOAD_SUCCESS = \"FILE_UPLOAD_SUCCESS\";\r\nexport const FILE_UPLOAD_FAILURE = \"FILE_UPLOAD_FAILURE\";\r\n\r\nexport const FILE_DOWNLOAD_START = \"FILE_DOWNLOAD_START\";\r\nexport const FILE_DOWNLOAD_SUCCESS = \"FILE_DOWNLOAD_SUCCESS\";\r\nexport const FILE_DOWNLOAD_FAILURE = \"FILE_DOWNLOAD_FAILURE\";\r\n\r\nexport const FORGOT_PASSWORD_START = \"FORGOT_PASSWORD_START\";\r\nexport const FORGOT_PASSWORD_SUCCESS = \"FORGOT_PASSWORD_SUCCESS\";\r\nexport const FORGOT_PASSWORD_FAILURE = \"FORGOT_PASSWORD_FAILURE\";\r\n\r\nexport const RESET_PASSWORD_START = \"RESET_PASSWORD_START\";\r\nexport const RESET_PASSWORD_SUCCESS = \"RESET_PASSWORD_SUCCESS\";\r\nexport const RESET_PASSWORD_FAILURE = \"RESET_PASSWORD_FAILURE\";\r\n\r\nexport const CONFIRM_EMAIL_START = \"CONFIRM_EMAIL_START\";\r\nexport const CONFIRM_EMAIL_SUCCESS = \"CONFIRM_EMAIL_SUCCESS\";\r\nexport const CONFIRM_EMAIL_FAILURE = \"CONFIRM_EMAIL_FAILURE\";\r\n\r\nexport const GET_TIMEOUT_SETTINGS_START = \"GET_TIMEOUT_SETTINGS_START\";\r\nexport const GET_TIMEOUT_SETTINGS_SUCCESS = \"GET_TIMEOUT_SETTINGS_SUCCESS\";\r\nexport const GET_TIMEOUT_SETTINGS_FAILURE = \"GET_TIMEOUT_SETTINGS_FAILURE\";\r\n\r\nexport const WELCOME_COMPLETE = \"WELCOME_COMPLETE\";\r\n\r\n\r\nexport const LOG_INFO_START = \"LOG_INFO_START\";\r\nexport const LOG_DEBUG_START = \"LOG_DEBUG_START\";\r\nexport const LOG_WARNING_START = \"LOG_WARNING_START\";\r\nexport const LOG_ERROR_START = \"LOG_ERROR_START\";\r\nexport const FEATURE_FLAG_SUCCESS = \"FEATURE_FLAG_SUCCESS\";","export const getApplicationStatus = (payload) => {\r\n return {status:\"Pending\"}\r\n}\r\n\r\nexport const getMessages = (payload) => {\r\n return { messages: [\"message1\", \"message2\"] };\r\n}","import { call, put, select, takeLatest } from 'redux-saga/effects';\r\nimport * as types from '../constants/actionTypes';\r\nimport * as dashboardApis from '../apis/dashboardApis';\r\n\r\nfunction* dashboardSagas() {\r\n yield takeLatest(types.DASHBOARD_GET_APPLICATION_STATUS, getApplicationStatus);\r\n yield takeLatest(types.DASHBOARD_GET_MESSAGES, getMessages);\r\n}\r\n\r\nfunction* getApplicationStatus(params) {\r\n try {\r\n const userInfo = yield select((state) => state.user.userInfo);\r\n const applicationStatus = yield call(dashboardApis.getApplicationStatus, userInfo);\r\n yield put({ type: types.DASHBOARD_GET_APPLICATION_STATUS_SUCCESS, applicationStatus });\r\n } catch (e) {\r\n yield put({ type: types.DASHBOARD_GET_APPLICATION_STATUS_FAILURE, message: e.message });\r\n }\r\n}\r\n\r\nfunction* getMessages(params) {\r\n try {\r\n const userInfo = yield select((state) => state.user.userInfo);\r\n const messages = yield call(dashboardApis.getMessages, userInfo);\r\n const messageCount = messages.messages.length;\r\n yield put({ type: types.DASHBOARD_GET_MESSAGES_SUCCESS, messageCount });\r\n } catch (e) {\r\n yield put({ type: types.DASHBOARD_GET_MESSAGES_FAILURE, message: e.message });\r\n }\r\n}\r\n\r\nexport default dashboardSagas;","export const getApiUrl = async () => {\r\n const apiExtension = `api/AppSettings`;\r\n const response = await fetch(apiExtension, {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json'\r\n }\r\n });\r\n const url = await response.json();\r\n return (url);\r\n};\r\n\r\n\r\nexport const getTimoutSettings = async () => {\r\n const apiExtension = `api/AppSettings/getTimeoutConfig`;\r\n const response = await fetch(apiExtension, {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json'\r\n }\r\n });\r\n const timeout = await response.json();\r\n return (timeout);\r\n};\r\n\r\n","import * as appSettingsApi from \"../apis/appSettingsApi\";\r\n\r\nconst npiExtension = \"ApplicationUser/Npi/\";\r\nconst taxIdExtension = \"ApplicationUser/TaxId/\";\r\n\r\nexport const signUp = async (npi, taxId, firstName, lastName, email, password, providerType, phoneNumber) => {\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const apiExtension = apiUrl + 'ApplicationUser/create';\r\n return await fetch(apiExtension, {\r\n method: 'PUT',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n npi: npi,\r\n taxId: taxId,\r\n firstName: firstName,\r\n lastName: lastName,\r\n email: email,\r\n password: password,\r\n providerType: providerType,\r\n phoneNumber: phoneNumber\r\n }),\r\n }).then(response => {\r\n if (response && response.status && response.status >= 200 && response.status < 300) {\r\n return Promise.resolve(response.json());\r\n } else {\r\n if (response && response.status === 400) {\r\n return response.text().then(Promise.reject.bind(Promise));\r\n }\r\n return Promise.reject(response);\r\n }\r\n }).catch(err => {\r\n return Promise.reject(err);\r\n });\r\n};\r\n\r\nexport const signIn = async (username, password) => {\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const apiExtension = apiUrl + 'ApplicationUser/signIn';\r\n return await fetch(apiExtension, {\r\n method: 'POST',\r\n referrerPolicy: 'origin',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n username: username,\r\n password: password\r\n }),\r\n }).then(response => {\r\n if (response && response.status && response.status >= 200 && response.status < 300) {\r\n return Promise.resolve(response.json());\r\n } else {\r\n return Promise.resolve(response.text());\r\n }\r\n }).catch(err => {\r\n return Promise.reject(err);\r\n });\r\n};\r\n\r\nexport const getUserByEmail = async (email) => {\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const apiExtension = apiUrl + `ApplicationUser/?email=${email}`;\r\n return await fetch(apiExtension, {\r\n method: 'GET'\r\n }).then(response => {\r\n if (response && response.status && response.status === 200) {\r\n return Promise.resolve(response.json());\r\n } else {\r\n return Promise.resolve(null);\r\n }\r\n }).catch(err => {\r\n console.log(err); // Todo: Include in Client logging \r\n return Promise.reject(err);\r\n });\r\n};\r\n\r\nexport const getTaxId = async (taxId, userInfo) => {\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const url = apiUrl + taxIdExtension + taxId;\r\n const token = userInfo?.access_token;\r\n\r\n return await fetch(url, {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': 'Bearer ' + token\r\n }\r\n }).then(response => {\r\n if (response && response.status && response.status === 200) {\r\n return Promise.resolve(response.toString());\r\n }\r\n else if (response && response.status && response.status === 404) {\r\n return Promise.resolve('');\r\n }\r\n else {\r\n return Promise.reject('Internal Server Error');\r\n }\r\n }).catch(err => {\r\n console.log(err); // Todo: Include in Client logging \r\n return Promise.reject(err);\r\n });\r\n}\r\n\r\nexport const getNpi = async (npi) => {\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const url = apiUrl + npiExtension + npi;\r\n return await fetch(url, {\r\n method: 'GET'\r\n }).then(response => {\r\n if (response && response.status && response.status === 200) {\r\n return Promise.resolve(response.json());\r\n } else {\r\n return Promise.resolve(null);\r\n }\r\n }).catch(err => {\r\n console.log(err); // Todo: Include in Client logging \r\n return Promise.reject(err);\r\n });\r\n}\r\n\r\nexport const logOut = async () => {\r\n return true;\r\n}\r\n\r\nexport const forgotPassword = async (email) => {\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const apiExtension = apiUrl + 'ApplicationUser/forgotPassword';\r\n return await fetch(apiExtension, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n email: email\r\n }),\r\n }).then(response => {\r\n if (response && response.status && response.status >= 200 && response.status < 300) {\r\n return Promise.resolve(response.json());\r\n } else {\r\n if (response && response.status === 400) {\r\n return response.text().then(Promise.reject.bind(Promise));\r\n }\r\n return Promise.reject(response);\r\n }\r\n }).catch(err => {\r\n return Promise.reject(err);\r\n });\r\n};\r\n\r\nexport const resetPassword = async (password, email, token) => {\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const apiExtension = apiUrl + 'ApplicationUser/resetPassword';\r\n return await fetch(apiExtension, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n password: password,\r\n email: email,\r\n token: token\r\n }),\r\n }).then(response => {\r\n if (response && response.status && response.status >= 200 && response.status < 300) {\r\n return Promise.resolve(response.json());\r\n } else {\r\n if (response && response.status === 400) {\r\n return response.text().then(Promise.reject.bind(Promise));\r\n }\r\n return Promise.reject(response);\r\n }\r\n }).catch(err => {\r\n return Promise.reject(err);\r\n });\r\n};\r\n\r\nexport const confirmEmail = async (email, token) => {\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const apiExtension = apiUrl + 'ApplicationUser/confirmEmail';\r\n return await fetch(apiExtension, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n email: email,\r\n token: token\r\n }),\r\n }).then(response => {\r\n if (response && response.status && response.status >= 200 && response.status < 300) {\r\n return Promise.resolve(response.json());\r\n } else {\r\n if (response && response.status === 400) {\r\n return response.text().then(Promise.reject.bind(Promise));\r\n }\r\n return Promise.reject(response.text());\r\n }\r\n }).catch(err => {\r\n return Promise.reject(err);\r\n });\r\n};\r\n\r\nexport const resendEmail = async (email) => {\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const apiExtension = apiUrl + 'ApplicationUser/resendConfirmationEmail';\r\n return await fetch(apiExtension, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n email: email\r\n }),\r\n }).then(response => {\r\n if (response && response.status && response.status >= 200 && response.status < 300) {\r\n return Promise.resolve(response.json());\r\n } else {\r\n if (response && response.status === 400) {\r\n return response.text().then(Promise.reject.bind(Promise));\r\n }\r\n return Promise.reject(response.text());\r\n }\r\n }).catch(err => {\r\n return Promise.reject(err);\r\n });\r\n};","import * as applicationUserApis from \"../apis/applicationUserApis\";\r\nimport * as appSettingsApis from \"../apis/appSettingsApi\";\r\nimport * as types from \"../constants/actionTypes\";\r\nimport { call, put, takeLatest, select } from \"redux-saga/effects\";\r\n\r\nfunction* userSagas() {\r\n yield takeLatest(types.SIGNUP_UPDATE_USER_INFO_START, updateUserInfo);\r\n yield takeLatest(types.SIGNUP_UPDATE_USER_INFO_INITIALIZE_START, updateUserInfoInitialize);\r\n yield takeLatest(types.SIGNUP_GET_USER_BY_EMAIL_START, getUserByEmail);\r\n yield takeLatest(types.SIGNUP_GET_TAX_ID_START, getTaxId);\r\n yield takeLatest(types.SIGNUP_GET_NPI_START, getNpi);\r\n yield takeLatest(types.SIGNUP_RESEND_EMAIL_START, resendEmail);\r\n yield takeLatest(types.SIGNIN_GET_USER_INFO_START, getUserInfo);\r\n yield takeLatest(types.LOGOUT, logOut);\r\n yield takeLatest(types.FORGOT_PASSWORD_START, forgotPassword);\r\n yield takeLatest(types.RESET_PASSWORD_START, resetPassword);\r\n yield takeLatest(types.CONFIRM_EMAIL_START, confirmEmail);\r\n yield takeLatest(types.GET_TIMEOUT_SETTINGS_START, getTimoutSettings);\r\n}\r\n\r\nfunction* getUserInfo(params) {\r\n try {\r\n const userInfo = yield call(applicationUserApis.signIn, params.username, params.password);\r\n if (typeof userInfo !== \"string\") {\r\n yield put({ type: types.SIGNIN_GET_USER_INFO_SUCCESS, userInfo });\r\n }\r\n else {\r\n yield put({ type: types.SIGNIN_GET_USER_INFO_FAILURE, error: userInfo });\r\n }\r\n \r\n } catch (e) {\r\n yield put({ type: types.SIGNIN_GET_USER_INFO_FAILURE, error: e });\r\n }\r\n}\r\n\r\nfunction* updateUserInfo(params) {\r\n try {\r\n const result = yield call(applicationUserApis.signUp, params.npi, params.taxId, params.firstName, params.lastName, params.email, params.password, params.providerType, params.phoneNumber);\r\n yield put({ type: types.SIGNUP_UPDATE_USER_INFO_SUCCESS, accountCreated: result });\r\n } catch (e) {\r\n yield put({ type: types.SIGNUP_UPDATE_USER_INFO_FAILURE, error: e });\r\n }\r\n}\r\n\r\nfunction* updateUserInfoInitialize() {\r\n yield put({ type: types.SIGNUP_UPDATE_USER_INFO_INITIALIZE_SUCESS });\r\n}\r\n\r\nfunction* getUserByEmail(params) {\r\n try {\r\n const userInfo = yield call(applicationUserApis.getUserByEmail, params.email);\r\n yield put({ type: types.SIGNUP_GET_USER_BY_EMAIL_SUCCESS, userExists: userInfo ? true : false });\r\n } catch (e) {\r\n yield put({ type: types.SIGNUP_GET_USER_BY_EMAIL_FAILURE, error: e });\r\n }\r\n}\r\n\r\nfunction* getTaxId(params) {\r\n try {\r\n const userInfo = yield select((state) => state.user?.userInfo);\r\n const taxId = yield call(applicationUserApis.getTaxId, params.taxId, userInfo);\r\n yield put({ type: types.SIGNUP_GET_TAX_ID_SUCCESS, taxIdInUse: taxId ? 'Tax Id is already contracted or associated to another application' : '' });\r\n } catch (e) {\r\n yield put({ type: types.SIGNUP_GET_TAX_ID_FAILURE, error: e });\r\n }\r\n}\r\n\r\nfunction* getNpi(params) {\r\n try {\r\n const npi = yield call(applicationUserApis.getNpi, params.npi);\r\n yield put({ type: types.SIGNUP_GET_NPI_SUCCESS, npiIsValid: npi ? '' : 'NPI could not be validated against NPPES NPI Registry.' });\r\n } catch (e) {\r\n yield put({ type: types.SIGNUP_GET_NPI_FAILURE, error: e });\r\n }\r\n}\r\n\r\nfunction* resendEmail(params) {\r\n try {\r\n yield call(applicationUserApis.resendEmail, params.email);\r\n yield put({ type: types.SIGNUP_RESEND_EMAIL_SUCCESS});\r\n } catch (e) {\r\n yield put({ type: types.SIGNUP_RESEND_EMAIL_FAILURE, error: e });\r\n }\r\n}\r\n\r\nfunction* logOut(action) {\r\n try {\r\n const success = yield call(applicationUserApis.logOut);\r\n yield put({ type: types.LOGOUT_SUCCESS, success: success });\r\n } catch (e) {\r\n yield put({ type: types.LOGOUT_FAILURE, message: e.message });\r\n }\r\n}\r\n\r\nfunction* forgotPassword(params) {\r\n try {\r\n const user = yield call(applicationUserApis.forgotPassword, params.email);\r\n yield put({ type: types.FORGOT_PASSWORD_SUCCESS, emailConfirmation: user ? true : false });\r\n } catch (e) {\r\n yield put({ type: types.FORGOT_PASSWORD_FAILURE, error: e });\r\n }\r\n}\r\n\r\nfunction* resetPassword(params) {\r\n try { \r\n const resetSuccess = yield call(applicationUserApis.resetPassword, params.password, params.email, params.token);\r\n yield put({ type: types.RESET_PASSWORD_SUCCESS, resetSuccess: resetSuccess });\r\n } catch (e) {\r\n yield put({ type: types.RESET_PASSWORD_FAILURE, error: e });\r\n }\r\n}\r\n\r\nfunction* confirmEmail(params) {\r\n\r\n try {\r\n const result = yield call(applicationUserApis.confirmEmail, params.email, params.token);\r\n yield put({ type: types.CONFIRM_EMAIL_SUCCESS, emailVerified: result });\r\n } catch (e) {\r\n yield put({ type: types.CONFIRM_EMAIL_FAILURE, error: e });\r\n }\r\n}\r\n\r\nfunction* getTimoutSettings(params) {\r\n try {\r\n const result = yield call(appSettingsApis.getTimoutSettings);\r\n yield put({ type: types.GET_TIMEOUT_SETTINGS_SUCCESS, timeoutSettings: result });\r\n } catch (e) {\r\n yield put({ type: types.GET_TIMEOUT_SETTINGS_FAILURE, error: e });\r\n }\r\n}\r\nexport default userSagas;","import * as appSettingsApi from \"../apis/appSettingsApi\";\r\nconst professionalApplicationExtension = \"ProfessionalApplication/\";\r\nconst referenceListExtension = \"ReferenceLists/\";\r\n\r\nexport const getApplications = async (userInfo) => {\r\n const username = userInfo.userName;\r\n const token = userInfo.access_token;\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const url = apiUrl + professionalApplicationExtension + username;\r\n return await fetch(url, {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': 'Bearer ' + token\r\n },\r\n }).then(response => {\r\n if (response && response.status && response.status === 200) {\r\n return Promise.resolve(response.json());\r\n } else {\r\n return Promise.resolve(null);\r\n }\r\n }).catch(err => {\r\n return Promise.reject(err);\r\n });\r\n}\r\n\r\nexport const getApplicationDetails = async (appId, userInfo) => {\r\n const token = userInfo.access_token;\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const url = apiUrl + professionalApplicationExtension + \"getDetails/\" + appId;\r\n return await fetch(url, {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': 'Bearer ' + token\r\n },\r\n }).then(response => {\r\n if (response && response.status && response.status === 200) {\r\n return Promise.resolve(response.json());\r\n } else {\r\n return Promise.resolve(null);\r\n }\r\n }).catch(err => {\r\n return Promise.reject(err);\r\n });\r\n}\r\n\r\nexport const createApplication = async (application, userInfo) => {\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const url = apiUrl + professionalApplicationExtension;\r\n const token = userInfo.access_token;\r\n return await fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + token\r\n },\r\n body: JSON.stringify(application),\r\n }).then(response => {\r\n if (response && response.status && response.status === 200) {\r\n return Promise.resolve(response.json());\r\n } else {\r\n if (response && response.status === 400) {\r\n let result = response.json()\r\n return Promise.reject(result);\r\n }\r\n return Promise.reject(response);\r\n }\r\n }).catch(err => {\r\n return Promise.reject(err);\r\n });\r\n}\r\n\r\nexport const updateApplication = async (application, submit, userInfo) => {\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const url = apiUrl + professionalApplicationExtension + '?submit=' + submit;\r\n const token = userInfo.access_token;\r\n return await fetch(url, {\r\n method: 'PUT',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + token\r\n },\r\n body: JSON.stringify(application),\r\n }).then(response => {\r\n if (response && response.status && response.status === 200) {\r\n return Promise.resolve(response.json());\r\n } else {\r\n if (response && response.status === 400) {\r\n let result = response.json()\r\n return Promise.reject(result);\r\n }\r\n return Promise.reject(response);\r\n }\r\n }).catch(err => {\r\n return Promise.reject(err);\r\n });\r\n}\r\n\r\nexport const deleteApplication = async (id, userInfo) => {\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const url = apiUrl + professionalApplicationExtension + '?id=' + id;\r\n const token = userInfo.access_token;\r\n return await fetch(url, {\r\n method: 'DELETE',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + token\r\n },\r\n }).then(response => {\r\n if (response && response.status && response.status === 200) {\r\n return Promise.resolve(response.json());\r\n } else {\r\n return Promise.resolve(null);\r\n }\r\n }).catch(err => {\r\n return Promise.reject(err);\r\n });\r\n}\r\n\r\nexport const getReferenceList = async (listName, userInfo) => {\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const url = apiUrl + referenceListExtension + listName;\r\n const token = userInfo.access_token;\r\n return await fetch(url, {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': 'Bearer ' + token\r\n },\r\n }).then(response => {\r\n if (response && response.status && response.status === 200) {\r\n return Promise.resolve(response.json());\r\n } else {\r\n return Promise.resolve(null);\r\n }\r\n }).catch(err => {\r\n return Promise.reject(err);\r\n });\r\n};","export const ListType = {\r\n TaxIdList : \"TaxIdList\",\r\n CountyList: \"CountyList\",\r\n CountyLookup: \"CountyLookup\",\r\n LanguageList : \"LanguageList\",\r\n StateList : \"StateList\",\r\n TaxonomyList : \"TaxonomyList\",\r\n AccreditationTypeList : \"AccreditationTypeList\",\r\n DegreeAndCertificationList : \"DegreeAndCertificationList\",\r\n AddressTypeList : \"AddressTypeList\",\r\n ContactTypeList : \"ContactTypeList\",\r\n MalpracticeInsuranceTypeList: \"MalpracticeInsuranceTypeList\",\r\n MalpracticeInsuranceCarrierList: \"MalpracticeInsuranceCarrierList\",\r\n MalpracticeInsuranceAmountsList: \"MalpracticeInsuranceAmountsList\",\r\n ProviderFacilityAffiliationList : \"ProviderFacilityAffiliationList\",\r\n SpecialtyList : \"SpecialtyList\",\r\n PracticeLimitationList : \"PracticeLimitationList\",\r\n MentalHealthServiceTypeList : \"MentalHealthServiceTypeList\",\r\n ApplicationStatusList: \"ApplicationStatusList\",\r\n};\r\n\r\nObject.freeze(ListType);","import { call, put, takeLatest, select, takeEvery } from 'redux-saga/effects';\r\nimport * as types from '../constants/actionTypes';\r\nimport * as professionalApis from '../apis/professionalApis';\r\nimport * as lists from '../constants/listType';\r\n\r\nfunction* professionalApplicationSagas() {\r\n yield takeLatest(types.GET_PROFESSIONAL_APPLICATIONS_START, getApplications);\r\n yield takeLatest(types.CREATE_PROFESSIONAL_APPLICATION_START, createApplication);\r\n yield takeLatest(types.UPDATE_PROFESSIONAL_APPLICATION_START, updateApplication);\r\n yield takeLatest(types.DELETE_PROFESSIONAL_APPLICATION_START, deleteApplication);\r\n yield takeEvery(types.APPLICATION_GET_REFERENCE_LIST_START, getReferenceList);\r\n yield takeEvery(types.GET_APPLICATION_DETAILS_START, getApplicationDetails);\r\n\r\n}\r\n\r\nfunction* getApplications(params) {\r\n try {\r\n const userInfo = yield select((state) => state.user.userInfo);\r\n const application = yield call(professionalApis.getApplications, userInfo);\r\n yield put({ type: types.GET_PROFESSIONAL_APPLICATIONS_SUCCESS, application });\r\n } catch (e) {\r\n yield put({ type: types.GET_PROFESSIONAL_APPLICATIONS_FAILURE, error: e });\r\n }\r\n}\r\n\r\nfunction* getApplicationDetails(params) {\r\n try {\r\n const userInfo = yield select((state) => state.user.userInfo);\r\n const applicationDetails = yield call(professionalApis.getApplicationDetails, params.appId, userInfo);\r\n yield put({ type: types.GET_APPLICATION_DETAILS_SUCCESS, applicationDetails });\r\n } catch (e) {\r\n yield put({ type: types.GET_APPLICATION_DETAILS_FAILURE, error: e });\r\n }\r\n}\r\n\r\nfunction* createApplication(params) {\r\n try {\r\n const userInfo = yield select((state) => state.user.userInfo);\r\n const application = yield call(professionalApis.createApplication, params.application, userInfo);\r\n if (params.multipleApplicationsPerUser) {\r\n yield put({ type: types.CREATE_PROFESSIONAL_APPLICATION_SUCCESS, application });\r\n }\r\n else {\r\n yield put({ type: types.CREATE_PROFESSIONAL_APPLICATION_FLAGOFF_SUCCESS, application });\r\n }\r\n } catch (response) {\r\n let result;\r\n yield response.then((r) => {\r\n if (r.errors) result = r.errors;\r\n else result = r;\r\n });\r\n yield put({ type: types.CREATE_PROFESSIONAL_APPLICATION_FAILURE, error: JSON.stringify(result) });\r\n }\r\n}\r\n\r\nfunction* updateApplication(params) {\r\n try {\r\n const userInfo = yield select((state) => state.user.userInfo);\r\n const application = yield call(professionalApis.updateApplication, params.application, params.submit, userInfo);\r\n yield put({ type: types.UPDATE_PROFESSIONAL_APPLICATION_SUCCESS, application });\r\n } catch (e) {\r\n yield put({ type: types.UPDATE_PROFESSIONAL_APPLICATION_FAILURE, error: e });\r\n }\r\n}\r\n\r\nfunction* deleteApplication(params) {\r\n try {\r\n const userInfo = yield select((state) => state.user.userInfo);\r\n var id = params.id;\r\n const success = yield call(professionalApis.deleteApplication, id, userInfo);\r\n if (success) {\r\n yield put({ type: types.DELETE_PROFESSIONAL_APPLICATION_SUCCESS, id });\r\n } \r\n } catch (e) {\r\n yield put({ type: types.DELETE_PROFESSIONAL_APPLICATION_FAILURE, error: e });\r\n }\r\n}\r\n\r\nfunction* getReferenceList(params) {\r\n try {\r\n const userInfo = yield select((state) => state.user.userInfo);\r\n\r\n const list = yield call(professionalApis.getReferenceList, params.listname, userInfo);\r\n if (params.listname == \"CountyLookup\") {\r\n yield put({ type: types.APPLICATION_GET_COUNTY_REFERENCE_LIST_SUCCESS, list });\r\n return;\r\n }\r\n const isActive = (item) => {\r\n return item.active !== false;\r\n }\r\n let activeList = { ...list, items: list.items.filter(isActive) };\r\n\r\n switch (list.id) {\r\n case lists.ListType.TaxIdList:\r\n yield put({ type: types.APPLICATION_GET_TAXID_REFERENCE_LIST_SUCCESS, list });\r\n break;\r\n case lists.ListType.CountyList:\r\n yield put({ type: types.APPLICATION_GET_COUNTY_REFERENCE_LIST_SUCCESS, list });\r\n break;\r\n case lists.ListType.LanguageList:\r\n yield put({ type: types.APPLICATION_GET_LANGUAGE_REFERENCE_LIST_SUCCESS, list: activeList });\r\n break;\r\n case lists.ListType.StateList:\r\n yield put({ type: types.APPLICATION_GET_STATE_REFERENCE_LIST_SUCCESS, list: activeList });\r\n break;\r\n case lists.ListType.TaxonomyList:\r\n yield put({ type: types.APPLICATION_GET_TAXONOMY_REFERENCE_LIST_SUCCESS, list: activeList });\r\n break;\r\n case lists.ListType.AccreditationTypeList:\r\n yield put({ type: types.APPLICATION_GET_ACCREDITATIONTYPE_REFERENCE_LIST_SUCCESS, list: activeList });\r\n break;\r\n case lists.ListType.DegreeAndCertificationList:\r\n yield put({ type: types.APPLICATION_GET_DEGREEANDCERTIFICATION_REFERENCE_LIST_SUCCESS, list: activeList });\r\n break;\r\n case lists.ListType.AddressTypeList:\r\n yield put({ type: types.APPLICATION_GET_ADDRESSTYPE_REFERENCE_LIST_SUCCESS, list: activeList });\r\n break;\r\n case lists.ListType.ContactTypeList:\r\n yield put({ type: types.APPLICATION_GET_CONTACTTYPE_REFERENCE_LIST_SUCCESS, list: activeList });\r\n break;\r\n case lists.ListType.MalpracticeInsuranceTypeList:\r\n yield put({ type: types.APPLICATION_GET_MALPRACTICEINSURANCETYPE_REFERENCE_LIST_SUCCESS, list: activeList });\r\n break;\r\n case lists.ListType.MalpracticeInsuranceCarrierList:\r\n yield put({ type: types.APPLICATION_GET_MALPRACTICEINSURANCECARRIER_REFERENCE_LIST_SUCCESS, list: activeList });\r\n break;\r\n case lists.ListType.MalpracticeInsuranceAmountsList:\r\n yield put({ type: types.APPLICATION_GET_MALPRACTICEINSURANCEAMOUNTS_REFERENCE_LIST_SUCCESS, list: activeList });\r\n break;\r\n case lists.ListType.ProviderFacilityAffiliationList:\r\n yield put({ type: types.APPLICATION_GET_PROVIDERFACILITYAFFILIATION_REFERENCE_LIST_SUCCESS, list: activeList });\r\n break;\r\n case lists.ListType.SpecialtyList:\r\n yield put({ type: types.APPLICATION_GET_SPECIALTY_REFERENCE_LIST_SUCCESS, list: activeList });\r\n break;\r\n case lists.ListType.PracticeLimitationList:\r\n yield put({ type: types.APPLICATION_GET_PRACTICELIMITATION_REFERENCE_LIST_SUCCESS, list: activeList });\r\n break;\r\n case lists.ListType.MentalHealthServiceTypeList:\r\n yield put({ type: types.APPLICATION_GET_MENTALHEALTH_REFERENCE_LIST_SUCCESS, list: activeList });\r\n break;\r\n\r\n }\r\n } catch (e) {\r\n yield put({ type: types.APPLICATION_GET_REFERENCE_LIST_FAILURE, error: e });\r\n }\r\n}\r\n\r\nexport default professionalApplicationSagas;","import * as appSettingsApi from \"../apis/appSettingsApi\";\r\n\r\nconst documentExtension = \"Document/\";\r\n\r\nexport const getDocument = async (key, fileName, userInfo) => {\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const url = apiUrl + documentExtension + key + \"/\" + fileName;\r\n const token = userInfo.access_token;\r\n return await fetch(url, {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': 'Bearer ' + token\r\n },\r\n }).then(response => {\r\n if (response && response.status && response.status >= 200 && response.status < 300) {\r\n return Promise.resolve(response.blob());\r\n } else if (response && response.status === 400) {\r\n return response.text().then(Promise.reject.bind(Promise));\r\n } else {\r\n return Promise.reject('Error occured during File download.');\r\n }\r\n }).catch(err => {\r\n console.log(err) // eventually to be handling in App logging\r\n return Promise.reject(err);\r\n });\r\n}\r\n\r\nexport const uploadDocument = async (file, userInfo) => {\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const url = apiUrl + documentExtension;\r\n const token = userInfo.access_token;\r\n return await fetch(url, {\r\n method: 'POST',\r\n body: file,\r\n headers: {\r\n 'Authorization': 'Bearer ' + token\r\n }\r\n }).then(response => {\r\n let r = response.text();\r\n if (response && response.status && response.status === 200) {\r\n return Promise.resolve(r);\r\n } else if (response && response.status === 400) {\r\n return r.then(Promise.reject.bind(Promise));\r\n } else {\r\n return Promise.reject('Error occured during File upload.');\r\n }\r\n }).catch(err => {\r\n return Promise.reject(err);\r\n });\r\n}\r\n","import { call, put, select, takeLatest } from 'redux-saga/effects';\r\nimport * as types from '../constants/actionTypes';\r\nimport * as documentApis from '../apis/documentApis';\r\n\r\nfunction* documentSagas() {\r\n yield takeLatest(types.FILE_UPLOAD_START, uploadDocument);\r\n yield takeLatest(types.FILE_DOWNLOAD_START, getDocument);\r\n}\r\n\r\nfunction* uploadDocument(params) {\r\n try {\r\n const userInfo = yield select((state) => state.user.userInfo);\r\n const result = yield call(documentApis.uploadDocument, params.file, userInfo);\r\n yield put({ type: types.FILE_UPLOAD_SUCCESS, result: JSON.parse(result), name: params.name });\r\n } catch (e) {\r\n yield put({ type: types.FILE_UPLOAD_FAILURE, error: e, name: params.name });\r\n }\r\n}\r\n\r\nfunction* getDocument(params) {\r\n try {\r\n const userInfo = yield select((state) => state.user.userInfo);\r\n const result = yield call(documentApis.getDocument, params.key, params.fileName, userInfo);\r\n yield put({ type: types.FILE_DOWNLOAD_SUCCESS, result: result });\r\n } catch (e) {\r\n yield put({ type: types.FILE_DOWNLOAD_FAILURE, error: e });\r\n }\r\n}\r\n\r\n\r\nexport default documentSagas;","import * as appSettingsApi from \"../apis/appSettingsApi\";\r\n\r\nconst clientLoggingExtension = \"ClientLogging/\";\r\n\r\nexport const logInfo = async (clientLoggingModel, userInfo) => {\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const url = apiUrl + clientLoggingExtension + \"logInfo\";\r\n const token = userInfo?.access_token; \r\n return await fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + token\r\n },\r\n body: JSON.stringify(clientLoggingModel),\r\n }).then(response => {\r\n if (response && response.status && response.status === 200) {\r\n return Promise.resolve(response.json());\r\n } else {\r\n if (response && response.status === 400) {\r\n let result = response.json()\r\n return Promise.reject(result);\r\n }\r\n return Promise.reject(response);\r\n }\r\n }).catch(err => {\r\n return Promise.reject(err);\r\n });\r\n}\r\n\r\nexport const logDebug = async (clientLoggingModel, userInfo) => {\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const url = apiUrl + clientLoggingExtension + \"logDebug\";\r\n const token = userInfo.access_token;\r\n return await fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + token\r\n },\r\n body: JSON.stringify(clientLoggingModel),\r\n }).then(response => {\r\n if (response && response.status && response.status === 200) {\r\n return Promise.resolve(response.json());\r\n } else {\r\n if (response && response.status === 400) {\r\n let result = response.json()\r\n return Promise.reject(result);\r\n }\r\n return Promise.reject(response);\r\n }\r\n }).catch(err => {\r\n return Promise.reject(err);\r\n });\r\n}\r\n\r\nexport const logWarning = async (clientLoggingModel, userInfo) => {\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const url = apiUrl + clientLoggingExtension + \"logWarning\";\r\n const token = userInfo.access_token;\r\n return await fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + token\r\n },\r\n body: JSON.stringify(clientLoggingModel),\r\n }).then(response => {\r\n if (response && response.status && response.status === 200) {\r\n return Promise.resolve(response.json());\r\n } else {\r\n if (response && response.status === 400) {\r\n let result = response.json()\r\n return Promise.reject(result);\r\n }\r\n return Promise.reject(response);\r\n }\r\n }).catch(err => {\r\n return Promise.reject(err);\r\n });\r\n}\r\n\r\nexport const logError = async (clientLoggingModel, userInfo) => {\r\n const apiUrl = await appSettingsApi.getApiUrl();\r\n const url = apiUrl + clientLoggingExtension + \"logError\";\r\n const token = userInfo.access_token;\r\n return await fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + token\r\n },\r\n body: JSON.stringify(clientLoggingModel),\r\n }).then(response => {\r\n if (response && response.status && response.status === 200) {\r\n return Promise.resolve(response.json());\r\n } else {\r\n if (response && response.status === 400) {\r\n let result = response.json()\r\n return Promise.reject(result);\r\n }\r\n return Promise.reject(response);\r\n }\r\n }).catch(err => {\r\n return Promise.reject(err);\r\n });\r\n}","import * as clientLoggingApis from \"../apis/clientLoggingApis\";\r\nimport * as types from \"../constants/actionTypes\";\r\nimport { call, takeLatest } from \"redux-saga/effects\";\r\n\r\nfunction* clientLoggingSagas() {\r\n yield takeLatest(types.LOG_INFO_START, logInfo);\r\n yield takeLatest(types.LOG_DEBUG_START, logDebug);\r\n yield takeLatest(types.LOG_WARNING_START, logWarning);\r\n yield takeLatest(types.LOG_ERROR_START, logError);\r\n}\r\n\r\nfunction* logInfo(params) {\r\n try {\r\n yield call(clientLoggingApis.logInfo, params.clientLoggingModel, params.userInfo);\r\n } catch (e) {\r\n //why log the fact that you didn't log?????\r\n }\r\n}\r\n\r\nfunction* logDebug(params) {\r\n try {\r\n yield call(clientLoggingApis.logDebug, params.clientLoggingModel, params.userInfo);\r\n } catch (e) {\r\n //why log the fact that you didn't log?????\r\n }\r\n}\r\n\r\nfunction* logWarning(params) {\r\n try {\r\n yield call(clientLoggingApis.logWarning, params.clientLoggingModel, params.userInfo);\r\n } catch (e) {\r\n //why log the fact that you didn't log?????\r\n }\r\n}\r\n\r\nfunction* logError(params) {\r\n try {\r\n yield call(clientLoggingApis.logError, params.clientLoggingModel, params.userInfo);\r\n } catch (e) {\r\n //why log the fact that you didn't log?????\r\n }\r\n}\r\n\r\nexport default clientLoggingSagas;","import \"regenerator-runtime/runtime\";\r\nimport { all, fork } from \"redux-saga/effects\";\r\nimport dashboardSaga from \"./dashboardSagas\";\r\nimport userSagas from \"./userSagas\";\r\nimport professionalApplicationSagas from \"./professionalApplicationSagas\";\r\nimport documentSagas from \"./documentSagas\";\r\nimport clientLoggingSagas from \"./clientLoggingSagas\";\r\n\r\nexport default function* startSagas() {\r\n let watchers = [\r\n fork(dashboardSaga),\r\n fork(userSagas),\r\n fork(professionalApplicationSagas),\r\n fork(documentSagas),\r\n fork(clientLoggingSagas)\r\n ];\r\n\r\n try {\r\n yield all(watchers);\r\n }\r\n catch (err) {\r\n console.error(err);\r\n }\r\n}","import * as types from '../constants/actionTypes';\r\nexport const dashboardInitialState = {\r\n messageCount: null,\r\n status: null,\r\n isFetching: true,\r\n error: \"\"\r\n};\r\n\r\nexport default function dashboardReducer(state = dashboardInitialState, action) {\r\n switch (action.type) {\r\n case types.DASHBOARD_GET_APPLICATION_STATUS:\r\n return { ...state, isFetching: true };\r\n case types.DASHBOARD_GET_APPLICATION_STATUS_SUCCESS:\r\n return { ...state, status: action.applicationStatus.status, isFetching: false };\r\n case types.DASHBOARD_GET_APPLICATION_STATUS_FAILURE:\r\n return { ...state, error: action.error, isFetching: false };\r\n\r\n case types.DASHBOARD_GET_MESSAGES:\r\n return { ...state, isFetching: true };\r\n case types.DASHBOARD_GET_MESSAGES_SUCCESS:\r\n return { ...state, messageCount: action.messageCount, isFetching: false };\r\n case types.DASHBOARD_GET_MESSAGES_FAILURE:\r\n return { ...state, error: action.error, isFetching: false };\r\n\r\n case types.LOGOUT:\r\n return dashboardInitialState;\r\n\r\n default:\r\n return { ...state };\r\n }\r\n}","import * as types from '../constants/actionTypes';\r\nexport const userInitialState = {\r\n userInfo: null,\r\n isFetching: true,\r\n error: \"\",\r\n userExists: null,\r\n taxIdInUse: '',\r\n npiIsValid: '',\r\n success: false,\r\n emailConfirmation: false,\r\n resetSuccess: false,\r\n accountCreated: false,\r\n emailVerified: false,\r\n welcomeComplete: false,\r\n resendEmailError: null,\r\n forgotPasswordError: null,\r\n featureFlags:[]\r\n};\r\n\r\nexport default function userReducer(state = userInitialState, action) {\r\n switch (action.type) {\r\n case types.SIGNUP_UPDATE_USER_INFO_START:\r\n return { ...state, isFetching: true, error: null, accountCreated: false };\r\n case types.SIGNUP_UPDATE_USER_INFO_SUCCESS:\r\n return { ...state, accountCreated: action.accountCreated, isFetching: false, resendEmailError: null};\r\n case types.SIGNUP_UPDATE_USER_INFO_FAILURE:\r\n return { ...state, isFetching: false, error: action.error };\r\n\r\n case types.SIGNUP_UPDATE_USER_INFO_INITIALIZE_SUCESS:\r\n return { ...state, isFetching: true, error: null, accountCreated: false };\r\n\r\n case types.SIGNUP_GET_USER_BY_EMAIL_START:\r\n return { ...state, isFetching: true, error: null, userExists: null };\r\n case types.SIGNUP_GET_USER_BY_EMAIL_SUCCESS:\r\n return { ...state, userExists: action.userExists, isFetching: false };\r\n case types.SIGNUP_GET_USER_BY_EMAIL_FAILURE:\r\n return { ...state, isFetching: false, error: action.error };\r\n\r\n case types.SIGNUP_GET_TAX_ID_START:\r\n return { ...state, isFetching: true, taxIdError: null, taxIdInUse: '' };\r\n case types.SIGNUP_GET_TAX_ID_SUCCESS:\r\n return { ...state, taxIdInUse: action.taxIdInUse, isFetching: false };\r\n case types.SIGNUP_GET_TAX_ID_FAILURE:\r\n return { ...state, isFetching: false, taxIdError: action.error };\r\n case types.SIGNUP_GET_TAX_ID_CANCEL:\r\n return { ...state, taxIdInUse: '', isFetching: false };\r\n\r\n case types.SIGNUP_GET_NPI_START:\r\n return { ...state, isFetching: true, error: null, npiIsValid: '' };\r\n case types.SIGNUP_GET_NPI_SUCCESS:\r\n return { ...state, npiIsValid: action.npiIsValid, isFetching: false };\r\n case types.SIGNUP_GET_NPI_FAILURE:\r\n return { ...state, isFetching: false, error: action.error };\r\n\r\n case types.SIGNUP_RESEND_EMAIL_START:\r\n return { ...state, isFetching: true, resendEmailError: null };\r\n case types.SIGNUP_RESEND_EMAIL_SUCCESS:\r\n return { ...state, isFetching: false };\r\n case types.SIGNUP_RESEND_EMAIL_FAILURE:\r\n return { ...state, isFetching: false, resendEmailError: action.error };\r\n case types.SIGNUP_RESEND_EMAIL_RESET:\r\n return { ...state, isFetching: false, resendEmailError: null };\r\n\r\n case types.SIGNIN_GET_USER_INFO_START:\r\n return { ...state, isFetching: true, error: null, ready: false};\r\n case types.SIGNIN_GET_USER_INFO_SUCCESS:\r\n return { ...state, userInfo: action.userInfo, authenticated: true, isFetching: false, ready: true};\r\n case types.SIGNIN_GET_USER_INFO_FAILURE:\r\n return { ...state, isFetching: false, error: action.error, ready: true };\r\n\r\n case types.LOGOUT:\r\n return { ...state, userInfo: null, authenticated: false, welcomeComplete: false };\r\n case types.LOGOUT_SUCCESS:\r\n return { ...state, success: action.success, isFetching: false };\r\n case types.LOGOUT_FAILURE:\r\n return { ...state, error: action.error, isFetching: false };\r\n\r\n case types.FORGOT_PASSWORD_START:\r\n return { ...state, isFetching: true, forgotPasswordError: null, emailConfirmation: false };\r\n case types.FORGOT_PASSWORD_SUCCESS:\r\n return { ...state, emailConfirmation: action.emailConfirmation, isFetching: false };\r\n case types.FORGOT_PASSWORD_FAILURE:\r\n return { ...state, forgotPasswordError: action.error, isFetching: false };\r\n\r\n case types.RESET_PASSWORD_START:\r\n return { ...state, userInfo: null, resetSuccess: false };\r\n case types.RESET_PASSWORD_SUCCESS:\r\n return { ...state, resetSuccess: action.resetSuccess, isFetching: false };\r\n case types.RESET_PASSWORD_FAILURE:\r\n return { ...state, error: action.error, isFetching: false };\r\n\r\n case types.CONFIRM_EMAIL_START:\r\n return { ...state, userInfo: null, emailVerified: false };\r\n case types.CONFIRM_EMAIL_SUCCESS:\r\n return { ...state, emailVerified: action.emailVerified, isFetching: false };\r\n case types.CONFIRM_EMAIL_FAILURE:\r\n return { ...state, error: action.error, isFetching: false };\r\n\r\n case types.GET_TIMEOUT_SETTINGS_START:\r\n return { ...state, timeoutSettings: null};\r\n case types.GET_TIMEOUT_SETTINGS_SUCCESS:\r\n return { ...state, timeoutSettings: action.timeoutSettings, isFetching: false };\r\n case types.GET_TIMEOUT_SETTINGS_FAILURE:\r\n return { ...state, error: action.error, isFetching: false };\r\n\r\n case types.WELCOME_COMPLETE:\r\n return { ...state, welcomeComplete: true };\r\n\r\n case types.FEATURE_FLAG_SUCCESS: \r\n return { ...state, featureFlags: { ...state.featureFlags, [action.key]: action.value } };\r\n default:\r\n return { ...state };\r\n }\r\n}","\r\nexport const Contact = {\r\n contactType: null,\r\n name: null,\r\n email: null,\r\n phone: null,\r\n fax: null,\r\n websiteAddress: null\r\n}\r\nexport const HoursOfOperation = {\r\n Day: null,\r\n StartTime: null,\r\n EndTime: null\r\n}\r\n\r\nexport const baseHoursOfOperation = [{ day: \"Monday\", startTime: \"\", endTime: \"\" }];\r\n\r\nexport const InitPracticeLocation = {\r\n practiceLocationId: \"\",\r\n city: \"\",\r\n county: \"\",\r\n fax: \"\",\r\n medicaidNumber: \"\",\r\n name: \"\",\r\n npi: \"\",\r\n phone: \"\",\r\n state: \"\",\r\n streetLine1: \"\",\r\n streetLine2: \"\",\r\n type: \"\",\r\n zipCode: \"\",\r\n zipPlus4: \"\"\r\n}\r\n\r\n\r\nexport const ProviderFacilityAffiliation = {\r\n name: null,\r\n active: null\r\n}\r\n\r\nexport const NonCaqhAttachments = {\r\n DeaRegistration: null,\r\n CredentialingApplication: null,\r\n CurriculumVitae: null,\r\n IrsW9: null\r\n}\r\nexport const Practice = {\r\n LegalName: null,\r\n DoingBusinessAs: null,\r\n GroupNpi: null,\r\n GroupSpecialty: null, //name\r\n TaxId: null,\r\n TPI: null,\r\n MedicareNumber: null,\r\n NumberOfProviders: null,\r\n HoursOfOperation: Array(HoursOfOperation),\r\n PracticeLimitations: null,\r\n}\r\n\r\nexport const Address = {\r\n name: null,\r\n streetLine1: null,\r\n streetLine2: null,\r\n city: null,\r\n county: null,\r\n zipCode: null,\r\n zipPlus4: null,\r\n state: null, \r\n type: null,\r\n fax: null,\r\n phone: null,\r\n npi: null,\r\n medicaidNumber: null\r\n}\r\n\r\nexport const SupervisingPhysician = {\r\n midlevelProtocolsAvailableOnRequest: null,\r\n name: null,\r\n npi: null,\r\n specialty: null,\r\n isPhysicianContracted: null,\r\n}\r\n\r\nexport const MalpracticeInsuranceCarrier = {\r\n name: null,\r\n code: null,\r\n Active: null,\r\n}\r\n\r\nexport const MalpracticeInsuranceType = {\r\n name: null,\r\n code: null,\r\n Active: null,\r\n}\r\n\r\nexport const malpracticeInsurance = {\r\n carrier: null,\r\n type: MalpracticeInsuranceType,\r\n malpracticeEffectiveDate: null,\r\n malpracticeExpirationDate: null,\r\n amounts: null,\r\n malpracticePolicy: null\r\n}\r\n\r\nexport const Provider = {\r\n providerGUID: null,\r\n firstName: null,\r\n middleInitial: null,\r\n lastName: null,\r\n suffix: null,\r\n npi: null,\r\n ssn: null,\r\n medicaidId: null,\r\n medicareId: null,\r\n licenseNumber: null,\r\n deaNumber: null,\r\n titleOrDegree: null,\r\n languages: Array(),\r\n birthDate: null,\r\n gender:null,\r\n hasAdmittingPrivileges: null,\r\n hospitalAffiliations: Array(ProviderFacilityAffiliation),\r\n caqhProviderId: null,\r\n nonCaqhAttachments: NonCaqhAttachments,\r\n primaryLocation: null,\r\n additionalLocations: Array(),\r\n primarySupervisingPhysician: null,\r\n malpracticeInsurance: malpracticeInsurance,\r\n isPcp: null,\r\n primaryTaxonomy: null,\r\n secondaryTaxonomy: null,\r\n providerPrimarySpecialty: null,\r\n providerSecondarySpecialty: null,\r\n primarySpecialtyBoardCertificate: null,\r\n secondarySpecialtyBoardCertificate: null,\r\n isHospitalBased: null,\r\n boardCertification: null,\r\n currentRadiologyCertificate: null,\r\n currentStateLicense: null\r\n}\r\nexport const ProfessionalApplication = {\r\n id: null,\r\n username: null,\r\n providerType: null,\r\n applicationDate: null,\r\n createdDate: null,\r\n updatedDate: null,\r\n legalName: null,\r\n applicationStatus: null,\r\n PortalStatus: null,\r\n providerDefinition: null,\r\n percentComplete: 0,\r\n doingBusinessAsName: null,\r\n groupNpi: null,\r\n groupSpecialty: null,\r\n HoursOfOperation: baseHoursOfOperation,\r\n medicareNumber: null,\r\n practiceLimitations: null,\r\n providers: [],\r\n practiceLocations: [],\r\n practiceContacts: [],\r\n providerCount: null\r\n}","import * as types from '../constants/actionTypes';\r\nimport { ProfessionalApplication } from '../models/ProfessionalApplication';\r\n\r\nexport const applicationInitialState = {\r\n taxIdList: null,\r\n countyList: null,\r\n languageList: null,\r\n StateList: null,\r\n taxonomyList: null,\r\n accreditationTypeList: null,\r\n degreeAndCertificationList: null,\r\n addressTypeList: null,\r\n contactTypeList: null,\r\n malpracticeInsuranceTypeList: null,\r\n malpracticeInsuranceCarrierList: null,\r\n malpracticeInsuranceAmountsList: null,\r\n providerFacilityAffiliationList: null,\r\n specialtyList: null,\r\n practiceLimitationList: null,\r\n mentalHealthServiceTypeList: null,\r\n applications: null,\r\n applicationBeingUpdated: null,\r\n isFetching: true,\r\n isAppDataFetching: true,\r\n countyLookup: new Map(),\r\n error: \"\",\r\n applicationApiCalledSuccess: false,\r\n applicationDetails: null,\r\n};\r\n\r\nexport default function professionalApplicationReducer(state = applicationInitialState, action) {\r\n switch (action.type) {\r\n case types.LOGOUT:\r\n return applicationInitialState;\r\n\r\n case types.REFRESH_APPLICATION_API_CALL_FLAG:\r\n return { ...state, applicationApiCalledSuccess: false };\r\n\r\n case types.INITIALIZE_PROFESSIONAL_APPLICATION:\r\n let newArray = [action.application].concat(state.applications);\r\n return { ...state, applications: newArray };\r\n case types.CLEAN_PROFESSIONAL_APPLICATIONS:\r\n let cleanArray = state.applications.filter(app => { return app.id });\r\n return { ...state, applications: cleanArray };\r\n case types.STORE_APPLICATION:\r\n return { ...state, applicationBeingUpdated: action.applicationBeingUpdated, error: null };\r\n\r\n case types.GET_APPLICATION_DETAILS_START:\r\n return { ...state, isAppDataFetching: true, error: null };\r\n case types.GET_APPLICATION_DETAILS_SUCCESS:\r\n return { ...state, applicationDetails: action.applicationDetails, isAppDataFetching: false };\r\n case types.GET_APPLICATION_DETAILS_FAILURE:\r\n return { ...state, isAppDataFetching: true, error: action.error };\r\n\r\n case types.GET_PROFESSIONAL_APPLICATIONS_START:\r\n return { ...state, isAppDataFetching: true, error: null };\r\n case types.GET_PROFESSIONAL_APPLICATIONS_SUCCESS:\r\n return { ...state, applications: action.application, isAppDataFetching: false };\r\n case types.GET_PROFESSIONAL_APPLICATIONS_FAILURE:\r\n return { ...state, isAppDataFetching: true, error: action.error };\r\n\r\n case types.CREATE_PROFESSIONAL_APPLICATION_START:\r\n return { ...state, isFetching: true, error: null };\r\n case types.CREATE_PROFESSIONAL_APPLICATION_SUCCESS:\r\n let newApplicationsArray = state.applications.map(app => {\r\n if (app.taxId === action.application.taxId) {\r\n return action.application;\r\n }\r\n return app;\r\n });\r\n let updatedApplication = { ...state.applicationBeingUpdated, id: action.application.id }\r\n return { ...state, applications: newApplicationsArray, applicationBeingUpdated: updatedApplication, isFetching: false, applicationApiCalledSuccess: true };\r\n case types.CREATE_PROFESSIONAL_APPLICATION_FLAGOFF_SUCCESS:\r\n let array = [action.application];\r\n let newApplication = { ...state.applicationBeingUpdated, id: action.application.id }\r\n return { ...state, applications: array, applicationBeingUpdated: newApplication, isFetching: false, applicationApiCalledSuccess: true };\r\n case types.CREATE_PROFESSIONAL_APPLICATION_FAILURE:\r\n return { ...state, isFetching: false, error: action.error };\r\n\r\n case types.UPDATE_PROFESSIONAL_APPLICATION_START:\r\n return { ...state, isFetching: true, error: null };\r\n case types.UPDATE_PROFESSIONAL_APPLICATION_SUCCESS:\r\n let newApplications = state.applications.map(app => {\r\n if (app.id === action.application.id) {\r\n return action.application;\r\n }\r\n return app;\r\n })\r\n return { ...state, applications: newApplications, isFetching: false, applicationApiCalledSuccess: true };\r\n case types.UPDATE_PROFESSIONAL_APPLICATION_FAILURE:\r\n return { ...state, isFetching: false, error: action.error };\r\n\r\n case types.DELETE_PROFESSIONAL_APPLICATION_START:\r\n return { ...state, isFetching: true, error: null };\r\n case types.DELETE_PROFESSIONAL_APPLICATION_SUCCESS:\r\n let newList = state.applications.filter(function (value) {\r\n return value.id !== action.id;\r\n });\r\n return { ...state, applications: newList, isFetching: false };\r\n case types.DELETE_PROFESSIONAL_APPLICATION_FAILURE:\r\n return { ...state, isFetching: false, error: action.error };\r\n\r\n case types.APPLICATION_GET_REFERENCE_LIST_START:\r\n return { ...state, isFetching: true, error: null };\r\n case types.APPLICATION_GET_TAXID_REFERENCE_LIST_SUCCESS:\r\n return { ...state, taxIdList: action.list, isFetching: false };\r\n case types.APPLICATION_GET_COUNTY_REFERENCE_LIST_SUCCESS:\r\n return { ...state, countyLookup: action.list, isFetching: false };\r\n case types.APPLICATION_GET_LANGUAGE_REFERENCE_LIST_SUCCESS:\r\n return { ...state, languageList: action.list, isFetching: false };\r\n case types.APPLICATION_GET_STATE_REFERENCE_LIST_SUCCESS:\r\n return { ...state, stateList: action.list, isFetching: false };\r\n case types.APPLICATION_GET_TAXONOMY_REFERENCE_LIST_SUCCESS:\r\n return { ...state, taxonomyList: action.list, isFetching: false };\r\n case types.APPLICATION_GET_ACCREDITATIONTYPE_REFERENCE_LIST_SUCCESS:\r\n return { ...state, accreditationTypeList: action.list, isFetching: false };\r\n case types.APPLICATION_GET_DEGREEANDCERTIFICATION_REFERENCE_LIST_SUCCESS:\r\n return { ...state, degreeAndCertificationList: action.list, isFetching: false };\r\n case types.APPLICATION_GET_ADDRESSTYPE_REFERENCE_LIST_SUCCESS:\r\n return { ...state, addressTypeList: action.list, isFetching: false };\r\n case types.APPLICATION_GET_CONTACTTYPE_REFERENCE_LIST_SUCCESS:\r\n return { ...state, contactTypeList: action.list, isFetching: false };\r\n case types.APPLICATION_GET_MALPRACTICEINSURANCETYPE_REFERENCE_LIST_SUCCESS:\r\n return { ...state, malpracticeInsuranceTypeList: action.list, isFetching: false };\r\n case types.APPLICATION_GET_MALPRACTICEINSURANCECARRIER_REFERENCE_LIST_SUCCESS:\r\n return { ...state, malpracticeInsuranceCarrierList: action.list, isFetching: false };\r\n case types.APPLICATION_GET_MALPRACTICEINSURANCEAMOUNTS_REFERENCE_LIST_SUCCESS:\r\n return { ...state, malpracticeInsuranceAmountsList: action.list, isFetching: false };\r\n case types.APPLICATION_GET_PROVIDERFACILITYAFFILIATION_REFERENCE_LIST_SUCCESS:\r\n return { ...state, providerFacilityAffiliationList: action.list, isFetching: false };\r\n case types.APPLICATION_GET_SPECIALTY_REFERENCE_LIST_SUCCESS:\r\n return { ...state, specialtyList: action.list, isFetching: false };\r\n case types.APPLICATION_GET_PRACTICELIMITATION_REFERENCE_LIST_SUCCESS:\r\n return { ...state, practiceLimitationList: action.list, isFetching: false };\r\n case types.APPLICATION_GET_MENTALHEALTH_REFERENCE_LIST_SUCCESS:\r\n return { ...state, mentalHealthServiceTypeList: action.list, isFetching: false };\r\n case types.APPLICATION_GET_REFERENCE_LIST_FAILURE:\r\n return { ...state, error: action.error, isFetching: false };\r\n\r\n default:\r\n return { ...state };\r\n }\r\n}","import * as types from '../constants/actionTypes';\r\nexport const documentInitialState = {\r\n isFetching: true,\r\n error: \"\",\r\n success: false,\r\n attachment: null,\r\n file: null,\r\n uploadOccuredAt: null\r\n};\r\n\r\nexport default function documentReducer(state = documentInitialState, action) {\r\n switch (action.type) {\r\n case types.SET_DEFAULT_DOCUMENT_STATE:\r\n return documentInitialState;\r\n case types.LOGOUT:\r\n return documentInitialState;\r\n\r\n case types.FILE_UPLOAD_START:\r\n return { ...state, isFetching: true, uploadOccuredAt: null };\r\n case types.FILE_UPLOAD_SUCCESS:\r\n return { ...state, attachment: action.result, isFetching: false, error: \"\", uploadOccuredAt: action.name };\r\n case types.FILE_UPLOAD_FAILURE:\r\n return { ...state, isFetching: false, error: action.error, uploadOccuredAt: action.name };\r\n\r\n case types.FILE_DOWNLOAD_START:\r\n return { ...state, isFetching: true, file: null };\r\n case types.FILE_DOWNLOAD_SUCCESS:\r\n return { ...state, file: action.result, isFetching: false, error: \"\" };\r\n case types.FILE_DOWNLOAD_FAILURE:\r\n return { ...state, isFetching: false, error: action.error };\r\n\r\n\r\n default:\r\n return { ...state };\r\n }\r\n}","import { combineReducers } from \"redux\";\r\nimport dashboard from './dashboardReducer';\r\nimport user from './userReducer';\r\nimport professionalApplication from './professionalApplicationReducer';\r\nimport document from './documentReducer';\r\n\r\nlet rootReducer = combineReducers({ dashboard, user, professionalApplication, document });\r\n\r\nrootReducer.cookiesObject = null;\r\n\r\nexport default rootReducer;","import React from 'react';\r\n\r\nexport const ProviderNavigation = () => {\r\n return
\r\n \r\n
;\r\n}","import React, { useState, useEffect } from 'react';\r\nimport logo from '../../images/Branding/2_Baylor Scott & White Health Plan_Horz_Color.png';\r\nimport { ProviderNavigation } from '../common/ProviderNavigation';\r\nimport { Button } from 'reactstrap';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport * as types from '../../constants/actionTypes';\r\nimport { useCookies } from 'react-cookie';\r\nimport \"bootstrap/dist/js/bootstrap.min.js\";\r\n\r\nexport const Header = (props) => {\r\n const dispatch = useDispatch();\r\n const history = useHistory()\r\n const logOutSuccess = useSelector((state) => state.user.success);\r\n const userInfo = useSelector((state) => state.user.userInfo);\r\n const welcomeComplete = useSelector((state) => state.user.welcomeComplete);\r\n const [hideLogOut, sethideLogOut] = useState(false);\r\n const [logOut, setlLogOut] = useState(false);\r\n const [cookies, removeCookie] = useCookies(['isFormDataSaved']);\r\n\r\n const navigateToWelcome = () => {\r\n var logout = true;\r\n if (cookies.isFormDataSaved === \"false\") {\r\n logout = window.confirm(\"Unsaved changes will be lost, Do you want to Continue?\");\r\n }\r\n if (logout) {\r\n setlLogOut(true);\r\n removeCookie(\"isFormDataSaved\");\r\n dispatch({ type: types.LOGOUT });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (logOutSuccess && (userInfo == null || !userInfo) && logOut) {\r\n history.push('/');\r\n }\r\n\r\n if (userInfo == null || !userInfo || !welcomeComplete) {\r\n sethideLogOut(true);\r\n }\r\n else {\r\n sethideLogOut(false);\r\n }\r\n }, [logOutSuccess, userInfo, welcomeComplete]);\r\n\r\n return
\r\n
\r\n \r\n
\r\n \r\n
;\r\n}","import React from 'react';\r\nimport { useLocation } from \"react-router-dom\";\r\nimport bottomBorder from '../../images/Branding/footer-line.jpg';\r\n\r\nexport const Footer = () => {\r\n\tconst location = useLocation();\r\n\r\n\t// Footer should only be displayed on the home/welcome page\r\n\tvar showFooter = (location.pathname === \"/\");\r\n \r\n\treturn (showFooter &&\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\"\"/\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
    \r\n\t\t\t\t\t
  • \r\n\t\t\t\t\t
  • \r\n\t\t\t\t\t
  • \r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
© 2022 Baylor Scott & White Health Plan
\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t);\r\n}","import React, { Component } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport { Header } from './common/Header';\r\nimport { Footer } from './common/Footer';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport class Layout extends Component {\r\n static displayName = Layout.name;\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n {this.props.children}\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nLayout.propTypes = {\r\n children: PropTypes.node\r\n}\r\n","import React, { useState, useEffect, useRef } from 'react'\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useIdleTimer } from 'react-idle-timer'\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\nimport * as types from '../constants/actionTypes';\r\n\r\nexport const AutoLogoutTimer = (props) => {\r\n const dispatch = useDispatch();\r\n const history = useHistory()\r\n\r\n const [idleModal, setIdleModal] = useState(false);\r\n const logOutSuccess = useSelector((state) => state.user.success);\r\n const userInfo = useSelector((state) => state.user.userInfo);\r\n const timeoutSettings = useSelector((state) => state.user.timeoutSettings);\r\n const idlTtimeoutSetting = timeoutSettings ? 1000 * 60 * timeoutSettings.idleTimeoutMinutes : 300000; // Default - // 5 minutes idle timer\r\n const sessionTimeoutSetting = timeoutSettings ? 1000 * 60 * timeoutSettings.sessionTimeoutMinutes : 60000;// Default - 60 seconds - Logout automatically if session is still idle after pop-up is displayed\r\n let sessionTimeout = useRef(null);\r\n const [timeoutId, setTimeoutId] = useState('');\r\n\r\n useEffect(() => {\r\n if (logOutSuccess) {\r\n history.push('/');\r\n }\r\n }, [logOutSuccess]);\r\n\r\n const handleOnIdle = event => {\r\n if (userInfo) {\r\n setIdleModal(true);\r\n sessionTimeout = () => setTimeout(() => logOut(), sessionTimeoutSetting);\r\n setTimeoutId(sessionTimeout());\r\n }\r\n else {\r\n setIdleModal(false);\r\n }\r\n } \r\n\r\n const stayActive = () => {\r\n clearTimeout(timeoutId);\r\n reset();\r\n setIdleModal(false); \r\n };\r\n const logOut = () => {\r\n setIdleModal(false);\r\n clearTimeout(timeoutId);\r\n dispatch({ type: types.LOGOUT });\r\n }\r\n\r\n const { reset } =\r\n useIdleTimer({\r\n timeout: idlTtimeoutSetting,\r\n onIdle: handleOnIdle,\r\n debounce: 500\r\n });\r\n\r\n\r\n return (\r\n
\r\n setIdleModal(false)}>\r\n setIdleModal(false)}>\r\n Session expire warning\r\n \r\n \r\n Due to inactivity your session will expire soon. Do you want to extend the session?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n )\r\n}\r\n","export const validateMedicaid = (value) => {\r\n const validMedicaidRegex = RegExp(\"^[0-9]{9}$\");\r\n let err =\r\n !value || validMedicaidRegex.test(value)\r\n ? ''\r\n : 'Medicaid Number should be 9-digit number.';\r\n return err;\r\n};\r\n\r\nexport const validatePassword = (value) => {\r\n const validPasswordRegex =\r\n RegExp(/^(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*#?&])[A-Za-z\\d@$!%*#?&]{8,}$/i);\r\n let err =\r\n validPasswordRegex.test(value)\r\n ? ''\r\n : 'Password must be atleast eight characters, at least one uppercase letter, one number and one special character';\r\n return err;\r\n};\r\n\r\nexport const validateConfirmPassword = (value, password) => {\r\n let err =\r\n (value !== password)\r\n ? 'Confirm Password must match Password!'\r\n : '';\r\n return err;\r\n};\r\nexport const validateTaxId = (value) => {\r\n const validTaxIdRegex = /^[0-9]{9}$/;\r\n const invalidTaxIdRegex = /^(0{9}|1{9}|2{9}|3{9}|4{9}|5{9}|6{9}|7{9}|8{9}|9{9}|123456789)$/;\r\n\r\n let err = '';\r\n\r\n if (invalidTaxIdRegex.test(value)) {\r\n err = 'Invalid Tax ID';\r\n } else if (!validTaxIdRegex.test(value)) {\r\n err = 'Tax ID must be a 9-digit number.';\r\n }\r\n\r\n return err;\r\n};\r\n\r\nexport const validateNpi = (value) => {\r\n const validNpiRegex = RegExp(\"^[0-9]{10}$\");\r\n let err =\r\n !value || validNpiRegex.test(value)\r\n ? ''\r\n : 'Npi must be a 10-digit number.';\r\n return err;\r\n};\r\n\r\nexport const validateNA = (value) => {\r\n let err = '';\r\n const naRegex = /n\\/a|n\\/A|N\\/a|N\\/A/gi;\r\n\r\n if (naRegex.test(value)) {\r\n err = \"N/A or n/a is not acceptable.\";\r\n }\r\n\r\n return err;\r\n};\r\n\r\nexport const validateEmail = (value) => {\r\n const validEmailRegex =\r\n RegExp(/^(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i);\r\n let err =\r\n !value || validEmailRegex.test(value)\r\n ? ''\r\n : 'Please enter valid Email.';\r\n return err;\r\n};\r\n\r\nexport const validatePhone = (value) => {\r\n const validPhoneRegex = RegExp('^[2-9]{1}[0-9]{2}-[2-9]{1}[0-9]{2}-[0-9]{4}$');\r\n let err =\r\n !value || validPhoneRegex.test(value)\r\n ? ''\r\n : 'Phone number is not valid.';\r\n return err;\r\n};\r\n\r\nexport const validateFax = (value) => {\r\n const validFaxRegex = RegExp('^[2-9]{1}[0-9]{2}-[2-9]{1}[0-9]{2}-[0-9]{4}$');\r\n let err =\r\n !value || validFaxRegex.test(value)\r\n ? ''\r\n : 'Fax number is not valid.';\r\n return err;\r\n};\r\n\r\nexport const validateUrl = (value) => {\r\n const validFaxRegex = RegExp('^(ht|f)tp(s?)\\:\\/\\/[0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*(:(0-9)*)*(\\/?)([a-zA-Z0-9\\-\\.\\?\\,\\'\\/\\\\\\+&%\\$#_]*)?$');\r\n let err =\r\n !value || validFaxRegex.test(value)\r\n ? ''\r\n : 'Please enter valid website address.';\r\n return err;\r\n};\r\n\r\nexport const validateZipWithPlus4 = (value) => {\r\n //const validNineDigitZip = RegExp(\"^\\d{5}(?:[-\\s]\\d{4})?$\");\r\n const validNineDigitZip = RegExp(\"^[0-9]{5}-[0-9]{4}$\");\r\n let err =\r\n validNineDigitZip.test(value)\r\n ? ''\r\n : '9-digit zip code is required.';\r\n return err;\r\n}\r\n\r\nexport const validateForNotNullOrWhitespace = (value) => {\r\n let err =\r\n (!value || !/\\S/.test(value))\r\n ? 'This field is required'\r\n : '';\r\n return err;\r\n}\r\n\r\nexport const validateCityName = (value) => {\r\n let err = validateForNotNullOrWhitespace(value);\r\n if (err) {\r\n return err;\r\n }\r\n\r\n const valueContainsInvalidCharacter = RegExp('[^A-Za-z ]+');\r\n err =\r\n valueContainsInvalidCharacter.test(value)\r\n ? 'City name contains an invalid character.'\r\n : '';\r\n return err;\r\n}\r\n\r\nexport const validateCaqh = (value) => {\r\n const validFaxRegex = RegExp('^[0-9]{8}$');\r\n let err =\r\n !value || validFaxRegex.test(value)\r\n ? ''\r\n : 'CAQH Number is not valid.';\r\n return err;\r\n};\r\n\r\nexport const validateMedicareId = (value) => {\r\n const validMedicareRegex = RegExp(\"^[a-zA-Z0-9]+$\");\r\n let err =\r\n !value || validMedicareRegex.test(value)\r\n ? ''\r\n : 'Invalid Medicare Number';\r\n return err;\r\n};\r\n\r\nexport const validateLicenseNumber = (value) => {\r\n const validLicenseRegex = RegExp(\"^[a-zA-Z0-9]{1,20}$\");\r\n let err =\r\n !value ||validLicenseRegex.test(value)\r\n ? ''\r\n : 'License Number must be 1 to 20 characters long.';\r\n return err;\r\n};\r\n\r\nexport const validateSSN = (value) => {\r\n\r\n const validSSNRegex = /^[0-9]{3}-[0-9]{2}-[0-9]{4}$/;\r\n const invalidSSNRegex = /^(0{9}|9{9}|000-00-0000|111-11-1111|222-22-2222|333-33-3333|444-44-4444|555-55-5555|666-66-6666|777-77-7777|888-88-8888|999-99-9999|123-45-6789)$/;\r\n\r\n if (invalidSSNRegex.test(value)) {\r\n return 'Invalid SSN.';\r\n }\r\n\r\n if (!value || validSSNRegex.test(value)) {\r\n return '';\r\n }\r\n\r\n return 'Invalid SSN.';\r\n};\r\n\r\n\r\nexport const validateLength = (name, value, maxLength, minLength = 0) => {\r\n let required = minLength > 0 ? !value : false;\r\n let invalid =\r\n required || value.length < minLength || value.length > maxLength;\r\n let error = '';\r\n if (invalid) {\r\n switch (name) {\r\n case 'firstName':\r\n error = 'First Name must be 1 to 15 characters long.';\r\n break;\r\n case 'lastName':\r\n error = 'Last Name must be 1 to 60 characters long.';\r\n break;\r\n case 'middleInitial':\r\n error = 'Middle initial must be 1 character.';\r\n break;\r\n case 'deaNumber':\r\n error = 'DEA Number can be at most 20-characters.';\r\n break;\r\n case 'physicianName':\r\n error = minLength > 0 ? 'Physician name must be 1 to 20 characters long.'\r\n : 'Physician name can be at most 20-characters.';\r\n break;\r\n case 'name':\r\n error = 'Name must be 1 to 80 characters long.';\r\n break;\r\n }\r\n }\r\n return error;\r\n}\r\n\r\nexport const validateDate = (value) => {\r\n let err = '';\r\n if (value) {\r\n const startDate = new Date('01/01/1900');\r\n const endDate = new Date('12/31/9999');\r\n const date = new Date(value);\r\n\r\n let validDate = date.getTime() >= startDate.getTime() && date.getTime() <= endDate.getTime();\r\n err =\r\n !validDate\r\n ? 'Enter valid Date.'\r\n : '';\r\n }\r\n return err;\r\n};\r\n\r\nexport const validateExpirationDate = (value) => {\r\n let err = '';\r\n if (value) {\r\n const eDate = new Date(value);\r\n\r\n var now = new Date();\r\n if (eDate < now) {\r\n err = \"Expiration date must be later than today's date\";\r\n }\r\n }\r\n return err;\r\n};\r\n\r\nexport const validateDateRange = (sDate, eDate) => {\r\n let err = '';\r\n if (sDate && eDate) {\r\n const startDate = new Date(sDate);\r\n const endDate = new Date(eDate);\r\n\r\n let validDate = startDate < endDate;\r\n err =\r\n !validDate\r\n ? 'Expiration date should be after effective date.'\r\n : '';\r\n }\r\n return err;\r\n};\r\n\r\nexport const validateForm = (errors) => {\r\n let valid = true;\r\n Object.values(errors).forEach(\r\n // if we have an error string set valid to false\r\n (val) => val.length > 0 && (valid = false)\r\n );\r\n return valid;\r\n}\r\n\r\nexport const validateFileUpload = (file, validFileTypes, maxFileSize) => {\r\n const fileExtention = file.name.split('.').pop().toLowerCase();\r\n const fileSizeInMb = file.size ? (file.size / 1024 / 1024).toFixed(2) : 0;\r\n if (validFileTypes.split(',').indexOf(\".\" + fileExtention) < 0) {\r\n return `Please select a valid file type: ${validFileTypes}`;\r\n }\r\n else if (parseFloat(fileSizeInMb) > maxFileSize) {\r\n return `Please select a file less than: ${maxFileSize}MB.`;\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\nexport const validateNumberBetween = (numberToCheck, min, max=null) => {\r\n if (numberToCheck >= min && (!max || (max && numberToCheck <= max))) {\r\n return '';\r\n }\r\n if (max) {\r\n return `Value must be between ${min} and ${max}.`;\r\n }\r\n return `Value must be greater than ${min}`;\r\n}\r\n\r\n//input: array of key/value pairs with the field name as key, and current value\r\n//output: name of first missing field encountered or '' if no missing values\r\nexport const validateRequiredFields = (requiredFields) => {\r\n let missingField = requiredFields.find(field => {\r\n return !field.value || '' !== validateForNotNullOrWhitespace(field.value)\r\n });\r\n\r\n if (!missingField) {//Check expiration dates when user clicks submit.\r\n missingField = requiredFields.find(field => {\r\n if (field.key === \"License Number Expiration Date\" || field.key === \"DEA Number Expiration Date\"\r\n || field.key === \"Malpractice Expiration Date\") {\r\n let err = validateExpirationDate(field.value);\r\n if (err !== '') {\r\n return field;\r\n }\r\n }\r\n });\r\n\r\n }\r\n return missingField ? missingField.key : '';\r\n\r\n}","import React from 'react';\r\nimport { Col, Row, Label } from 'reactstrap';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport const SectionHeader = (props) => {\r\n let { children } = props;\r\n return \r\n \r\n
\r\n \r\n
\r\n \r\n
;\r\n}\r\nSectionHeader.propTypes = {\r\n children: PropTypes.node\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { FormGroup, Label, Input, Row, Col, Dropdown, DropdownToggle, DropdownMenu} from 'reactstrap';\r\nimport PropTypes from 'prop-types';\r\nimport InputMask from 'react-input-mask';\r\n\r\nexport const FormField = (props) => {\r\n let { required, name, id, label, type, options, placeholder, value, error, selectedOptions, datasource, min, max, maxLength, mask, disabled, showRequiredErrorOnLoad, onChange = (() => { }), onFocusOut = (() => { }) } = props;\r\n const [requiredError, setRequiredError] = useState((!showRequiredErrorOnLoad || value ? '' : (label + ' is required'))); \r\n const [dropdownOpenLang, setDropdownOpenLang] = useState(false);\r\n const toggleLang = () => setDropdownOpenLang(prevState => !prevState);\r\n\r\n useEffect(() => {\r\n setRequiredError((showRequiredErrorOnLoad && (!value && typeof value !== \"boolean\") ? (label + ' is required') : ''));\r\n }, [showRequiredErrorOnLoad])\r\n\r\n const onFieldChange = (e) => {\r\n if (required) {\r\n if (!e.target.value)\r\n setRequiredError(label + \" is required\");\r\n else\r\n setRequiredError(null); \r\n }\r\n onChange(e);\r\n }\r\n\r\n const onFocusLost = (e) => {\r\n onFocusOut(e);\r\n }\r\n\r\n if (type === \"yes/no\") {\r\n return \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {error && {error}}\r\n {requiredError && {requiredError}}\r\n ;\r\n }\r\n if (type === \"select\") {\r\n return \r\n \r\n \r\n \r\n {options.map(o => )}\r\n \r\n {error && {error}}\r\n {requiredError && {requiredError}}\r\n ;\r\n }\r\n if (type === \"Dropdown\") {\r\n return \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n return {\r\n ...data,\r\n styles: {\r\n ...data.styles,\r\n overflow: 'auto',\r\n maxHeight: '300px',\r\n },\r\n };\r\n },\r\n },\r\n }}\r\n >\r\n {datasource ? datasource.map(e => {\r\n return (\r\n \r\n \r\n 0 ? \"checked\" : \"\")} />{\" \"}{e.name}\r\n \r\n \r\n\r\n )\r\n }) : \"\"}\r\n \r\n \r\n {/**/}\r\n \r\n }\r\n if (type === \"InputMask\") {\r\n return \r\n \r\n \r\n {error && {error}}\r\n {!error && requiredError && {requiredError}}\r\n ;\r\n }\r\n return \r\n \r\n \r\n {error && {error}}\r\n {!error && required && requiredError && {requiredError}}\r\n ;\r\n};\r\n\r\nFormField.propTypes = {\r\n type: PropTypes.oneOf([\"text\", \"email\", \"select\", \"file\", \"radio\", \"checkbox\", \"textarea\", \"button\", \"reset\", \"submit\",\r\n \"date\", \"datetime\", \"datetime-local\", \"hidden\", \"image\", \"month\", \"number\", \"range\", \"search\", \"tel\", \"url\", \"week\",\r\n \"password\", \"datetime\", \"time\", \"color\", \"yes/no\", \"Dropdown\", \"InputMask\"]).isRequired,\r\n required: PropTypes.bool,\r\n name: PropTypes.string,\r\n id: PropTypes.string,\r\n label: PropTypes.string,\r\n options: PropTypes.arrayOf(PropTypes.shape({ value: PropTypes.string, label: PropTypes.string })),\r\n placeholder: PropTypes.string,\r\n mask: PropTypes.string,\r\n value: PropTypes.any,\r\n onChange: PropTypes.func,\r\n onFocusOut: PropTypes.func,\r\n error: PropTypes.string,\r\n selectedOptions: PropTypes.array,\r\n datasource: PropTypes.object,\r\n min: PropTypes.number,\r\n max: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number\r\n ]),\r\n maxLength: PropTypes.number,\r\n disabled: PropTypes.bool,\r\n showRequiredErrorOnLoad: PropTypes.bool\r\n}\r\n","export const ProviderTypesEnum = {\r\n FACILITY : \"F\",\r\n PROFESSIONAL : \"P\"\r\n}\r\n\r\nexport const ProviderTypes = [\r\n { value: ProviderTypesEnum.PROFESSIONAL, label: 'PROFESSIONAL (GROUP OR INDIVIDUAL)' }\r\n];","export const ClientLoggingModel = {\r\n message: null,\r\n pageName: null,\r\n methodName: null,\r\n jsonResult: null\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faEnvelopeOpenText } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { Button } from 'reactstrap';\r\nimport * as types from '../../constants/actionTypes';\r\nimport { useHistory, useLocation } from 'react-router';\r\nimport { ClientLoggingModel } from '../../models/ClientLoggingModel';\r\n\r\n\r\nexport const VerifyEmail = (props) => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n let location = useLocation();\r\n let { email, closeVerifyEmail } = props;\r\n const error = useSelector((state) => state.user.resendEmailError);\r\n const [emailVerified, setEmailVerified] = useState(false);\r\n const [clientLoggingModel, setClientLoggingModel] = useState(ClientLoggingModel);\r\n\r\n useEffect(() => {\r\n dispatch({\r\n type: types.SIGNUP_RESEND_EMAIL_RESET\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n setEmailVerified(error === 'Email already confirmed');\r\n }, [error]);\r\n\r\n const resendEmail = () => {\r\n if (email) {\r\n var message = \"Resending Email \" + email + \".\";\r\n var methodName = \"createAccount\";\r\n var jsonResult = JSON.stringify(email);\r\n logInfoWrite(message, methodName, jsonResult);\r\n dispatch({\r\n type: types.SIGNUP_RESEND_EMAIL_START, email\r\n });\r\n }\r\n\r\n }\r\n\r\n const goToLogin = (e) => {\r\n e.preventDefault();\r\n if (location.pathname === \"/\" && closeVerifyEmail) {\r\n closeVerifyEmail();\r\n }\r\n else {\r\n var message = \"Returning to login page.\";\r\n var methodName = \"goToLogin\";\r\n var jsonResult = email;\r\n logInfoWrite(message, methodName, jsonResult);\r\n history.push('/');\r\n }\r\n }\r\n\r\n const logInfoWrite = (message, methodName, jsonResult) => {\r\n var loggingModel = {\r\n message: message,\r\n pageName: \"VerifyEmail\",\r\n methodName: methodName,\r\n jsonResult: jsonResult\r\n };\r\n\r\n setClientLoggingModel(loggingModel);\r\n if (clientLoggingModel.methodName !== null) {\r\n dispatch({ type: types.LOG_INFO_START, clientLoggingModel, user: null });\r\n }\r\n }\r\n\r\n return
\r\n \r\n

Confirm your email address

\r\n

A confirmation email has been sent to {email}
\r\n Check your email and click on the confirmation link to continue

\r\n \r\n {emailVerified ?\r\n

\r\n Your email has been successfully confirmed. Click here to Login .\r\n

\r\n :\r\n

\r\n {error}\r\n

\r\n }\r\n
;\r\n}\r\n\r\nVerifyEmail.propTypes = {\r\n email: PropTypes.string,\r\n closeVerifyEmail: PropTypes.func\r\n};","import { AppConfigurationClient } from '@azure/app-configuration';\r\nimport { useEffect } from 'react';\r\nimport { useMemo, useState } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport * as types from '../constants/actionTypes';\r\n/**\r\n * Retrieves the specified feature flag from Azure App Configuration.\r\n * @param {string} flagKey App Config Feature Flag key\r\n * @returns the feature flag for the specified key\r\n */\r\nconst useFeatureFlag = (flagKey = '') => {\r\n const appSettings = useSelector((state) => state.user.timeoutSettings);\r\n const flags = useSelector((state) => state.user.featureFlags);\r\n const dispatch = useDispatch();\r\n let flagValue = flags ? flags[flagKey] : false;\r\n const [enabled, setEnabled] = useState(typeof flagValue === 'undefined' ? false : flagValue);\r\n const [client, setClient] = useState(appSettings?.appConfigurationConnectionString ?\r\n new AppConfigurationClient(appSettings.appConfigurationConnectionString)\r\n : null);\r\n\r\n useMemo(async () => {\r\n if (!flagKey || !flagKey.toString().trim().length) {\r\n console.error('A feature flag key must be supplied.');\r\n } else {\r\n try {\r\n if (!flags || !(flagKey in flags)) {\r\n let configClient;\r\n if (client) {\r\n configClient = client;\r\n\r\n }\r\n else {\r\n if (appSettings?.appConfigurationConnectionString) {\r\n console.log(\"if statement\");\r\n let newConfigClient = new AppConfigurationClient(appSettings?.appConfigurationConnectionString)\r\n setClient(newConfigClient);\r\n configClient = newConfigClient;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n const result = await configClient.getConfigurationSetting({\r\n key: `.appconfig.featureflag/${flagKey.toString().trim()}`,\r\n });\r\n if (result && typeof result === 'object') {\r\n console.debug('Feature: ' + JSON.parse(result.value).id, JSON.parse(result.value).enabled);\r\n setEnabled(JSON.parse(result.value).enabled);\r\n dispatch({ type: types.FEATURE_FLAG_SUCCESS, key: flagKey.toString().trim(), value: JSON.parse(result.value).enabled });\r\n }\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n }, [flagKey, appSettings]);\r\n\r\n return { enabled };\r\n};\r\n\r\n/**\r\n * Retrieves the specified configuration from Azure App Configuration.\r\n * @param {string} configKey App Config Key\r\n * @returns the configuration for the specified key\r\n */\r\nconst useConfiguration = (configKey = '') => {\r\n const [config, setConfig] = useState('');\r\n const appSettings = useSelector((state) => state.user.timeoutSettings);\r\n const [client, setClient] = useState(appSettings?.appConfigurationConnectionString ?\r\n new AppConfigurationClient(appSettings.appConfigurationConnectionString)\r\n : null);\r\n\r\n useMemo(async () => {\r\n if (!configKey || !configKey.toString().trim().length) {\r\n console.error('A config key must be supplied.');\r\n } else {\r\n try {\r\n let configClient;\r\n if (client) {\r\n configClient = client;\r\n\r\n }\r\n else {\r\n if (appSettings?.appConfigurationConnectionString) {\r\n console.log(\"if statement\");\r\n let newConfigClient = new AppConfigurationClient(appSettings?.appConfigurationConnectionString)\r\n setClient(newConfigClient);\r\n configClient = newConfigClient;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n const result = await configClient.getConfigurationSetting({ key: configKey.toString().trim() });\r\n if (result) {\r\n console.debug('Config: ' + result.key, result.value);\r\n setConfig(result.value);\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n }, [configKey, appSettings]);\r\n\r\n return { config };\r\n};\r\n\r\nexport { useFeatureFlag, useConfiguration };","import React, { useState, useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Col, Row, Form, FormGroup, Label, Input, Button } from 'reactstrap';\r\nimport * as types from '../../constants/actionTypes';\r\nimport * as validators from '../../constants/validations';\r\nimport { SectionHeader } from '../common/SectionHeader';\r\nimport { FormField } from '../common/FormField';\r\nimport * as providerTypes from '../../constants/providerTypes';\r\nimport { ClientLoggingModel } from '../../models/ClientLoggingModel';\r\nimport { VerifyEmail } from '../common/VerifyEmail';\r\nimport { useFeatureFlag } from '../../common/useFeatureFlag';\r\n\r\nexport const SignUp = (props) => {\r\n const dispatch = useDispatch();\r\n const accountCreated = useSelector((state) => state.user.accountCreated);\r\n const error = useSelector((state) => state.user.error);\r\n const [createActionDone, setCreateActionDone] = useState(false);\r\n const [submitDisabled, setSubmitDisabled] = useState(true);\r\n const isFetching = useSelector((state) => state.user.isFetching);\r\n const npiIsValid = useSelector((state) => state.user.npiIsValid);\r\n const taxIdInUse = useSelector((state) => state.user.taxIdInUse);\r\n const userExists = useSelector((state) => state.user.userExists);\r\n const providerTypesList = providerTypes.ProviderTypes;\r\n const { enabled: multipleApplicationsEnabled } = useFeatureFlag('125081_PAMMultipleApplicationsPerUser');\r\n \r\n const [clientLoggingModel, setClientLoggingModel] = useState(ClientLoggingModel);\r\n\r\n const [user, setUser] = useState({\r\n npi: null,\r\n taxId: null,\r\n firstName: null,\r\n lastName: null,\r\n email: null,\r\n password: null,\r\n confirmPassword: null,\r\n providerType: null,\r\n phoneNumber: null\r\n });\r\n const [errors, setErrors] = useState({\r\n npi: '',\r\n taxId: '',\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n password: '',\r\n confirmPassword: '',\r\n providerType: '',\r\n phoneNumber: ''\r\n });\r\n\r\n const createAccount = (e) => {\r\n e.preventDefault();\r\n var message = \"Submitting API call to create account for \" + user.firstName + \" \" + user.lastName + \".\";\r\n var methodName = \"createAccount\";\r\n let userInfoTolog = { ...user, password: \"\", confirmPassword: \"\" };\r\n var jsonResult = JSON.stringify(userInfoTolog);\r\n logInfoWrite(message, methodName, jsonResult);\r\n dispatch({\r\n type: types.SIGNUP_UPDATE_USER_INFO_START, npi: user.npi, taxId: user.taxId, firstName: user.firstName, lastName: user.lastName, email: user.email, password: user.password, providerType: user.providerType, phoneNumber: user.phoneNumber\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n dispatch({ type: types.SIGNUP_UPDATE_USER_INFO_INITIALIZE_START });\r\n dispatch({ type: types.GET_TIMEOUT_SETTINGS_START });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (accountCreated || error?.length > 0) {\r\n setCreateActionDone(true);\r\n }\r\n else {\r\n setCreateActionDone(false);\r\n }\r\n }, [accountCreated, error]);\r\n\r\n useEffect(() => {\r\n canSubmit();\r\n }, [errors]);\r\n useEffect(() => {\r\n if (!isFetching)\r\n setErrors({ ...errors, npi: npiIsValid });\r\n }, [npiIsValid]);\r\n useEffect(() => {\r\n if (!isFetching)\r\n setErrors({ ...errors, taxId: taxIdInUse });\r\n }, [taxIdInUse]);\r\n useEffect(() => {\r\n if (!isFetching)\r\n setErrors({ ...errors, email: (userExists ? 'Email already exists.' : '') });\r\n }, [userExists]);\r\n\r\n const onFocusOutTrimSpaces = event => {\r\n const { name, value } = event.target;\r\n var newValue = value.trim();\r\n let updatedErrors = { ...errors };\r\n event.preventDefault();\r\n switch (name) {\r\n case 'firstName':\r\n updatedErrors.firstName = validators.validateLength(name, value, 15, 1);\r\n break;\r\n case 'lastName':\r\n updatedErrors.lastName = validators.validateLength(name, value, 60, 1);\r\n break;\r\n }\r\n setUser({ ...user, [name]: newValue });\r\n setErrors(updatedErrors);\r\n\r\n }\r\n\r\n const inputChangeHandler = event => {\r\n const { name, value } = event.target;\r\n event.preventDefault();\r\n let message = \"\";\r\n let methodName = \"inputChangeHandler\";\r\n let jsonResult = \"\";\r\n\r\n let updatedErrors = { ...errors };\r\n switch (name) {\r\n case 'npi':\r\n let npiErr = validators.validateNpi(value);\r\n if (npiErr === '') {\r\n message = \"Performing API call to validate NPI \" + value + \".\";\r\n jsonResult = JSON.stringify(value);\r\n logInfoWrite(message, methodName, jsonResult);\r\n }\r\n\r\n updatedErrors.npi = (npiErr === '')\r\n ? dispatch({ type: types.SIGNUP_GET_NPI_START, npi: value })\r\n : npiErr;\r\n break;\r\n case 'taxId':\r\n let taxIdErr = validators.validateTaxId(value);\r\n if (taxIdErr === '') {\r\n message = \"Performing API call to validate tax ID \" + value + \".\";\r\n jsonResult = JSON.stringify(value);\r\n logInfoWrite(message, methodName, jsonResult);\r\n }\r\n updatedErrors.taxId = (taxIdErr === '')\r\n ? dispatch({ type: types.SIGNUP_GET_TAX_ID_START, taxId: value })\r\n : taxIdErr;\r\n break;\r\n case 'firstName':\r\n updatedErrors.firstName = validators.validateLength(name, value, 15, 1);\r\n break;\r\n case 'lastName':\r\n updatedErrors.lastName = validators.validateLength(name, value, 60, 1);\r\n break;\r\n case 'email':\r\n let emailErr = validators.validateEmail(value);\r\n if (emailErr === '') {\r\n message = \"Performing API call to get user by e-mail address \" + value + \".\";\r\n jsonResult = JSON.stringify(value);\r\n logInfoWrite(message, methodName, jsonResult);\r\n }\r\n updatedErrors.email = (emailErr === '')\r\n ? dispatch({ type: types.SIGNUP_GET_USER_BY_EMAIL_START, email: value })\r\n : emailErr;\r\n break;\r\n case 'password':\r\n updatedErrors.password = validators.validatePassword(value);\r\n if (user.confirmPassword) {\r\n updatedErrors.confirmPassword = validators.validateConfirmPassword(user.confirmPassword, value)\r\n }\r\n break;\r\n case 'confirmPassword':\r\n updatedErrors.confirmPassword = validators.validateConfirmPassword(value, user.password);\r\n break;\r\n case 'providerType':\r\n updatedErrors.providerType = value ? '' : 'Please select valid Provider Type';\r\n break;\r\n case 'phoneNumber':\r\n updatedErrors.phoneNumber = validators.validatePhone(value);\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n setUser({ ...user, [name]: value });\r\n setErrors(updatedErrors);\r\n }\r\n\r\n const canSubmit = () => {\r\n if ((!multipleApplicationsEnabled && (!user.npi || !user.taxId))\r\n || !user.firstName || !user.lastName || !user.email || !user.password || !user.confirmPassword || !user.providerType\r\n || (multipleApplicationsEnabled && !user.phoneNumber) \r\n || !validators.validateForm(errors)) {\r\n setSubmitDisabled(true);\r\n } else {\r\n setSubmitDisabled(false);\r\n }\r\n }\r\n\r\n const logInfoWrite = (message, methodName, jsonResult) => {\r\n var loggingModel = {\r\n message: message,\r\n pageName: \"SignUp\",\r\n methodName: methodName,\r\n jsonResult: jsonResult\r\n };\r\n\r\n setClientLoggingModel(loggingModel);\r\n if (clientLoggingModel.methodName !== null) {\r\n dispatch({ type: types.LOG_INFO_START, clientLoggingModel, user });\r\n }\r\n }\r\n\r\n return
\r\n {!createActionDone ?\r\n
\r\n Register\r\n

Please create an account and enter all fields.

\r\n
\r\n

* All fields are required

\r\n
\r\n {!multipleApplicationsEnabled &&\r\n \r\n \r\n \r\n \r\n 0 ? \"input-error\" : \"\")} type=\"text\" name=\"npi\" id=\"npi\" value={user.npi || \"\"} onChange={inputChangeHandler} autoComplete=\"off\" />\r\n {errors.npi.length > 0 &&\r\n {errors.npi}}\r\n \r\n \r\n \r\n \r\n \r\n 0 ? \"input-error\" : \"\")} type=\"text\" name=\"taxId\" id=\"taxId\" value={user.taxId || \"\"} onChange={inputChangeHandler} autoComplete=\"off\" />\r\n {errors.taxId.length > 0 &&\r\n {errors.taxId}}\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n 0 ? \"input-error\" : \"\")} type=\"text\" name=\"firstName\" id=\"firstName\" value={user.firstName || \"\"} onChange={inputChangeHandler} autoComplete=\"off\" onBlur={onFocusOutTrimSpaces} />\r\n {errors.firstName.length > 0 &&\r\n {errors.firstName}}\r\n \r\n \r\n \r\n \r\n \r\n 0 ? \"input-error\" : \"\")} type=\"text\" name=\"lastName\" id=\"lastName\" value={user.lastName || \"\"} onChange={inputChangeHandler} autoComplete=\"off\" onBlur={onFocusOutTrimSpaces} />\r\n {errors.lastName.length > 0 &&\r\n {errors.lastName}}\r\n \r\n \r\n \r\n {multipleApplicationsEnabled &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n 0 ? \"input-error\" : \"\")} type=\"email\" name=\"email\" id=\"email\" value={user.email || \"\"} onChange={inputChangeHandler} autoComplete=\"off\" onBlur={onFocusOutTrimSpaces} />\r\n {errors.email.length > 0 &&\r\n {errors.email}}\r\n \r\n\r\n \r\n \r\n 0 ? \"input-error\" : \"\")} type=\"password\" name=\"password\" id=\"password\" value={user.password || \"\"} onChange={inputChangeHandler} />\r\n {errors.password.length > 0 &&\r\n {errors.password}}\r\n \r\n\r\n \r\n \r\n 0 ? \"input-error\" : \"\")} type=\"password\" name=\"confirmPassword\" id=\"confirmPassword\" value={user.confirmPassword || \"\"} onChange={inputChangeHandler} />\r\n {errors.confirmPassword.length > 0 &&\r\n {errors.confirmPassword}}\r\n \r\n\r\n \r\n\r\n \r\n \r\n
\r\n
\r\n :\r\n
\r\n \r\n \r\n {accountCreated ?\r\n \r\n :\r\n \r\n {error}\r\n \r\n }\r\n \r\n \r\n
\r\n }\r\n
;\r\n}\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Col, Button, Row } from 'reactstrap';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport * as types from '../../constants/actionTypes';\r\nimport * as validations from '../../constants/validations';\r\nimport { FormField } from '../common/FormField';\r\nimport { SectionHeader } from '../common/SectionHeader';\r\nimport { ClientLoggingModel } from '../../models/ClientLoggingModel';\r\n\r\nexport const ForgotPassword = (props) => {\r\n const dispatch = useDispatch();\r\n const emailConfirmation = useSelector((state) => state.user.emailConfirmation);\r\n const emailError = useSelector((state) => state.user.forgotPasswordError);\r\n const [email, setEmail] = useState(\"\");\r\n const [disableButton, setDisableButton] = useState(true);\r\n const userInfo = useSelector((state) => state.user.userInfo);\r\n\r\n const [errors, setErrors] = useState({\r\n email: '',\r\n });\r\n const [clientLoggingModel, setClientLoggingModel] = useState(ClientLoggingModel);\r\n\r\n useEffect(() => {\r\n let valid = validations.validateForm(errors);\r\n\r\n if (email && valid) {\r\n setDisableButton(false);\r\n }\r\n else {\r\n setDisableButton(true);\r\n }\r\n }, [email]);\r\n\r\n const saveInputs = (event) => {\r\n const { value } = event.target;\r\n let errs = { ...errors };\r\n errs.email = validations.validateEmail(value);\r\n setEmail(value);\r\n setErrors(errs);\r\n\r\n }\r\n\r\n const resetPassword = (e) => {\r\n var message = \"Performing API call to perform password reset for \" + email + \".\";\r\n var methodName = \"resetPassword\";\r\n var jsonResult = JSON.stringify(userInfo);\r\n logInfoWrite(message, methodName, jsonResult);\r\n dispatch({ type: types.FORGOT_PASSWORD_START, email: email });\r\n }\r\n\r\n const logInfoWrite = (message, methodName, jsonResult) => {\r\n var loggingModel = {\r\n message: message,\r\n pageName: \"ForgotPassword\",\r\n methodName: methodName,\r\n jsonResult: jsonResult\r\n };\r\n\r\n setClientLoggingModel(loggingModel);\r\n if (clientLoggingModel.methodName !== null) {\r\n dispatch({ type: types.LOG_INFO_START, clientLoggingModel, userInfo });\r\n }\r\n }\r\n\r\n\r\n return
\r\n Forgot Your Password?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { emailConfirmation ?\r\n \r\n \r\n \r\n Your request was successful. You will receive an email that contains instructions on how to reset your password.\r\n \r\n \r\n : \"\"}\r\n {emailError ?\r\n \r\n \r\n \r\n {emailError}\r\n \r\n \r\n : \"\"}\r\n
;\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Col, Button, Row } from 'reactstrap';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport * as types from '../../constants/actionTypes';\r\nimport * as validations from '../../constants/validations';\r\nimport { FormField } from '../common/FormField';\r\nimport { SectionHeader } from '../common/SectionHeader';\r\nimport * as queryString from 'query-string';\r\nimport PropTypes from 'prop-types';\r\nimport { ClientLoggingModel } from '../../models/ClientLoggingModel';\r\n\r\nexport const ResetPassword = (props) => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const resetSuccess = useSelector((state) => state.user.resetSuccess);\r\n const errorWhileChangingPassword = useSelector((state) => state.user.error);\r\n const [newPassword, setNewPassword] = useState(\"\");\r\n const [confirmPassword, setConfirmPassword] = useState(\"\");\r\n const [enableResetButton, setEnableResetButton] = useState(false);\r\n const [params, setParams] = useState(null);\r\n const [clientLoggingModel, setClientLoggingModel] = useState(ClientLoggingModel);\r\n \r\n\r\n const [errors, setErrors] = useState({\r\n newPassword: '',\r\n confirmPassword: '',\r\n });\r\n\r\n useEffect(() => {\r\n const { location } = props; \r\n const locationParams = location.search ? queryString.parse(location.search)\r\n : location.searchParms ? queryString.parse(location.searchParms) : null;\r\n setParams(locationParams);\r\n \r\n }, []);\r\n\r\n useEffect(() => {\r\n let valid = validations.validateForm(errors);\r\n if (valid && newPassword && confirmPassword\r\n ) {\r\n setEnableResetButton(true);\r\n }\r\n else {\r\n setEnableResetButton(false);\r\n }\r\n }, [errors, newPassword, confirmPassword]);\r\n\r\n const saveInputs = (event) => {\r\n const { name, value } = event.target;\r\n let errs = { ...errors };\r\n switch (name) {\r\n case \"newPassword\":\r\n errs.newPassword = validations.validatePassword(value);\r\n if (confirmPassword) {\r\n errs.confirmPassword = validations.validateConfirmPassword(confirmPassword, value);\r\n }\r\n setNewPassword(value);\r\n break;\r\n case \"confirmPassword\":\r\n errs.confirmPassword = validations.validateConfirmPassword(value, newPassword)\r\n setConfirmPassword(value);\r\n break;\r\n }\r\n setErrors(errs);\r\n\r\n }\r\n\r\n\r\n const resetNow = (e) => {\r\n //var loggingModel = {\r\n // message: \"Performing API call to perform password reset for \" + userInfo.userName + \".\",\r\n // pageName: \"ResetPassword\",\r\n // methodName: \"resetNow\",\r\n // jsonResult: JSON.stringify(userInfo)\r\n //};\r\n\r\n var message = \"Performing API call to perform password reset for \" + params.email + \".\";\r\n var methodName = \"resetNow\";\r\n var jsonResult = JSON.stringify(params.email)\r\n\r\n //setClientLoggingModel(loggingModel);\r\n\r\n logInfoWrite(message, methodName, jsonResult);\r\n dispatch({ type: types.RESET_PASSWORD_START, password: newPassword, email: params.email, token: params.token, });\r\n }\r\n\r\n const goToLogin = (e) => {\r\n e.preventDefault();\r\n var message = \"Returning to login page.\";\r\n var methodName = \"goToLogin\";\r\n var jsonResult = JSON.stringify(params.email);\r\n logInfoWrite(message, methodName, jsonResult);\r\n history.push('/');\r\n }\r\n\r\n const logInfoWrite = (message, methodName, jsonResult) => {\r\n var loggingModel = {\r\n message: message,\r\n pageName: \"ResetPassword\",\r\n methodName: methodName,\r\n jsonResult: jsonResult\r\n };\r\n\r\n setClientLoggingModel(loggingModel);\r\n if (clientLoggingModel.methodName !== null) {\r\n dispatch({ type: types.LOG_INFO_START, clientLoggingModel: clientLoggingModel, userInfo: params.email });\r\n }\r\n }\r\n \r\n return
\r\n Reset Your Password\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {resetSuccess ?\r\n \r\n \r\n \r\n Reset password was successful. Click here to login .\r\n \r\n : \"\"}\r\n\r\n {errorWhileChangingPassword ? \r\n \r\n \r\n {errorWhileChangingPassword}\r\n \r\n : \"\"} \r\n
;\r\n}\r\n\r\nResetPassword.propTypes = {\r\n location: PropTypes.object\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Col, Row } from 'reactstrap';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport * as types from '../../constants/actionTypes';\r\nimport * as queryString from 'query-string';\r\nimport PropTypes from 'prop-types';\r\nimport { ClientLoggingModel } from '../../models/ClientLoggingModel';\r\n\r\nexport const ConfirmEmail = (props) => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const emailVerified = useSelector((state) => state.user.emailVerified);\r\n const error = useSelector((state) => state.user.error);\r\n const [confirmationComplete, setConfirmationComplete] = useState(false);\r\n const [clientLoggingModel, setClientLoggingModel] = useState(ClientLoggingModel);\r\n const userInfo = useSelector((state) => { return state.user.userInfo; });\r\n\r\n useEffect(() => {\r\n const { location } = props;\r\n const locationParams = location.search ? queryString.parse(location.search)\r\n : location.searchParms ? queryString.parse(location.searchParms) : null;\r\n var message = \"Performing API call to confirm e-mail address \" + locationParams.email + \".\";\r\n var methodName = \"useEffect[]\";\r\n var jsonResult = JSON.stringify(locationParams.token);\r\n logInfoWrite(message, methodName, jsonResult);\r\n\r\n dispatch({\r\n type: types.CONFIRM_EMAIL_START,\r\n email: locationParams.email, token: locationParams.token\r\n });\r\n }, []);\r\n useEffect(() => {\r\n if (emailVerified || error?.length > 0)\r\n setConfirmationComplete(true);\r\n }, [emailVerified, error]);\r\n\r\n const goToLogin = (e) => {\r\n e.preventDefault();\r\n var message = \"Returning to login page.\";\r\n var methodName = \"goToLogin\";\r\n var jsonResult = JSON.stringify(userInfo);\r\n logInfoWrite(message, methodName, jsonResult);\r\n history.push('/');\r\n }\r\n\r\n const logInfoWrite = (message, methodName, jsonResult) => {\r\n var loggingModel = {\r\n message: message,\r\n pageName: \"ConfirmEmail\",\r\n methodName: methodName,\r\n jsonResult: jsonResult\r\n };\r\n\r\n setClientLoggingModel(loggingModel);\r\n if (clientLoggingModel.methodName !== null) {\r\n dispatch({ type: types.LOG_INFO_START, clientLoggingModel, userInfo });\r\n }\r\n }\r\n\r\n return
\r\n\r\n {confirmationComplete &&\r\n
\r\n \r\n \r\n {emailVerified ?\r\n \r\n Your email has been successfully confirmed. Click here to Login .\r\n \r\n :\r\n \r\n {error}\r\n \r\n }\r\n \r\n \r\n
}\r\n
;\r\n}\r\nConfirmEmail.propTypes = {\r\n location: PropTypes.object\r\n}\r\n\r\n\r\n","import React from 'react';\r\nimport loadingIcon from '../../images/progbar.gif';\r\n\r\nexport const LoadingAnimation = () => {\r\n return
\r\n \"page\r\n
;\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport * as types from \"../../constants/actionTypes\";\r\nimport { Col, Label, Input, Row, Form, Modal, ModalBody, Button, ModalHeader } from 'reactstrap';\r\nimport { useCookies } from 'react-cookie';\r\nimport { ClientLoggingModel } from '../../models/ClientLoggingModel';\r\nimport { LoadingAnimation } from '../common/LoadingAnimation';\r\nimport { VerifyEmail } from '../common/VerifyEmail';\r\nimport { useFeatureFlag } from '../../common/useFeatureFlag';\r\n\r\nexport const Welcome = (props) => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const userInfo = useSelector((state) => state.user.userInfo);\r\n const error = useSelector((state) => state.user.error);\r\n const isFetching = useSelector((state) => state.user.isFetching);\r\n const [username, setUserName] = useState(null);\r\n const [password, setPassword] = useState(null);\r\n const [showCredentialError, setShowCredentialError] = useState(false);\r\n const [cookies, setCookie, removeCookie] = useCookies(['user']);\r\n const [saveEmailChecked, setSaveEmailChecked] = useState(false);\r\n const [pageLoading, setPageLoading] = useState(false);\r\n const [showModal, setShowModal] = useState(false);\r\n //Get the feature flag value on welcome so we can catch it.\r\n const { enabled: credentialingEnabled } = useFeatureFlag('125081_PAMMultipleApplicationsPerUser');\r\n const [clientLoggingModel, setClientLoggingModel] = useState(ClientLoggingModel);\r\n const currentApplication = useSelector((state) => state.professionalApplication.applications);\r\n const isFetchingApp = useSelector((state) => state.professionalApplication.isAppDataFetching);\r\n\r\n useEffect(() => {\r\n if (cookies.saveEmailChecked === \"true\") {\r\n setSaveEmailChecked(true);\r\n if (cookies.userName) {\r\n setUserName(cookies.userName);\r\n }\r\n }\r\n\r\n dispatch({ type: types.GET_TIMEOUT_SETTINGS_START });\r\n }, []);\r\n\r\n useEffect(() => {\r\n let message = \"\";\r\n let methodName = \"useEffect[userInfo, isFetching, error]\";\r\n let jsonResult = \"\";\r\n\r\n if (!isFetching) {\r\n if (userInfo && error === null) {\r\n setShowCredentialError(false);\r\n setCookie('saveEmailChecked', saveEmailChecked, { path: '/', maxAge: 31536000 });\r\n if (saveEmailChecked) {\r\n var date = new Date();\r\n date.setDate(date.getDate() + 30);\r\n setCookie('userName', username, { path: '/', maxAge: 31536000 });\r\n }\r\n else {\r\n removeCookie(\"userName\");\r\n }\r\n\r\n message = \"Getting application data.\";\r\n jsonResult = JSON.stringify(username);\r\n logInfoWrite(message, methodName, jsonResult);\r\n dispatch({ type: types.GET_PROFESSIONAL_APPLICATIONS_START, username: username });\r\n }\r\n else if (userInfo === null && error) {\r\n message = \"Login failure for \" + username + \".\";\r\n jsonResult = JSON.stringify(username);\r\n logWarningWrite(message, methodName, jsonResult);\r\n if (error.includes(\"Email is not confirmed.\")) {\r\n setShowModal(true);\r\n } else {\r\n setShowCredentialError(true);\r\n }\r\n setPageLoading(false);\r\n }\r\n }\r\n }, [userInfo, isFetching, error]);\r\n\r\n useEffect(() => {\r\n console.log(currentApplication);\r\n if (!isFetchingApp) {\r\n let message = \"Application data fetch complete. Navigate to dashboard\";\r\n let jsonResult = JSON.stringify(username);\r\n logWarningWrite(message, \"UserEffect-isFetchingApp\", jsonResult);\r\n setPageLoading(false);\r\n history.push(`/Dashboard`);\r\n }\r\n }, [isFetchingApp]);\r\n\r\n const handleCheckboxChange = (e) => {\r\n setSaveEmailChecked(e);\r\n }\r\n\r\n const goToSignUp = (e) => {\r\n var message = \"Navigating to SignUp page.\";\r\n var methodName = \"goToSignUp\";\r\n var jsonResult = JSON.stringify(username) ?? null;\r\n var loggingModel = {\r\n message: message,\r\n pageName: \"Welcome\",\r\n methodName: methodName,\r\n jsonResult: jsonResult\r\n };\r\n\r\n setClientLoggingModel(loggingModel);\r\n logInfoWrite(message, methodName, jsonResult);\r\n history.push(`/SignUp`);\r\n }\r\n\r\n const goToForgotPassword = (e) => {\r\n e.preventDefault();\r\n var message = \"Navigating to ForgotPassword page.\";\r\n var methodName = \"goToForgotPassword\";\r\n var jsonResult = JSON.stringify(username);\r\n logInfoWrite(message, methodName, jsonResult);\r\n history.push(`/ForgotPassword`);\r\n }\r\n\r\n const goToDashboard = (e) => {\r\n e.preventDefault();\r\n var message = username + \" navigating to Dashboard page.\";\r\n var methodName = \"goToDashboard\";\r\n var jsonResult = JSON.stringify(username);\r\n logInfoWrite(message, methodName, jsonResult);\r\n dispatch({ type: types.SIGNIN_GET_USER_INFO_START, username: username, password: password });\r\n setPageLoading(true);\r\n }\r\n\r\n const logInfoWrite = (message, methodName, jsonResult) => {\r\n let loggingModel = {\r\n message: message,\r\n pageName: \"Welcome\",\r\n methodName: methodName,\r\n jsonResult: jsonResult\r\n };\r\n\r\n setClientLoggingModel(loggingModel);\r\n if (clientLoggingModel.methodName !== null) {\r\n dispatch({ type: types.LOG_INFO_START, clientLoggingModel, userInfo });\r\n }\r\n }\r\n\r\n const logWarningWrite = (message, methodName, jsonResult) => {\r\n var loggingModel = {\r\n message: message,\r\n pageName: \"Welcome\",\r\n methodName: methodName,\r\n jsonResult: jsonResult\r\n };\r\n\r\n setClientLoggingModel(loggingModel);\r\n dispatch({ type: types.LOG_WARNING_START, clientLoggingModel, userInfo });\r\n }\r\n\r\n return
\r\n
\r\n \r\n

Register and Log In

\r\n
\r\n \r\n \r\n
Step 1 - Register
\r\n

Whether you are interested in becoming a contracted provider/facility or\r\n if you are already a contracted provider/facility; we have dedicated staff here to assist you.\r\n

\r\n
\r\n

Our staff can help you with:

\r\n
    \r\n
  • Applications to become a new contracted provider or facility (Facility Coming Soon)
  • \r\n
  • Modify your existing contract (Coming Soon)
  • \r\n
  • Update addresses, phone & fax numbers, etc. (Coming Soon)
  • \r\n
  • Terminate a provider or facility (Coming Soon)
  • \r\n
  • Add providers or facilities to your existing contract (Coming Soon)
  • \r\n
  • Check the status of your application/request
  • \r\n
\r\n
\r\n

The information, tools and resources needed to support your office are on this website.\r\n Please Register to be able to Log In and stay connected with us. Together, we can help you give your patients-and our members-the quality, cost-efficient care they deserve.

\r\n \r\n \r\n \r\n\r\n
Step 2 - Log In
\r\n
\r\n {showCredentialError ?
: \"\"}\r\n {\r\n pageLoading ?\r\n :\r\n
\r\n\r\n setUserName(e.target.value)} />\r\n setPassword(e.target.value)} />\r\n \r\n handleCheckboxChange(e.target.checked)} /> Save Email \r\n Forgot Password? \r\n \r\n\r\n \r\n
\r\n }\r\n \r\n
\r\n \r\n Resources\r\n Helpful Links:\r\n \r\n

Process for joining BSWHP

\r\n

BSWHP FAQ on new Aperture CVO

\r\n \r\n
\r\n
\r\n \r\n { setShowModal(false) }} />} />\r\n \r\n { setShowModal(false) }} />\r\n \r\n \r\n
;\r\n}","import React from 'react';\r\nimport { Button } from 'reactstrap';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport { useFeatureFlag } from '../../common/useFeatureFlag';\r\n\r\nexport const NavLink = (props) => {\r\n let { icon, title, description, button, link, onClickFunction, appId } = props;\r\n const { enabled: multipleApplicationsEnabled } = useFeatureFlag('125081_PAMMultipleApplicationsPerUser');\r\n\r\n if (!link) {\r\n return
\r\n
{title}
\r\n
{description}
\r\n \r\n
;\r\n }\r\n if (multipleApplicationsEnabled) {\r\n return
\r\n
{title}
\r\n
{description}
\r\n \r\n

{button}

\r\n \r\n
;\r\n }\r\n else {\r\n return \r\n

{title}

\r\n
{description}
\r\n ;\r\n }\r\n}\r\n\r\nNavLink.propTypes = {\r\n icon : PropTypes.string,\r\n title: PropTypes.string,\r\n description: PropTypes.string,\r\n button: PropTypes.string,\r\n link: PropTypes.string,\r\n onClickFunction: PropTypes.func\r\n}\r\n\r\n","export const PortalApplicationStatus = {\r\n AdditionalInformationReceived: \"Additional Information Received\",\r\n AdditionalInformationRequestCheckYourEmailForDetails: \"Additional Information Request. Check your email for details.\",\r\n AdditionalInformationRequestCheckYourEmail: \"Additional Information Request. Check your email.\",\r\n AppliedForContract: \"Applied for Contract\",\r\n ContractApproved: \"Contract Approved\",\r\n ContractBeingCreated: \"Contract Being Created\",\r\n ContractReceived: \"Contract Received\",\r\n ContractSignatureAndCredentialingInformationNeedsToBeReturnedToUs: \"Contract Signature and Credentialing information needs to be returned to us.\",\r\n CredentialingComplete: \"Credentialing Complete\",\r\n Denied: \"Denied\",\r\n InCredentialing: \"In Credentialing\",\r\n InReview: \"In Review\",\r\n IncompleteApplicationPleaseCheckYourEmailForDtails: \"Incomplete Application-Please check your email for details.\",\r\n PendingSetUp: \"Pending Set-up\",\r\n PSSNeedsMoreInfoFromPRContracting: \"PSS needs more info from PR/Contracting\",\r\n RequestClosedCheckYourEmail: \"Request Closed-Check your email.\",\r\n Submitted: \"Applied for Contract\",\r\n Drafted: \"Drafted\",\r\n Created: \"Created\",\r\n};\r\n\r\nObject.freeze(PortalApplicationStatus);","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { PortalApplicationStatus } from '../../../constants/PortalApplicationStatus';\r\nimport { Link } from 'react-router-dom';\r\nimport { useHistory } from 'react-router';\r\nimport { CircularProgressbar, buildStyles } from 'react-circular-progressbar';\r\nimport 'react-circular-progressbar/dist/styles.css';\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faTrash, faAngleDown, faAngleRight } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { Button, Modal, ModalBody, ModalFooter } from 'reactstrap';\r\nimport { DataGrid } from '@mui/x-data-grid';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport * as types from '../../../constants/actionTypes';\r\nimport { useCookies } from 'react-cookie';\r\nimport { ClientLoggingModel } from '../../../models/ClientLoggingModel';\r\n\r\nexport const ApplicationStatus = (props) => {\r\n let { status, description, percentComplete, appId, app } = props;\r\n const [rows, setRows] = useState([]);\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const [cookies, setCookie] = useCookies(['isFormDataSaved']);\r\n const [clientLoggingModel, setClientLoggingModel] = useState(ClientLoggingModel);\r\n const userInfo = useSelector((state) => state.user.userInfo);\r\n const applicationDetails = useSelector((state) => state.professionalApplication.applicationDetails);\r\n const [applicationBeingUpdated, setApplicationBeingUpdated] = useState(false);\r\n\r\n const initModal = {\r\n modalOpen: false,\r\n modalBody: '',\r\n modalButtonText: '',\r\n modalButtonClick: () => { },\r\n };\r\n const [modal, setModal] = useState(initModal);\r\n const toggle = () => setModal(initModal);\r\n\r\n const [isCollapsed, setIsCollapsed] = useState(false);\r\n let statusClass = \"application-status-pending\";\r\n if (app) {\r\n if (app.portalStatus === PortalApplicationStatus.Drafted || app.portalStatus === PortalApplicationStatus.Created) {\r\n statusClass = \"application-status-notSubmitted\";\r\n }\r\n else if (app.percentComplete === 100 && app.portalStatus !== PortalApplicationStatus.ContractApproved) {\r\n statusClass = \"application-status-denied\";\r\n }\r\n else if (app.percentComplete === 100 && app.portalStatus === PortalApplicationStatus.ContractApproved) {\r\n statusClass = \"application-status-approved\";\r\n }\r\n }\r\n let pathColor = \"#0078d4\";\r\n if (percentComplete === 100 && status !== PortalApplicationStatus.ContractApproved) {\r\n pathColor = \"#ffa366\";\r\n }\r\n else if (percentComplete === 100 && status === PortalApplicationStatus.ContractApproved) {\r\n pathColor = \"#009900\";\r\n }\r\n\r\n const logInfoWrite = (message, methodName, jsonResult) => {\r\n let loggingModel = {\r\n message: message,\r\n pageName: \"ProviderInformation\",\r\n methodName: methodName,\r\n jsonResult: jsonResult\r\n };\r\n\r\n setClientLoggingModel(loggingModel);\r\n if (clientLoggingModel.methodName !== null) {\r\n dispatch({ type: types.LOG_INFO_START, clientLoggingModel, userInfo });\r\n }\r\n }\r\n\r\n const deleteApplication = (app) => {\r\n setModal({\r\n modalOpen: true,\r\n modalBody: 'Are you sure that you want to permanently delete this application? It cannot be restored after it is deleted.',\r\n modalButtonText: 'Okay',\r\n modalButtonClick: () => { modalDeleteApplication(app) }\r\n });\r\n }\r\n const modalDeleteApplication = (app) => { //DELETE confirmed\r\n var message = \"Deleting professional application.\";\r\n var methodName = \"modalDeleteApplication\";\r\n var jsonResult = JSON.stringify(app);\r\n logInfoWrite(message, methodName, jsonResult);\r\n setCookie('isFormDataSaved', 'true', { path: '/', maxAge: 31536000 });\r\n dispatch({ type: types.DELETE_PROFESSIONAL_APPLICATION_START, id: app.id });\r\n toggle();\r\n }\r\n\r\n const toggleProviderTable = () => {\r\n setIsCollapsed(!isCollapsed);\r\n }\r\n\r\n const updateApplication = (applicationId) => {\r\n dispatch({ type: types.GET_APPLICATION_DETAILS_START, appId: applicationId });\r\n setApplicationBeingUpdated(true);\r\n }\r\n\r\n useEffect(() => {\r\n if (applicationDetails && applicationBeingUpdated) {\r\n history.push(\"/practiceInformation\");\r\n }\r\n }, [applicationDetails])\r\n\r\n useEffect(() => {\r\n if (app) {\r\n let rowArray = [];\r\n if (app?.providerSummary) {\r\n let list = app?.providerSummary;\r\n for (var i = 0; i < list.length; i++) {\r\n let nm = list[i].name + \" \" + (list[i].lastName ? list[i].lastName : \"\");\r\n rowArray.push({\r\n id: list[i].providerGUID,\r\n name: nm,\r\n npi: list[i].npi\r\n });\r\n\r\n }\r\n }\r\n setRows(rowArray);\r\n }\r\n }, [app]);\r\n\r\n const columns = [\r\n {\r\n field: 'name',\r\n headerName: 'Provider Name',\r\n flex: 1,\r\n headerClassName: 'tileGrid-header',\r\n headerAlign: 'center',\r\n align: 'center',\r\n },\r\n {\r\n field: 'npi',\r\n headerName: 'NPI',\r\n type: 'number',\r\n flex: 1,\r\n headerClassName: 'tileGrid-header',\r\n headerAlign: 'center',\r\n align: 'center',\r\n },\r\n\r\n ];\r\n\r\n if (app) {\r\n if (app.portalStatus === PortalApplicationStatus.Drafted || app.portalStatus === PortalApplicationStatus.Created) {\r\n return
\r\n
\r\n
\r\n {app.legalName}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
{\"NPI: \" + app.groupNpi}
\r\n
{\"Tax Id: \" + app.taxId}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {isCollapsed ? \r\n : }\r\n
\r\n
\r\n Providers\r\n
\r\n
\r\n {isCollapsed ? \"\" :\r\n
\r\n (\r\n
\r\n No provider data saved\r\n
\r\n ),\r\n\r\n }}\r\n />\r\n
\r\n }\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n {modal.modalBody}\r\n \r\n \r\n {' '}\r\n \r\n \r\n \r\n
\r\n }\r\n return
\r\n
\r\n {app.legalName}\r\n
\r\n\r\n
\r\n
\r\n
{\"NPI: \" + app.groupNpi}
\r\n
{\"Tax Id: \" + app.taxId}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{\"Submitted - \" + app.portalStatus}
\r\n
{app.providerDefinition}
\r\n
\r\n
\r\n
\r\n
\r\n {isCollapsed ? \r\n : }\r\n
\r\n
\r\n Providers\r\n
\r\n
\r\n {isCollapsed ? \"\" :\r\n
\r\n (\r\n
\r\n No provider data saved\r\n
\r\n )\r\n }}\r\n />\r\n
\r\n }\r\n
\r\n
\r\n }\r\n else {\r\n if (status === \"Drafted\" || status === \"Created\") {\r\n return
\r\n
\r\n Please select Update Application to continue your application.\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n }\r\n if (status) {\r\n return
\r\n
\r\n \r\n
\r\n
\r\n
{status}
\r\n
{description}
\r\n
\r\n
;\r\n }\r\n\r\n return
\r\n
Please select New Application to start a new application
\r\n
;\r\n }\r\n\r\n}\r\n\r\nApplicationStatus.propTypes = {\r\n status: PropTypes.string,\r\n description: PropTypes.string,\r\n percentComplete: PropTypes.number,\r\n app: PropTypes.object,\r\n}\r\n","import React from 'react';\r\nimport loadingCircle from '../../images/loading_symbol_3.gif';\r\n\r\nexport const LoadingCircle = () => {\r\n return
\r\n \"page\r\n
;\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory, useLocation } from 'react-router';\r\nimport { Modal, ModalBody, FormGroup, Label, Input, ModalFooter, Button } from 'reactstrap';\r\nimport * as types from '../../../constants/actionTypes';\r\nimport * as validators from '../../../constants/validations';\r\nimport { ClientLoggingModel } from '../../../models/ClientLoggingModel';\r\nimport { baseHoursOfOperation } from '../../../models/ProfessionalApplication';\r\nimport { useCookies } from 'react-cookie';\r\nimport { LoadingCircle } from '../../common/LoadingCircle';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport const TaxIdModal = (props) => {\r\n let { showTinModal, closeModal, changeTaxId, initTaxId } = props;\r\n\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const location = useLocation();\r\n const [cookies, setCookie] = useCookies(['isFormDataSaved']);\r\n\r\n const [clientLoggingModel, setClientLoggingModel] = useState(ClientLoggingModel);\r\n\r\n const [taxId, setTaxId] = useState(initTaxId ? initTaxId : \"\");\r\n const [tinIsApproved, setTinIsApproved] = useState(false);\r\n const [taxIdError, setTaxIdError] = useState(\"\");\r\n const taxIdInUse = useSelector((state) => state.user.taxIdInUse);\r\n const taxIdApiError = useSelector((state) => state.user.taxIdError);\r\n const isFetching = useSelector((state) => state.user.isFetching);\r\n const userInfo = useSelector((state) => state.user.userInfo);\r\n const username = useSelector((state) => {\r\n return state.user.userInfo ? state.user.userInfo.userName : \"\";\r\n });\r\n\r\n useEffect(() => {\r\n if (!isFetching) {\r\n if (taxIdInUse) {\r\n setTaxIdError(taxIdInUse);\r\n }\r\n else if (taxIdApiError) {\r\n setTaxIdError(\"An api error occurred. Please try again later\");\r\n }\r\n }\r\n }, [taxIdInUse, taxIdApiError]);\r\n\r\n useEffect(() => {\r\n if (isFetching) {\r\n return;\r\n }\r\n if (taxId.length === 9 && !taxIdError && !taxIdInUse && !taxIdApiError) {\r\n setTinIsApproved(true);\r\n }\r\n else {\r\n setTinIsApproved(false);\r\n }\r\n }, [taxId, taxIdError, taxIdInUse, taxIdApiError, isFetching]);\r\n\r\n const logInfoWrite = (message, methodName, jsonResult) => {\r\n var loggingModel = {\r\n message: message,\r\n pageName: \"Dashboard\",\r\n methodName: methodName,\r\n jsonResult: jsonResult\r\n };\r\n\r\n setClientLoggingModel(loggingModel);\r\n if (clientLoggingModel.methodName !== null) {\r\n dispatch({ type: types.LOG_INFO_START, clientLoggingModel, userInfo });\r\n }\r\n }\r\n\r\n const validateTaxId = event => {\r\n let { value } = event.target;\r\n let message = \"\";\r\n let methodName = \"inputChangeHandler\";\r\n let jsonResult = \"\";\r\n\r\n setTaxId(value);\r\n let taxIdErr = validators.validateTaxId(value);\r\n if (taxIdErr === '') {\r\n message = \"Performing API call to validate tax ID \" + value + \".\";\r\n jsonResult = JSON.stringify(value);\r\n logInfoWrite(message, methodName, jsonResult);\r\n }\r\n\r\n if (taxIdErr === '') {\r\n dispatch({ type: types.SIGNUP_GET_TAX_ID_START, taxId: value })\r\n }\r\n setTaxIdError(taxIdErr);\r\n }\r\n\r\n const navigateToNewApplication = () => {\r\n if (!tinIsApproved) {\r\n return;\r\n }\r\n let newApplication = {\r\n providerType: \"\",\r\n username: username,\r\n legalName: null,\r\n doingBusinessAsName: null,\r\n groupNpi: null,\r\n groupSpecialty: null,\r\n taxId: taxId,\r\n tpi: null,\r\n medicareNumber: null,\r\n providerCount: null,\r\n hoursOfOperation: baseHoursOfOperation,\r\n practiceLimitations: null\r\n };\r\n dispatch({ type: types.INITIALIZE_PROFESSIONAL_APPLICATION, application: newApplication });\r\n dispatch({ type: types.STORE_APPLICATION, applicationBeingUpdated: newApplication });\r\n setCookie('isFormDataSaved', 'false', { path: '/', maxAge: 31536000 });\r\n history.push(\"/practiceInformation\");\r\n }\r\n\r\n const updateTin = () => {\r\n changeTaxId(taxId);\r\n setTaxId(\"\");\r\n setTaxIdError(\"\");\r\n closeModal();\r\n }\r\n\r\n const resetModal = () => {\r\n if (taxIdInUse) {\r\n dispatch({ type: types.SIGNUP_GET_TAX_ID_CANCEL });\r\n }\r\n setTaxId(\"\");\r\n setTaxIdError(\"\");\r\n closeModal();\r\n }\r\n\r\n const continueClick = () => {\r\n let pathName = location.pathname;\r\n console.log(pathName);\r\n if (pathName === '/practiceInformation') {\r\n updateTin();\r\n }\r\n else if (pathName === '/Dashboard') {\r\n navigateToNewApplication();\r\n }\r\n else {\r\n resetModal();\r\n }\r\n\r\n }\r\n\r\n return \r\n \r\n \r\n \r\n 0 ? \"input-error\" : \"\")} type=\"text\" name=\"taxId\" id=\"taxId\" value={taxId || \"\"} onChange={validateTaxId} autoComplete=\"off\" maxLength=\"9\" />\r\n {taxIdError.length > 0 &&\r\n {taxIdError}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n}\r\n\r\nTaxIdModal.propTypes = {\r\n showTinModal: PropTypes.bool,\r\n closeModal: PropTypes.func,\r\n changeTaxId: PropTypes.func,\r\n initTaxId: PropTypes.string\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { NavLink } from '../common/NavLink';\r\nimport { ApplicationStatus } from './Dashboard/ApplicationStatus';\r\nimport * as types from '../../constants/actionTypes';\r\nimport { LoadingAnimation } from '../common/LoadingAnimation';\r\nimport { SectionHeader } from '../common/SectionHeader';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { ClientLoggingModel } from '../../models/ClientLoggingModel';\r\nimport { Row, Form } from 'reactstrap';\r\nimport { useFeatureFlag } from '../../common/useFeatureFlag';\r\nimport { TaxIdModal } from './Dashboard/TaxIdModal';\r\nimport { PortalApplicationStatus } from '../../constants/PortalApplicationStatus';\r\nimport { faAngleDown, faAngleRight } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n\r\nexport const Dashboard = () => {\r\n const { enabled: multipleApplicationsEnabled } = useFeatureFlag('125081_PAMMultipleApplicationsPerUser');\r\n const dispatch = useDispatch();\r\n const messageCount = useSelector((state) => state.dashboard.messageCount);\r\n const applications = useSelector((state) => state.professionalApplication.applications);\r\n const currentApplication = applications !== null && applications.length > 0 ? applications[0] : applications;\r\n const status = currentApplication?.portalStatus;\r\n const description = currentApplication?.providerDefinition;\r\n const percentComplete = currentApplication?.percentComplete;\r\n const appId = currentApplication?.id;\r\n const [isNotsubmittedCollapsed, setIsNotsubmittedCollapsed] = useState(false);\r\n const [isSubmittedCollapsed, setIsSubmittedCollapsed] = useState(true);\r\n const [isClosedCollapsed, setIsClosedCollapsed] = useState(true);\r\n\r\n const userInfo = useSelector((state) => state.user.userInfo);\r\n const history = useHistory();\r\n if (!userInfo) {\r\n history.push(\"/\")\r\n }\r\n\r\n const [clientLoggingModel, setClientLoggingModel] = useState(ClientLoggingModel);\r\n const [showTinModal, setShowTinModal] = useState(false);\r\n const [submittedApplications, setSubmittedApplications] = useState([]);\r\n const [closedApplications, setClosedApplications] = useState([]);\r\n const [notSubmittedApplications, setNotSubmittedApplications] = useState([]);\r\n\r\n\r\n useEffect(() => {\r\n var message = \"Getting existing professional contract application, getting contract status, getting dashboard messages.\";\r\n var methodName = \"useEffect[]\";\r\n var jsonResult = JSON.stringify(userInfo);\r\n logInfoWrite(message, methodName, jsonResult);\r\n dispatch({ type: types.WELCOME_COMPLETE });\r\n dispatch({ type: types.DASHBOARD_GET_APPLICATION_STATUS });\r\n dispatch({ type: types.DASHBOARD_GET_MESSAGES });\r\n }, []);\r\n\r\n\r\n useEffect(() => {\r\n let closedApps = applications?.filter(function (app) {\r\n return (app.percentComplete === 100);\r\n });\r\n\r\n let notSubmittedApps = applications?.filter(function (app) {\r\n return (app.portalStatus === PortalApplicationStatus.Drafted || app.portalStatus === PortalApplicationStatus.Created);\r\n });\r\n\r\n let submittedApps = applications?.filter(function (app) {\r\n return (app.portalStatus !== PortalApplicationStatus.Drafted && app.portalStatus !== PortalApplicationStatus.Created && app.percentComplete !== 100);\r\n });\r\n\r\n setClosedApplications(closedApps);\r\n setNotSubmittedApplications(notSubmittedApps);\r\n setSubmittedApplications(submittedApps);\r\n }, [applications]);\r\n\r\n let linkArray = [];\r\n if (!currentApplication || currentApplication?.length === 0) {\r\n linkArray = [{ icon: \"file-new\", title: \"New Application\", link: \"/practiceInformation\", description: \"\" }];\r\n }\r\n\r\n let getMessageCenter = () => {\r\n if (messageCount && messageCount > 0) {\r\n return
{messageCount}
\r\n }\r\n return \"\";\r\n\r\n }\r\n\r\n const toggleNotSubmittedGrouping = () => {\r\n setIsNotsubmittedCollapsed(!isNotsubmittedCollapsed);\r\n }\r\n\r\n const toggleSubmittedGrouping = () => {\r\n setIsSubmittedCollapsed(!isSubmittedCollapsed);\r\n }\r\n\r\n const toggleClosedGrouping = () => {\r\n setIsClosedCollapsed(!isClosedCollapsed);\r\n }\r\n\r\n const logInfoWrite = (message, methodName, jsonResult) => {\r\n var loggingModel = {\r\n message: message,\r\n pageName: \"Dashboard\",\r\n methodName: methodName,\r\n jsonResult: jsonResult\r\n };\r\n\r\n setClientLoggingModel(loggingModel);\r\n if (clientLoggingModel.methodName !== null) {\r\n dispatch({ type: types.LOG_INFO_START, clientLoggingModel, userInfo });\r\n }\r\n }\r\n\r\n const displayApplications = () => {\r\n return
\r\n
\r\n \r\n
\r\n { setShowTinModal(true) }}\r\n />\r\n
\r\n
\r\n \r\n
\r\n
\r\n Not Submitted\r\n
\r\n
\r\n {isNotsubmittedCollapsed ? \r\n : }\r\n
\r\n
\r\n {isNotsubmittedCollapsed ? \"\" :\r\n notSubmittedApplications?.map((app, index) => {\r\n return (
\r\n \r\n
)\r\n })}\r\n
\r\n \r\n
\r\n
\r\n Submitted\r\n
\r\n
\r\n {isSubmittedCollapsed ? \r\n : }\r\n
\r\n
\r\n {isSubmittedCollapsed ? \"\" :\r\n submittedApplications?.map((app, index) => {\r\n return (
\r\n \r\n
)\r\n })\r\n }\r\n
\r\n \r\n
\r\n
\r\n Closed \r\n
\r\n
\r\n {isClosedCollapsed ? \r\n : }\r\n
\r\n
\r\n {isClosedCollapsed ? \"\" : closedApplications?.map((app, index) => {\r\n return (
\r\n \r\n
)\r\n }) }\r\n
\r\n
\r\n
\r\n }\r\n\r\n const displayApplication = () => {\r\n return
\r\n {linkArray?.length > 0 &&
What would you like to do?
}\r\n \r\n
\r\n {linkArray.map((link, index) => {\r\n return
\r\n {link.title === \"Message Center\" && getMessageCenter()}\r\n \r\n
;\r\n\r\n })}\r\n
\r\n
\r\n }\r\n\r\n return
\r\n Welcome!\r\n {multipleApplicationsEnabled ? displayApplications() : displayApplication()}\r\n { setShowTinModal(false) }} />\r\n
;\r\n}","import React from 'react';\r\nimport { Row, Col, Button } from 'reactstrap';\r\nimport PropTypes from 'prop-types';\r\nimport { useCookies } from 'react-cookie';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport * as types from '../../../../constants/actionTypes';\r\nimport { validateRequiredFields } from '../../../../constants/validations';\r\n\r\nexport const NavigationFooter = (props) => {\r\n let { onNextPageClick, submitIsDisplayed = false, onSaveClick, onBackButtonClick, BackButtonIsDisplayed = true, isButtonDisabled = false,\r\n isValidData = (() => alert(\"isValidData not defined\")), requiredFields } = props;\r\n\r\n const [cookies, setCookie] = useCookies(['isFormDataSaved']);\r\n const dispatch = useDispatch();\r\n\r\n const userInfo = useSelector((state) => state.user.userInfo);\r\n\r\n const logInfoWrite = (message, methodName, jsonResult) => {\r\n let loggingModel = {\r\n message: message,\r\n pageName: \"PracticeInformation\",\r\n methodName: methodName,\r\n jsonResult: jsonResult\r\n };\r\n\r\n if (loggingModel.methodName !== null) {\r\n dispatch({ type: types.LOG_INFO_START, loggingModel, userInfo });\r\n }\r\n }\r\n\r\n const navigateBack = () => {\r\n\r\n if (cookies.isFormDataSaved === \"false\") {\r\n if (!window.confirm(\"Unsaved changes will be lost, Do you want to Continue?\")) {\r\n return;\r\n }\r\n }\r\n\r\n var message = BackButtonIsDisplayed ? \"Navigating back in form\" : \"Returning to dashboard page.\";\r\n var methodName = \"onBackButtonClick\";\r\n var jsonResult = JSON.stringify(userInfo);\r\n logInfoWrite(message, methodName, jsonResult);\r\n\r\n onBackButtonClick();\r\n }\r\n\r\n const saveData = () => {\r\n if (!isValidData()) {\r\n alert(\"Please correct errors on form before saving.\");\r\n return;\r\n }\r\n onSaveClick();\r\n }\r\n\r\n const navigateNext = () => {\r\n let missingField = validateRequiredFields(requiredFields);\r\n if (missingField !== '') {\r\n alert(missingField + \" is missing. Please enter value and try again.\");\r\n return;\r\n }\r\n if (!isValidData()) {\r\n alert(\"Please correct errors on form before saving.\");\r\n return;\r\n }\r\n\r\n var message = submitIsDisplayed ? \"Submitting Form\" : \"Navigating to Next page.\";\r\n var methodName = \"onNextButtonClick\";\r\n var jsonResult = JSON.stringify(userInfo);\r\n logInfoWrite(message, methodName, jsonResult);\r\n\r\n\r\n onNextPageClick();\r\n }\r\n\r\n return \r\n \r\n \r\n \r\n \r\n \r\n \r\n ;\r\n}\r\n\r\nNavigationFooter.propTypes = {\r\n onNextPageClick: PropTypes.func,\r\n submitIsDisplayed: PropTypes.bool,\r\n onSaveClick: PropTypes.func,\r\n onBackButtonClick: PropTypes.func,\r\n BackButtonIsDisplayed: PropTypes.bool,\r\n isValidData: PropTypes.func,\r\n requiredFields: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n key: PropTypes.string,\r\n value: PropTypes.any\r\n })\r\n )\r\n};\r\n\r\nexport const scrollToTop = () => {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: \"smooth\"\r\n });\r\n}\r\n\r\n","import React from 'react';\r\nimport { Col, Row } from 'reactstrap';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport const SubSectionHeader = (props) => {\r\n let { children } = props;\r\n return \r\n \r\n {children}\r\n \r\n ;\r\n}\r\n\r\nSubSectionHeader.propTypes = {\r\n children: PropTypes.node\r\n}","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Alert } from 'reactstrap';\r\n\r\nexport const CustomAlert = (props) => {\r\n let { type } = props;\r\n\r\n const [visible, setVisible] = useState(true);\r\n const onDismiss = () => setVisible(false);\r\n\r\n useEffect(() => {\r\n setVisible(true);\r\n window.setTimeout(() => {\r\n setVisible(false);\r\n }, 5000);\r\n }, [])\r\n\r\n return (\r\n \r\n {type === \"success\" ? \"Changes saved successfully.\"\r\n : type === \"danger\" ? \"Error occured while saving. Please try again.\"\r\n : \"\"}\r\n \r\n );\r\n}\r\n\r\nCustomAlert.propTypes = {\r\n type: PropTypes.string\r\n}","import React, { useState, useEffect, useRef } from 'react';\r\nimport { Col, FormGroup, Label, Row } from 'reactstrap';\r\nimport { validateForNotNullOrWhitespace, validateCityName, validateZipWithPlus4, validatePhone, validateFax, validateMedicaid, validateNpi, validateNA } from '../../../../constants/validations';\r\nimport { FormField } from '../../../common/FormField';\r\nimport InputMask from 'react-input-mask';\r\nimport PropTypes from 'prop-types';\r\nimport { Typeahead } from 'react-bootstrap-typeahead';\r\n\r\nexport const AddressForm = (props) => {\r\n let { address, errors, setAddress, setErrors, showNpiAndMedicare, stateList, countyList, validateNpiChange, childKey } = props;\r\n const stateInputRef = useRef();\r\n const countyInputRef = useRef();\r\n\r\n const stateName = stateList.find(state => state.value === address?.state)?.label;\r\n const countyOptions = countyList && address?.state ? countyList[stateName] : [];\r\n const [countyRequiredError, setCountyRequiredError] = useState(null);\r\n\r\n const [stateListTypeahead, setStateListTypeahead] = useState(\r\n address.state\r\n ? [stateList.find(state => state.value === address.state)]\r\n : []\r\n );\r\n const [countyListTypeahead, setCountyListTypeahead] = useState([address.county])\r\n\r\n useEffect(() => {\r\n\r\n setStateListTypeahead(address.state\r\n ? [stateList.find(state => state.value === address.state)]\r\n : [])\r\n\r\n setCountyListTypeahead(address.county? [address.county]:[])\r\n\r\n\r\n }, [address]);\r\n \r\n const onStateListBlur = () => {\r\n var text = stateInputRef.current.state.text;\r\n if (text) {\r\n var item = stateList.find((s) => { return (s.value.toLowerCase() === text.toLowerCase() || s.label.toLowerCase() === text.toLowerCase()) })\r\n if (item) {\r\n onStateListTypeaheadChange([item]);\r\n }\r\n else {\r\n stateInputRef.current.clear();\r\n }\r\n }\r\n }\r\n\r\n const onStateListTypeaheadChange = (selectedState) => {\r\n setStateListTypeahead(selectedState)\r\n\r\n let newError = '';\r\n if (selectedState.length === 0) {\r\n newError = validateForNotNullOrWhitespace(selectedState[0]);\r\n setErrors({ ...errors, ['state']: newError });\r\n }\r\n setErrors({ ...errors, ['state']: newError });\r\n\r\n let field = address;\r\n field.state = selectedState[0]?.value;\r\n field.county = '';\r\n setAddress(field);\r\n setCountyListTypeahead([])\r\n\r\n }\r\n\r\n const onCountyListBlur = () => {\r\n var text = countyInputRef.current.state.text;\r\n if (text) {\r\n var index = countyOptions.findIndex(item => item.toLowerCase() === text.toLowerCase());\r\n var item = countyOptions[index];\r\n if (item) {\r\n onCountyListTypeaheadChange([item]);\r\n }\r\n else {\r\n countyInputRef.current.clear();\r\n }\r\n }\r\n }\r\n const onCountyListTypeaheadChange = (selectedCounty) => {\r\n setCountyListTypeahead(selectedCounty)\r\n setAddress({\r\n ...address,\r\n county: selectedCounty && selectedCounty.length > 0 ? selectedCounty[0] : \"\"\r\n });\r\n\r\n setCountyRequiredError(validateForNotNullOrWhitespace(selectedCounty[0]));\r\n }\r\n\r\n const onFieldChange = (event, field) => {\r\n let newError = '';\r\n let newValue = event.target.value;\r\n\r\n if (field === \"zip\") {\r\n newError = validateZipWithPlus4(newValue);\r\n\r\n setErrors({ ...errors, [field]: newError });\r\n\r\n let zipCode = '';\r\n let zipPlus4 = '';\r\n\r\n if (newValue.length < 5) {\r\n zipCode = newValue;\r\n }\r\n else {\r\n zipCode = newValue.substring(0, 5);\r\n zipPlus4 = newValue.substring(6);\r\n }\r\n\r\n setAddress({ ...address, zipCode, zipPlus4 });\r\n return;\r\n }\r\n switch (field) {\r\n case \"streetLine1\":\r\n newError = validateNA(newValue);\r\n break;\r\n case \"city\":\r\n newError = validateCityName(newValue);\r\n break;\r\n case \"phone\":\r\n newError = validatePhone(newValue);\r\n break;\r\n case \"fax\":\r\n newError = validateFax(newValue);\r\n break;\r\n case \"npi\":\r\n newError = validateNpi(newValue);\r\n if (newError === '' && newValue) {\r\n validateNpiChange(newValue);\r\n }\r\n break;\r\n case \"medicaidNumber\":\r\n newError = validateMedicaid(newValue);\r\n break;\r\n default:\r\n break;\r\n\r\n }\r\n setErrors({ ...errors, [field]: newError });\r\n setAddress({ ...address, [field]: newValue });\r\n }\r\n\r\n return
\r\n \r\n \r\n { onFieldChange(e, \"streetLine1\") }}\r\n maxLength={55}\r\n />\r\n \r\n \r\n \r\n \r\n { onFieldChange(e, \"city\") }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {errors.county &&\r\n {errors.county}}\r\n {countyRequiredError &&\r\n {countyRequiredError}}\r\n \r\n \r\n \r\n \r\n { onFieldChange(e, \"zip\") }} autoComplete=\"off\" className=\"zipInputMask, form-control\" placeholder=\"XXXXX-XXXX\" />\r\n {errors.zip &&\r\n {errors.zip}}\r\n \r\n \r\n \r\n \r\n \r\n { onFieldChange(e, \"phone\") }}\r\n autoComplete=\"off\" className=\"phoneInputMask, form-control\" placeholder=\"XXX-XXX-XXXX\" />\r\n {errors.phone &&\r\n {errors.phone}}\r\n \r\n \r\n \r\n \r\n \r\n { onFieldChange(e, \"fax\") }} autoComplete=\"off\" className=\"phoneInputMask, form-control\" placeholder=\"XXX-XXX-XXXX\" />\r\n {errors.fax &&\r\n {errors.fax}}\r\n \r\n \r\n \r\n {showNpiAndMedicare && < Row >\r\n \r\n { onFieldChange(e, \"npi\") }}\r\n />\r\n \r\n \r\n { onFieldChange(e, \"medicaidNumber\") }}\r\n />\r\n \r\n }\r\n
\r\n}\r\n\r\nAddressForm.propTypes = {\r\n address: PropTypes.object,\r\n errors: PropTypes.object,\r\n setAddress: PropTypes.func,\r\n setErrors: PropTypes.func,\r\n showNpiAndMedicare: PropTypes.bool,\r\n stateList: PropTypes.array,\r\n countyList: PropTypes.array,\r\n validateNpiChange: PropTypes.func,\r\n childKey: PropTypes.string\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Modal, ModalBody, ModalFooter, Button, Col, Form, Label, Input, Row } from 'reactstrap';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport * as types from '../../../../constants/actionTypes';\r\nimport * as lists from '../../../../constants/listType';\r\nimport { validateForm } from '../../../../constants/validations';\r\nimport { NavigationFooter, scrollToTop } from '../Common/NavigationFooter';\r\nimport { DataGrid } from '@mui/x-data-grid';\r\nimport { SectionHeader } from '../../../common/SectionHeader';\r\nimport { SubSectionHeader } from '../../../common/SubSectionHeader';\r\nimport { InitPracticeLocation } from '../../../../models/ProfessionalApplication';\r\nimport { CustomAlert } from '../../../common/CustomAlert';\r\nimport { AddressForm } from '../Common/AddressForm';\r\nimport { LoadingAnimation } from '../../../common/LoadingAnimation';\r\nimport { useCookies } from 'react-cookie';\r\nimport { ClientLoggingModel } from '../../../../models/ClientLoggingModel';\r\nimport uuid from 'react-uuid';\r\n\r\nexport const PracticeLocationInfo = (props) => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const [navigation, setNavigation] = useState(null);\r\n const [cookies, setCookie] = useCookies(['isFormDataSaved']);\r\n const [showAlert, setShowAlert] = useState(\"\");\r\n let application = useSelector((state) => state.professionalApplication.applicationBeingUpdated);\r\n const isFetching = useSelector((state) => state.user.isFetching);\r\n const npiIsValid = useSelector((state) => state.user.npiIsValid);\r\n const [npiField, setNpiField] = useState(null);\r\n const [clientLoggingModel, setClientLoggingModel] = useState(ClientLoggingModel);\r\n\r\n const userInfo = useSelector((state) => state.user.userInfo);\r\n if (!userInfo) {\r\n history.push(\"/\")\r\n }\r\n\r\n const stateList = useSelector((state) => state.professionalApplication.stateList);\r\n const stateListSelections = stateList\r\n ? stateList.items.map((s) => { return { value: s.code, label: s.name } })\r\n : [];\r\n\r\n const practiceLocations = application?.practiceLocations ? application?.practiceLocations : [];\r\n const [primaryLocation, setPrimaryLocation] = useState(practiceLocations.length > 0 ? practiceLocations.find(l => l.type === \"Primary\") : { ...InitPracticeLocation, type: \"Primary\" });\r\n const [primaryLocationErrors, setPrimaryLocationErrors] = useState(InitPracticeLocation);\r\n\r\n const [billingLocation, setBillingLocation] = useState(practiceLocations.length > 0 ? practiceLocations.find(l => l.type === \"Billing\") : { ...InitPracticeLocation, type: \"Billing\" });\r\n const [billingLocationErrors, setBillingLocationErrors] = useState(InitPracticeLocation);\r\n\r\n const [mailingLocation, setMailingLocation] = useState(practiceLocations.length > 0 ? practiceLocations.find(l => l.type === \"Mailing\") : { ...InitPracticeLocation, type: \"Mailing\" });\r\n const [mailingLocationErrors, setMailingLocationErrors] = useState(InitPracticeLocation);\r\n\r\n const [billingSameAsPrimaryAddress, setBillingAddressSameAsPrimary] = useState(false);\r\n const [mailingSameAsPrimaryAddress, setMailingAddressSameAsPrimary] = useState(false);\r\n const [billingChecked, setBillingChecked] = useState(true);\r\n const [mailingChecked, setMailingChecked] = useState(true);\r\n const [pageLoading, setPageLoading] = useState(true);\r\n\r\n const countyMap = useSelector((state) => state.professionalApplication.countyLookup);\r\n\r\n const getState = (code) => {\r\n if (code?.length > 0 && stateList)\r\n return stateList.items.filter(selectedState => selectedState.code === code)[0].name;\r\n else\r\n return \"\";\r\n }\r\n\r\n const apiErrors = useSelector((state) => state.professionalApplication.error);\r\n const [modalFormIsValid, setModalFormIsValid] = useState(false);\r\n const [viewAdditionalLocationModal, setViewAdditionalLocationModal] = useState(false);\r\n const [additionalLocationForGrid, setAdditionalLocationForGrid] = useState({ ...InitPracticeLocation, type: \"Alternate\" });\r\n const [additionalLocationErrors, setAdditionalLocationErrors] = useState(InitPracticeLocation);\r\n\r\n useEffect(() => {\r\n if (validateAddress(additionalLocationForGrid, true) && validateForm(additionalLocationErrors)) {\r\n setModalFormIsValid(true);\r\n }\r\n else {\r\n setModalFormIsValid(false);\r\n }\r\n }, [additionalLocationForGrid, additionalLocationErrors]);\r\n\r\n const [rows, setRows] = useState([]);\r\n const [editingAdditionalAddress, setEditingAdditionalAddress] = useState(false);\r\n const [rowIdBeingEdited, setRowIdBeingEdited] = useState(\"-1\");\r\n\r\n const toggleViewAdditionalLocationModal = () => { setViewAdditionalLocationModal(!viewAdditionalLocationModal) };\r\n const toggleViewAdditionalLocationAndReinitializeModal = (editingExistingAddress) => {\r\n toggleViewAdditionalLocationModal();\r\n setModalFormIsValid(false);\r\n reinitializeModal(editingExistingAddress);\r\n }\r\n const cancelModal = () => {\r\n setEditingAdditionalAddress(false);\r\n toggleViewAdditionalLocationModal();\r\n\r\n reinitializeModal();\r\n }\r\n\r\n const reinitializeModal = (editingExistingAddress) => {\r\n if (!editingExistingAddress) {\r\n setRowIdBeingEdited(\"-1\");\r\n }\r\n setAdditionalLocationForGrid({ ...InitPracticeLocation, type: \"Alternate\" });\r\n setAdditionalLocationErrors({ ...InitPracticeLocation });\r\n }\r\n\r\n /*ERRORS AND VALIDATION FUNCTIONS BEGIN*/\r\n\r\n const onNpiChange = (npiValue, field) => {\r\n setNpiField(field);\r\n var message = \"Validating NPI against NPPES.\";\r\n var methodName = \"onNpiChange\";\r\n var jsonResult = JSON.stringify(application);\r\n logInfoWrite(message, methodName, jsonResult);\r\n dispatch({ type: types.SIGNUP_GET_NPI_START, npi: npiValue });\r\n }\r\n\r\n const generateRequiredFields = () => {\r\n let fields = [];\r\n [primaryLocation, billingLocation, mailingLocation].forEach(addressObject => {\r\n fields = fields.concat([\r\n { key: addressObject.type + ' Address', value: addressObject.streetLine1 },\r\n { key: addressObject.type + ' City', value: addressObject.city },\r\n { key: addressObject.type + ' County', value: addressObject.county },\r\n { key: addressObject.type + ' Phone', value: addressObject.phone },\r\n { key: addressObject.type + ' State', value: addressObject.state },\r\n { key: addressObject.type + ' Zip Code', value: addressObject.zipCode },\r\n { key: addressObject.type + ' Zip Code', value: addressObject.zipPlus4 }\r\n ]);\r\n if (addressObject.type === \"Primary\") {\r\n fields = fields.concat([\r\n { key: addressObject.type + ' Group NPI', value: addressObject.npi }\r\n ]);\r\n }\r\n })\r\n return fields;\r\n }\r\n\r\n let requiredFields = generateRequiredFields();\r\n\r\n\r\n const isValidData = () => {\r\n return validateForm(primaryLocationErrors) && validateForm(billingLocationErrors) && validateForm(mailingLocationErrors);\r\n }\r\n useEffect(() => {\r\n if (!isFetching && npiField) {\r\n if (npiField === \"primary\") {\r\n setPrimaryLocationErrors({ ...primaryLocationErrors, npi: npiIsValid });\r\n }\r\n else {\r\n setAdditionalLocationErrors({ ...additionalLocationErrors, npi: npiIsValid });\r\n }\r\n setNpiField(null);\r\n }\r\n }, [npiIsValid]);\r\n\r\n const validateAddress = (addressObject, validateNpiAndMedicaid = false) => {\r\n if (addressObject.city && addressObject.county && addressObject.phone\r\n && addressObject.state && addressObject.streetLine1 && addressObject.zipCode && addressObject.zipPlus4) {\r\n if (!validateNpiAndMedicaid) return true;\r\n else if (addressObject.npi) return true;\r\n }\r\n return false;\r\n }\r\n\r\n useEffect(() => {\r\n setCookie('isFormDataSaved', 'false', { path: '/', maxAge: 31536000 });\r\n }, [primaryLocation, billingLocation, mailingLocation, primaryLocationErrors, billingLocationErrors, mailingLocationErrors,\r\n modalFormIsValid]);\r\n\r\n /*ERRORS AND VALIDATION FUNCTIONS END*/\r\n\r\n /*SAME AS PRIMARY ADDRESS CHECKBOX FUNCTIONS START */\r\n\r\n const checkBillingSameAsPrimaryAddress = () => {\r\n if (billingSameAsPrimaryAddress) {\r\n let billing = primaryLocation;\r\n if (billingLocation) {\r\n billing.practiceLocationId = billingLocation.practiceLocationId;\r\n }\r\n setBillingLocation({ ...billing });\r\n setBillingChecked(true);\r\n }\r\n else if ((!billingLocation.streetLine1 && !billingLocation.city && !billingLocation.county && !billingLocation.state && !billingLocation.zipCode && !billingLocation.zipPlus4 &&\r\n !billingLocation.phone && billingLocation.Fax) || !billingSameAsPrimaryAddress) {\r\n setBillingChecked(false);\r\n }\r\n }\r\n\r\n const checkMailingSameAsPrimaryAddress = () => {\r\n\r\n if (mailingSameAsPrimaryAddress) {\r\n let mailing = primaryLocation;\r\n if (mailingLocation) {\r\n mailing.practiceLocationId = mailingLocation.practiceLocationId;\r\n }\r\n setMailingLocation({ ...mailing });\r\n setMailingChecked(true);\r\n }\r\n else if ((!mailingLocation.streetLine1 && !mailingLocation.city && !mailingLocation.county && !mailingLocation.state && !mailingLocation.zipCode && !mailingLocation.zipPlus4 &&\r\n !mailingLocation.phone && mailingLocation.fax) || !mailingSameAsPrimaryAddress) {\r\n setMailingChecked(false);\r\n }\r\n }\r\n\r\n //checkbox toggling for save primary as billing address\r\n function toggle(value) {\r\n return !value;\r\n }\r\n\r\n /*SAME AS PRIMARY ADDRESS CHECKBOX FUNCTIONS END */\r\n\r\n /*useEffects START */\r\n\r\n useEffect(() => {\r\n if (userInfo) {\r\n setCookie('isFormDataSaved', 'true', { path: '/', maxAge: 31536000 });\r\n dispatch({ type: types.REFRESH_APPLICATION_API_CALL_FLAG });\r\n dispatch({ type: types.APPLICATION_GET_REFERENCE_LIST_START, listname: lists.ListType.StateList });\r\n dispatch({ type: types.APPLICATION_GET_REFERENCE_LIST_START, listname: lists.ListType.CountyLookup });\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (stateList) {\r\n let additionalPracticeLocations = practiceLocations.filter(l => l.type === \"Alternate\");\r\n if (additionalPracticeLocations) {\r\n let rowsToDisplay = [];\r\n for (var i = 0; i < additionalPracticeLocations.length; i++) {\r\n let loc = additionalPracticeLocations[i];\r\n var state = getState(loc.state);\r\n var cityStateZip = loc.city + \", \" + state + \" \" + loc.zipCode + \"-\" + loc.zipPlus4;\r\n var addressGridDisplay = [loc.streetLine1, cityStateZip];\r\n rowsToDisplay.push(\r\n {\r\n id: loc.practiceLocationId,\r\n streetAddress1_Grid: loc.streetLine1,\r\n streetAddress2_Grid: loc.streetLine2,\r\n city_Grid: loc.city,\r\n county_Grid: loc.county,\r\n state_Grid: loc.state,\r\n zip_Grid: loc.zipCode + \"-\" + loc.zipPlus4,\r\n phone_Grid: loc.phone,\r\n fax_Grid: loc.fax,\r\n npi_Grid: loc.npi,\r\n medicaidNumber_Grid: loc.medicaidNumber,\r\n entireAddress_Grid: addressGridDisplay\r\n }\r\n );\r\n }\r\n\r\n setRows(rowsToDisplay);\r\n }\r\n }\r\n }, [stateList]);\r\n\r\n useEffect(() => {\r\n if (stateList && countyMap) {\r\n setPageLoading(false);\r\n }\r\n }, [stateList, countyMap])\r\n\r\n useEffect(() => {\r\n checkBillingSameAsPrimaryAddress();\r\n }, [billingSameAsPrimaryAddress]);\r\n\r\n useEffect(() => {\r\n checkMailingSameAsPrimaryAddress();\r\n }, [mailingSameAsPrimaryAddress]);\r\n\r\n /* useEffects END */\r\n\r\n /* ASSIGN TO APPLICATION AND SAVE FUNCTIONS START */\r\n\r\n const onSaveClick = () => {\r\n setShowAlert(\"\");\r\n //Intermittent Save\r\n if (validateForm(primaryLocationErrors)\r\n && validateForm(billingLocationErrors)\r\n && validateForm(mailingLocationErrors)\r\n && validateForm(additionalLocationErrors)\r\n ) {\r\n let newApplication = application;\r\n var basicAddressList = assignAddresses();\r\n var additionalAddressList = assignAdditionalAddresses();\r\n var addressList = [...basicAddressList, ...additionalAddressList];\r\n newApplication.practiceLocations = addressList;\r\n\r\n if (application.providers) {\r\n var providerLocations = [];\r\n if (addressList.length > 0) {\r\n var addreses = addressList.filter(l => l.type === 'Alternate' || l.type === \"Primary\");\r\n var list = addreses.map(function (l) { return (l.practiceLocationId); });\r\n list.sort();\r\n providerLocations = providerLocations.concat(list);\r\n }\r\n\r\n newApplication.providers = application.providers.map(provider => {\r\n if (provider.primaryLocation) {\r\n if (!providerLocations || !providerLocations.some(l => l === provider.primaryLocation)) {\r\n provider.primaryLocation = null;\r\n }\r\n }\r\n\r\n let updatedAdditionalLocations = provider.additionalLocations?.filter(loc => {\r\n if (providerLocations.some(l => l === loc)) {\r\n return loc;\r\n }\r\n });\r\n provider.additionalLocations = updatedAdditionalLocations;\r\n return provider;\r\n });\r\n }\r\n\r\n var message = \"Updating professional contract application.\";\r\n var methodName = \"onSaveClick\";\r\n var jsonResult = JSON.stringify(newApplication);\r\n logInfoWrite(message, methodName, jsonResult);\r\n\r\n dispatch({ type: types.UPDATE_PROFESSIONAL_APPLICATION_START, application: newApplication, submit: false });\r\n dispatch({ type: types.STORE_APPLICATION, applicationBeingUpdated: newApplication });\r\n setCookie('isFormDataSaved', 'true', { path: '/', maxAge: 31536000 });\r\n }\r\n else {\r\n setNavigation(null);\r\n }\r\n }\r\n const onBackButtonClick = () => {\r\n history.push(\"/practiceInformation\");\r\n }\r\n const onNextButtonClick = () => {\r\n setNavigation(\"/practiceContactInfo\");\r\n onSaveClick();\r\n }\r\n\r\n const apiCallSuccess = useSelector((state) => state.professionalApplication.applicationApiCalledSuccess);\r\n useEffect(() => {\r\n if (apiCallSuccess && application) {\r\n dispatch({ type: types.REFRESH_APPLICATION_API_CALL_FLAG });\r\n if (navigation)\r\n history.push(navigation);\r\n else {\r\n scrollToTop();\r\n setShowAlert(\"success\");\r\n }\r\n } else if (apiErrors) {\r\n scrollToTop();\r\n setShowAlert(\"danger\");\r\n }\r\n setNavigation(null);\r\n }, [apiCallSuccess, apiErrors]);\r\n\r\n const assignAddresses = () => {\r\n let addresses = [];\r\n\r\n let primaryAddress = {\r\n ...primaryLocation,\r\n practiceLocationId: primaryLocation.practiceLocationId ? primaryLocation.practiceLocationId : uuid(),\r\n streetLine1: primaryLocation.streetLine1.trim(),\r\n city: primaryLocation.city.trim(),\r\n type: \"Primary\"\r\n };\r\n\r\n let billingAddress = {\r\n ...billingLocation,\r\n practiceLocationId: billingLocation.practiceLocationId ? billingLocation.practiceLocationId : uuid(),\r\n streetLine1: billingLocation.streetLine1.trim(),\r\n city: billingLocation.city.trim(),\r\n type: \"Billing\",\r\n npi: \"\",\r\n medicaidNumber: \"\"\r\n };\r\n\r\n let mailingAddress = {\r\n ...mailingLocation,\r\n practiceLocationId: mailingLocation.practiceLocationId ? mailingLocation.practiceLocationId : uuid(),\r\n streetLine1: mailingLocation.streetLine1.trim(),\r\n city: mailingLocation.city.trim(),\r\n type: \"Mailing\",\r\n npi: \"\",\r\n medicaidNumber: \"\"\r\n };\r\n\r\n addresses.push(primaryAddress);\r\n addresses.push(billingAddress);\r\n addresses.push(mailingAddress);\r\n return addresses;\r\n }\r\n\r\n const assignAdditionalAddresses = () => {\r\n let additionalAddresses = rows.map(location => {\r\n return {\r\n practiceLocationId: location.id ? location.id : uuid(),\r\n streetLine1: location.streetAddress1_Grid.trim(),\r\n streetLine2: location.streetAddress2_Grid,\r\n city: location.city_Grid.trim(),\r\n county: location.county_Grid,\r\n zipCode: location.zip_Grid.substring(0, 5),\r\n zipPlus4: location.zip_Grid.substring(6, 10),\r\n state: location.state_Grid,\r\n type: \"Alternate\",\r\n fax: location.fax_Grid,\r\n phone: location.phone_Grid,\r\n npi: location.npi_Grid,\r\n medicaidNumber: location.medicaidNumber_Grid\r\n }\r\n });\r\n\r\n return additionalAddresses;\r\n }\r\n\r\n /* ASSIGN TO APPLICATION AND SAVE FUNCTIONS END */\r\n\r\n /* ADDITIONAL ADDRESSES GRID FUNCTIONS START */\r\n\r\n const columns = [\r\n {\r\n field: 'entireAddress_Grid',\r\n headerName: 'Address',\r\n flex: 1,\r\n minWidth: 280,\r\n editable: false,\r\n sortable: false,\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n align: 'center',\r\n renderCell: (params) => (\r\n \r\n {params.value[0]}\r\n
\r\n {params.value[1]}\r\n
\r\n )\r\n },\r\n {\r\n field: 'streetAddress1_Grid',\r\n headerName: 'Street Address Line 1',\r\n flex: 1,\r\n minWidth: 300,\r\n editable: false,\r\n sortable: false,\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n align: 'center',\r\n hide: true\r\n },\r\n {\r\n field: 'streetAddress2_Grid',\r\n headerName: 'Street Address Line 2',\r\n minWidth: 240,\r\n flex: 1,\r\n editable: false,\r\n sortable: false,\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n align: 'center',\r\n hide: true\r\n },\r\n {\r\n field: 'city_Grid',\r\n headerName: 'City',\r\n minWidth: 150,\r\n flex: 1,\r\n editable: false,\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n align: 'center',\r\n hide: true\r\n },\r\n {\r\n field: 'county_Grid',\r\n headerName: 'County',\r\n minWidth: 150,\r\n flex: 1,\r\n editable: false,\r\n sortable: false,\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n align: 'center',\r\n hide: true\r\n },\r\n {\r\n field: 'state_Grid',\r\n headerName: 'State',\r\n minWidth: 150,\r\n flex: 1,\r\n editable: false,\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n align: 'center',\r\n hide: true\r\n },\r\n {\r\n field: 'zip_Grid',\r\n headerName: 'Zip',\r\n minWidth: 150,\r\n flex: 1,\r\n editable: false,\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n align: 'center',\r\n hide: true\r\n },\r\n {\r\n field: 'phone_Grid',\r\n headerName: 'Phone',\r\n minWidth: 150,\r\n flex: 1,\r\n editable: false,\r\n sortable: false,\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n align: 'center',\r\n hide: true\r\n },\r\n {\r\n field: 'fax_Grid',\r\n headerName: 'Fax',\r\n minWidth: 150,\r\n flex: 1,\r\n editable: false,\r\n sortable: false,\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n align: 'center',\r\n hide: true\r\n },\r\n {\r\n field: 'npi_Grid',\r\n headerName: 'Location NPI',\r\n minWidth: 170,\r\n flex: 1,\r\n editable: false,\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n align: 'center'\r\n },\r\n {\r\n field: 'medicaidNumber_Grid',\r\n headerName: 'Medicaid #',\r\n minWidth: 170,\r\n flex: 1,\r\n editable: false,\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n align: 'center'\r\n },\r\n {\r\n field: 'editLocation_Grid',\r\n headerName: 'Edit',\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n description: 'This column has a value getter and is not sortable.',\r\n sortable: false,\r\n width: 120,\r\n disableClickEventBubbling: true,\r\n renderCell: () => (\r\n \r\n ),\r\n align: 'center'\r\n },\r\n {\r\n field: 'removeLocation_Grid',\r\n headerName: 'Remove',\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n description: 'This column has a value getter and is not sortable.',\r\n sortable: false,\r\n width: 120,\r\n disableClickEventBubbling: true,\r\n renderCell: () => (\r\n \r\n ),\r\n align: 'center'\r\n },\r\n ];\r\n\r\n const selectOrRemoveLocation = (params, e) => {\r\n let message = \"\";\r\n let methodName = \"selectOrRemoveLocation\";\r\n let jsonResult = \"\";\r\n\r\n if (params.field === \"removeLocation_Grid\") {\r\n message = \"Removing row \" + params.row.id + \" from additional locations grid.\";\r\n jsonResult = JSON.stringify(application);\r\n logInfoWrite(message, methodName, jsonResult);\r\n let id = params.row.id;\r\n setRows(rows.filter(function (obj) {\r\n return obj.id !== id;\r\n }));\r\n }\r\n\r\n if (params.field === \"editLocation_Grid\") {\r\n let id = params.row.id;\r\n setRowIdBeingEdited(id);\r\n let additionalLocToEdit = {\r\n npi: params.row.npi_Grid,\r\n streetLine1: params.row.streetAddress1_Grid,\r\n streetLine2: params.row.streetAddress2_Grid,\r\n city: params.row.city_Grid,\r\n state: params.row.state_Grid,\r\n county: params.row.county_Grid,\r\n zipCode: params.row.zip_Grid.substring(0, 5),\r\n zipPlus4: params.row.zip_Grid.substring(6, 10),\r\n phone: params.row.phone_Grid,\r\n fax: params.row.fax_Grid,\r\n medicaidNumber: params.row.medicaidNumber_Grid\r\n };\r\n setEditingAdditionalAddress(true);\r\n toggleViewAdditionalLocationAndReinitializeModal(true);\r\n setAdditionalLocationForGrid(additionalLocToEdit);\r\n message = \"Editing row for location \" + additionalLocToEdit.streetLine1 + \" in additional locations grid.\";\r\n jsonResult = JSON.stringify(application);\r\n logInfoWrite(message, methodName, jsonResult);\r\n }\r\n }\r\n\r\n const addLocationToGrid = () => {\r\n const stateName = stateListSelections.find(state => state.value === additionalLocationForGrid.state)?.label;\r\n\r\n var cityStateZip = additionalLocationForGrid.city + \", \"\r\n + stateName + \" \" + additionalLocationForGrid.zipCode + \"-\" + additionalLocationForGrid.zipPlus4;\r\n var addressGridDisplay = [additionalLocationForGrid.streetLine1, cityStateZip];\r\n let updatedRows = [...rows];\r\n let maxId = updatedRows.length > 0 ?\r\n Math.max.apply(Math, updatedRows.map(function (o) { return o.id; }))\r\n : 0;\r\n let currentGridRow = {\r\n id: (editingAdditionalAddress ? rowIdBeingEdited : uuid()),\r\n streetAddress1_Grid: additionalLocationForGrid.streetLine1,\r\n streetAddress2_Grid: additionalLocationForGrid.streetLine2,\r\n city_Grid: additionalLocationForGrid.city,\r\n county_Grid: additionalLocationForGrid.county,\r\n state_Grid: additionalLocationForGrid.state,\r\n zip_Grid: additionalLocationForGrid.zipCode + \"-\" + additionalLocationForGrid.zipPlus4,\r\n phone_Grid: additionalLocationForGrid.phone,\r\n fax_Grid: additionalLocationForGrid.fax,\r\n npi_Grid: additionalLocationForGrid.npi,\r\n medicaidNumber_Grid: additionalLocationForGrid.medicaidNumber,\r\n entireAddress_Grid: addressGridDisplay\r\n }\r\n if (editingAdditionalAddress) {\r\n const targetIndex = updatedRows.findIndex(l => l.id === rowIdBeingEdited);\r\n updatedRows[targetIndex] = currentGridRow;\r\n } else {\r\n updatedRows.push(currentGridRow);\r\n }\r\n setRows(updatedRows);\r\n setEditingAdditionalAddress(false);\r\n toggleViewAdditionalLocationModal();\r\n\r\n var message = \"Adding new row for location \" + currentGridRow.locationName_Grid + \" to additional locations grid.\";\r\n var methodName = \"addLocationToGrid\";\r\n var jsonResult = JSON.stringify(application);\r\n logInfoWrite(message, methodName, jsonResult);\r\n }\r\n\r\n /* ADDITIONAL ADDRESSES GRID FUNCTIONS END */\r\n\r\n const logInfoWrite = (message, methodName, jsonResult) => {\r\n let loggingModel = {\r\n message: message,\r\n pageName: \"PracticeLocationInfo\",\r\n methodName: methodName,\r\n jsonResult: jsonResult\r\n };\r\n\r\n setClientLoggingModel(loggingModel);\r\n if (clientLoggingModel.methodName !== null) {\r\n dispatch({ type: types.LOG_INFO_START, clientLoggingModel, userInfo });\r\n }\r\n }\r\n\r\n return (
\r\n {showAlert.length > 0 && }\r\n Practice Location Information\r\n {\r\n pageLoading ?\r\n :\r\n
\r\n
\r\n\r\n Primary Address Information\r\n { onNpiChange(npi, \"primary\") }} />\r\n
\r\n Billing Address Information\r\n \r\n \r\n setBillingAddressSameAsPrimary(toggle)} />\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n Mailing Address Information\r\n \r\n \r\n setMailingAddressSameAsPrimary(toggle)} />\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n +\r\n Add Additional Location(s)\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Additional Address Information\r\n { onNpiChange(npi, \"additional\") }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n selectOrRemoveLocation(params, event);\r\n }}\r\n />\r\n
\r\n \r\n \r\n
\r\n }\r\n
\r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Col, Row, Form, Label, Input } from 'reactstrap';\r\nimport * as types from '../../../../constants/actionTypes';\r\nimport * as validators from '../../../../constants/validations';\r\nimport { useHistory } from 'react-router';\r\nimport { NavigationFooter, scrollToTop } from './NavigationFooter';\r\nimport { SectionHeader } from '../../../common/SectionHeader';\r\nimport { SubSectionHeader } from '../../../common/SubSectionHeader';\r\nimport { CustomAlert } from '../../../common/CustomAlert';\r\nimport { useCookies } from 'react-cookie';\r\nimport { ClientLoggingModel } from '../../../../models/ClientLoggingModel';\r\nimport { FormField } from '../../../common/FormField';\r\nimport { LoadingAnimation } from '../../../common/LoadingAnimation';\r\nimport * as validations from '../../../../constants/validations';\r\n\r\nexport const PracticeContactInfo = (props) => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const userInfo = useSelector((state) => state.user.userInfo);\r\n if (!userInfo) {\r\n history.push(\"/\")\r\n }\r\n const [pageLoading, setPageLoading] = useState(true);\r\n const [cookies, setCookie] = useCookies(['isFormDataSaved']);\r\n const [navigation, setNavigation] = useState(null);\r\n const [showAlert, setShowAlert] = useState(\"\");\r\n const [checked, setChecked] = useState(false);\r\n let application = useSelector((state) => state.professionalApplication.applicationBeingUpdated);\r\n \r\n const apiErrors = useSelector((state) => state.professionalApplication.error);\r\n const contacts = application?.practiceContacts ?? [];\r\n const [clientLoggingModel, setClientLoggingModel] = useState(ClientLoggingModel);\r\n const primaryContact = contacts?.find(function (c) {\r\n return c.contactType === 'Primary'\r\n });\r\n const credentialingContact = contacts?.find(function (c) {\r\n return c.contactType === 'Credentialing'\r\n });\r\n const [pc, setPC] = useState({\r\n contactType: 'Primary',\r\n name: primaryContact?.name,\r\n email: primaryContact?.email,\r\n phone: primaryContact?.phone,\r\n fax: primaryContact?.fax,\r\n websiteAddress: primaryContact?.websiteAddress\r\n });\r\n const [cc, setCC] = useState({\r\n contactType: 'Credentialing',\r\n name: credentialingContact?.name,\r\n email: credentialingContact?.email,\r\n phone: credentialingContact?.phone,\r\n fax: credentialingContact?.fax,\r\n websiteAddress: null\r\n\r\n });\r\n const [errors, setErrors] = useState({\r\n pcName: '',\r\n pcEmail: '',\r\n pcPhone: '',\r\n pcFax: '',\r\n pcWebsiteAddress: '',\r\n ccName: '',\r\n ccEmail: '',\r\n ccPhone: '',\r\n ccFax: '',\r\n });\r\n\r\n const requiredFields = [{ key: 'Primary Contact Name', value: pc.name },\r\n { key: 'Primary Contact Email', value: pc.email },\r\n { key: 'Primary Contact Phone', value: pc.phone },\r\n { key: 'Primary Contact Website Address', value: pc.websiteAddress },\r\n { key: 'Credentialing Contact Name', value: cc.name },\r\n { key: 'Credentialing Contact Email', value: cc.email },\r\n { key: 'Credentialing Contact Phone', value: cc.phone },\r\n ];\r\n\r\n\r\n useEffect(() => {\r\n if (checked) {\r\n let updatedErrors = { ...errors };\r\n updatedErrors.ccName = validators.validateLength('name', cc.name, 80, 1) || validations.validateNA(cc.name);\r\n updatedErrors.ccEmail = validators.validateEmail(cc.email) || validations.validateNA(cc.email);\r\n updatedErrors.ccPhone = validators.validatePhone(cc.phone);\r\n updatedErrors.ccFax = validators.validateFax(cc.fax);\r\n setErrors(updatedErrors);\r\n setChecked(false);\r\n }\r\n }, [cc]);\r\n\r\n const onSaveClick = () => {\r\n setCookie('isFormDataSaved', 'true', { path: '/', maxAge: 31536000 });\r\n setShowAlert(\"\");\r\n //Intermittent Save\r\n if (validators.validateForm(errors)) {\r\n application.practiceContacts = [pc, cc];\r\n var message = \"Updating professional contract.\";\r\n var methodName = \"onSaveClick\";\r\n var jsonResult = JSON.stringify(application);\r\n logInfoWrite(message, methodName, jsonResult);\r\n application.practiceContacts = [pc, cc];\r\n dispatch({ type: types.UPDATE_PROFESSIONAL_APPLICATION_START, application: application, submit: false });\r\n dispatch({ type: types.STORE_APPLICATION, applicationBeingUpdated: application });\r\n }\r\n else {\r\n setNavigation(null);\r\n }\r\n }\r\n const onBackButtonClick = () => {\r\n history.push(\"/practiceLocationInfo\");\r\n }\r\n const onNextButtonClick = () => {\r\n setNavigation(\"/ProviderInformation\");\r\n onSaveClick();\r\n }\r\n\r\n const apiCallSuccess = useSelector((state) => state.professionalApplication.applicationApiCalledSuccess);\r\n useEffect(() => {\r\n if (apiCallSuccess && application) {\r\n dispatch({ type: types.REFRESH_APPLICATION_API_CALL_FLAG });\r\n if (navigation)\r\n history.push(navigation);\r\n else {\r\n scrollToTop();\r\n setShowAlert(\"success\");\r\n }\r\n } else if (apiErrors) {\r\n scrollToTop();\r\n setShowAlert(\"danger\");\r\n }\r\n setNavigation(null);\r\n }, [apiCallSuccess, apiErrors]);\r\n\r\n useEffect(() => {\r\n if (userInfo) {\r\n setCookie('isFormDataSaved', 'true', { path: '/', maxAge: 31536000 });\r\n dispatch({ type: types.REFRESH_APPLICATION_API_CALL_FLAG });\r\n setPageLoading(false);\r\n }\r\n }, []);\r\n\r\n const onFocusOutTrimSpaces = (e, type) => {\r\n const { name, value } = e.target;\r\n e.preventDefault();\r\n let updatedErrors = { ...errors };\r\n let newValue = value.trim()\r\n\r\n if (type === \"pc\") {\r\n switch (name) {\r\n case 'name':\r\n updatedErrors.pcName = !newValue || validators.validateLength(name, newValue, 80, 1) || validations.validateNA(newValue);\r\n break;\r\n case 'email':\r\n updatedErrors.pcEmail = validators.validateEmail(newValue) || validations.validateNA(newValue);\r\n break;\r\n }\r\n setErrors(updatedErrors);\r\n setPC({ ...pc, [name]: newValue });\r\n } else if (type === \"cc\") {\r\n switch (name) {\r\n case 'name':\r\n updatedErrors.ccName = !newValue || validators.validateLength(name, newValue, 80, 1) || validations.validateNA(newValue);\r\n break;\r\n case 'email':\r\n updatedErrors.ccEmail = validators.validateEmail(newValue) || validations.validateNA(newValue);\r\n break;\r\n }\r\n setErrors(updatedErrors);\r\n setCC({ ...cc, [name]: newValue });\r\n }\r\n\r\n }\r\n\r\n const inputPCchangeHandler = event => {\r\n const { name, value } = event.target;\r\n event.preventDefault();\r\n\r\n let updatedErrors = { ...errors };\r\n switch (name) {\r\n case 'name':\r\n updatedErrors.pcName = !value || validators.validateLength(name, value, 80, 1) || validations.validateNA(value);\r\n break;\r\n case 'email':\r\n updatedErrors.pcEmail = validators.validateEmail(value) || validations.validateNA(value);\r\n break;\r\n case 'phone':\r\n updatedErrors.pcPhone = validators.validatePhone(value);\r\n break;\r\n case 'fax':\r\n updatedErrors.pcFax = validators.validateFax(value);\r\n break;\r\n case 'websiteAddress':\r\n updatedErrors.pcWebsiteAddress = validators.validateUrl(value) || validations.validateNA(value);\r\n break;\r\n default:\r\n break;\r\n }\r\n setCookie('isFormDataSaved', 'false', { path: '/', maxAge: 31536000 });\r\n setPC({ ...pc, [name]: value });\r\n setErrors(updatedErrors);\r\n }\r\n const inputCCchangeHandler = event => {\r\n const { name, value } = event.target;\r\n event.preventDefault();\r\n\r\n let updatedErrors = { ...errors };\r\n switch (name) {\r\n case 'name':\r\n updatedErrors.ccName = validators.validateLength(name, value, 80, 1) || validations.validateNA(value);\r\n break;\r\n case 'email':\r\n updatedErrors.ccEmail = validators.validateEmail(value) || validations.validateNA(value);\r\n break;\r\n case 'phone':\r\n updatedErrors.ccPhone = validators.validatePhone(value);\r\n break;\r\n case 'fax':\r\n updatedErrors.ccFax = validators.validateFax(value);\r\n break;\r\n default:\r\n break;\r\n }\r\n setCookie('isFormDataSaved', 'false', { path: '/', maxAge: 31536000 });\r\n setCC({ ...cc, [name]: value });\r\n setErrors(updatedErrors);\r\n }\r\n\r\n const onMatchPrimaryClick = (event) => {\r\n if (event.target.checked) {\r\n let credentialing = { ...cc };\r\n credentialing.contactType = 'Credentialing';\r\n credentialing.name = pc?.name;\r\n credentialing.email = pc?.email;\r\n credentialing.phone = pc?.phone;\r\n credentialing.fax = pc?.fax;\r\n credentialing.websiteAddress = null;\r\n setCC(credentialing);\r\n setChecked(true);\r\n }\r\n setCookie('isFormDataSaved', 'false', { path: '/', maxAge: 31536000 });\r\n }\r\n\r\n const logInfoWrite = (message, methodName, jsonResult) => {\r\n let loggingModel = {\r\n message: message,\r\n pageName: \"PracticeContactInfo\",\r\n methodName: methodName,\r\n jsonResult: jsonResult\r\n };\r\n\r\n setClientLoggingModel(loggingModel);\r\n if (clientLoggingModel.methodName !== null) {\r\n dispatch({ type: types.LOG_INFO_START, clientLoggingModel, userInfo });\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {showAlert.length > 0 && }\r\n Practice Contact Information\r\n {\r\n pageLoading ?\r\n :\r\n
\r\n
\r\n Primary Contact\r\n \r\n \r\n onFocusOutTrimSpaces(e, \"pc\")}\r\n onChange={inputPCchangeHandler}\r\n error={errors.pcName}\r\n />\r\n \r\n \r\n onFocusOutTrimSpaces(e, \"pc\")}\r\n onChange={inputPCchangeHandler}\r\n error={errors.pcEmail}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onFocusOutTrimSpaces(e, \"pc\")}\r\n onChange={inputPCchangeHandler}\r\n error={errors.pcWebsiteAddress}\r\n maxLength={200}\r\n placeholder=\"http://example.com\"\r\n />\r\n \r\n \r\n Credentialing Contact\r\n \r\n \r\n onMatchPrimaryClick(e)} />\r\n \r\n \r\n \r\n \r\n \r\n onFocusOutTrimSpaces(e, \"cc\")}\r\n onChange={inputCCchangeHandler}\r\n error={errors.ccName}\r\n />\r\n \r\n \r\n onFocusOutTrimSpaces(e, \"cc\")}\r\n onChange={inputCCchangeHandler}\r\n error={errors.ccEmail}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n validators.validateForm(errors)}\r\n requiredFields={requiredFields}\r\n />\r\n
\r\n }\r\n
\r\n );\r\n}","import React, { useState, useEffect, useRef } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Input, Row, Col, FormGroup, Label, Button } from 'reactstrap';\r\nimport * as types from '../../constants/actionTypes';\r\nimport * as validators from '../../constants/validations';\r\nimport PropTypes from 'prop-types';\r\nimport * as FileSaver from 'file-saver';\r\n\r\nexport const FileUpload = (props) => {\r\n const maxFileSize = 16; //MAX FILE SIZE ALLOWED IN MB.\r\n const validFileTypes = \".doc,.docx,.pdf\"; //ALLOWED FILE TYPES FOR UPLOADS\r\n const fileInputRef = useRef();\r\n let { name, required, label, id, fileUploaded, error, showRequiredErrorOnLoad, applicationId } = props\r\n const [err, setErr] = useState((!showRequiredErrorOnLoad || fileUploaded?.blobKey ? '' : (label + ' is required')));\r\n const [downloading, setDownloading] = useState(false);\r\n\r\n const dispatch = useDispatch();\r\n const file = useSelector((state) => {\r\n return state.document.file;\r\n });\r\n const apiError = useSelector((state) => {\r\n return state.document.error;\r\n });\r\n const isFetching = useSelector((state) => {\r\n return state.document.isFetching;\r\n });\r\n const onUploadClick = event => { \r\n fileInputRef.current.click();\r\n }\r\n const onInputClick = event => {\r\n event.target.value = '';\r\n }\r\n\r\n const onChangeHandler = event => {\r\n var selectedFile = event.target.files[0];\r\n // Validations around required, fileType and fileSize constraints\r\n let err = '';\r\n if (!selectedFile) {\r\n setErr(required ? (label + \" is required\") : '');\r\n } else {\r\n err = validators.validateFileUpload(selectedFile, validFileTypes, maxFileSize);\r\n setErr(err);\r\n }\r\n var f = (typeof selectedFile == undefined || selectedFile == null || err.length > 0) ? \"\" : selectedFile;\r\n var p = typeof applicationId == \"undefined\" ? \"\" : applicationId;\r\n if (f || p) {\r\n //Upload selected file and delete previous file\r\n const formData = new FormData();\r\n formData.append(\"file\", f);\r\n formData.append(\"applicationId\", p)\r\n dispatch({ type: types.FILE_UPLOAD_START, file: formData, name: event.target.name });\r\n }\r\n }\r\n const getFile = (e) => {\r\n e.preventDefault();\r\n setDownloading(true);\r\n dispatch({ type: types.FILE_DOWNLOAD_START, key: fileUploaded?.blobKey, fileName: fileUploaded?.fileName});\r\n }\r\n useEffect(() => {\r\n if (!isFetching && downloading) {\r\n setDownloading(false);\r\n if (file && apiError.length === 0)\r\n FileSaver.saveAs(file, fileUploaded?.fileName);\r\n }\r\n }, [file, apiError]);\r\n\r\n useEffect(() => {\r\n setErr((!showRequiredErrorOnLoad || fileUploaded?.blobKey ? '' : (label + ' is required') ));\r\n }, [showRequiredErrorOnLoad]);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {fileUploaded && fileUploaded.blobKey &&\r\n {fileUploaded.fileName}}\r\n
\r\n {error && {error}}\r\n {err.length > 0 && {err}}\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nFileUpload.propTypes = {\r\n required: PropTypes.bool,\r\n name: PropTypes.string,\r\n onUploadComplete: PropTypes.func,\r\n label: PropTypes.string,\r\n id: PropTypes.string,\r\n applicationId: PropTypes.string,\r\n fileUploaded: PropTypes.object,\r\n error: PropTypes.string,\r\n showRequiredErrorOnLoad: PropTypes.bool\r\n};","export const ProviderSpecialtyBoardCertification = [\r\n { value: 'Board Lifetime Certified', label: 'Board Lifetime Certified' },\r\n { value: 'Eligible for Boards', label: 'Eligible for Boards' },\r\n { value: 'Not Board Certified', label: 'Not Board Certified' }\r\n];\r\n\r\nObject.freeze(ProviderSpecialtyBoardCertification);","export const suffix = [\r\n { value: 'Jr', label: 'Jr' },\r\n { value: 'Sr', label: 'Sr' },\r\n { value: 'III', label: 'III' },\r\n { value: 'IV', label: 'IV' },\r\n { value: 'V', label: 'V' },\r\n { value: 'VI', label: 'VI' },\r\n { value: 'VII', label: 'VII' },\r\n { value: 'VIII', label: 'VIII' },\r\n { value: 'IX', label: 'IX' },\r\n { value: 'X', label: 'X' }\r\n];\r\n\r\nObject.freeze(suffix);","import React, { useState, useEffect, useRef } from 'react';\r\nimport { Col, Button, FormGroup, Label, Input, Row, Modal, ModalBody, ModalFooter, Form } from 'reactstrap';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport * as types from '../../../../constants/actionTypes';\r\nimport * as lists from '../../../../constants/listType';\r\nimport * as validations from '../../../../constants/validations';\r\nimport { DataGrid } from '@mui/x-data-grid';\r\nimport { NavigationFooter, scrollToTop } from '../Common/NavigationFooter';\r\nimport { SubSectionHeader } from '../../../common/SubSectionHeader';\r\nimport { FormField } from '../../../common/FormField';\r\nimport { FileUpload } from '../../../common/FileUpload';\r\nimport { SectionHeader } from '../../../common/SectionHeader';\r\nimport { CustomAlert } from '../../../common/CustomAlert';\r\nimport { LoadingAnimation } from '../../../common/LoadingAnimation';\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport InputMask from 'react-input-mask';\r\nimport { useCookies } from 'react-cookie';\r\nimport * as boardCertification from '../../../../constants/specialtyBoardCertification';\r\nimport * as suf from '../../../../constants/suffix';\r\nimport uuid from 'react-uuid';\r\nimport { ClientLoggingModel } from '../../../../models/ClientLoggingModel';\r\nimport { Typeahead } from 'react-bootstrap-typeahead';\r\n\r\nexport const ProviderInformation = (props) => {\r\n const [cookies, setCookie] = useCookies(['isFormDataSaved']);\r\n\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const userInfo = useSelector((state) => state.user.userInfo);\r\n if (!userInfo) {\r\n history.push(\"/\");\r\n }\r\n\r\n const [formIsValid, setFormIsValid] = useState(false);\r\n const [showAlert, setShowAlert] = useState(\"\");\r\n const initModal = {\r\n modalOpen: false,\r\n modalBody: '',\r\n modalButtonText: '',\r\n modalButtonClick: () => { },\r\n modalHideCancel: false,\r\n };\r\n\r\n const [pageLoading, setPageLoading] = useState(true);\r\n const [modal, setModal] = useState(initModal);\r\n const toggle = () => setModal(initModal);\r\n const titleOrDegreeList = useSelector((state) => state.professionalApplication.degreeAndCertificationList);\r\n const titleOrDegreeOptions = titleOrDegreeList\r\n ? titleOrDegreeList.items.map((s) => { return { value: s.name, label: s.name } })\r\n : [];\r\n const providerLanguages = useSelector((state) => state.professionalApplication.languageList);\r\n const languageList = providerLanguages ?\r\n providerLanguages.items.map((s) => { return { value: s.name, label: s.name, name: s.name } }) : [];\r\n const providerFacilityAffiliations = useSelector((state) => state.professionalApplication.providerFacilityAffiliationList);\r\n const providerFacilityAffiliationList = providerFacilityAffiliations ?\r\n providerFacilityAffiliations.items.map((s) => { return { value: s.name, label: s.name, name: s.name } }) : [];\r\n const [buttonAction, setButtonAction] = useState(\"\");\r\n let professionalApplication = useSelector((state) => { return state.professionalApplication.applicationBeingUpdated; });\r\n\r\n const [locations, setLocations] = useState([]);\r\n const isFetching = useSelector((state) => state.user.isFetching);\r\n const npiIsValid = useSelector((state) => state.user.npiIsValid);\r\n const [npiField, setNpiField] = useState(null);\r\n\r\n const [requiresPriv, setRequiresPriv] = useState(false);\r\n const specialties = useSelector((state) => state.professionalApplication.specialtyList);\r\n const specialtiesListOptions = specialties\r\n ? specialties.items.map((s) => { return { value: s.name, label: s.name } })\r\n : [];\r\n\r\n const taxonomies = useSelector((state) => state.professionalApplication.taxonomyList);\r\n\r\n const taxonomiesListOptions = taxonomies\r\n ? taxonomies.items.map((s) => { return { value: s.code, label: s.code } })\r\n : [];\r\n\r\n const malpracticeInsuranceTypes = useSelector((state) => state.professionalApplication.malpracticeInsuranceTypeList);\r\n const malpracticeInsuranceTypesOptions = malpracticeInsuranceTypes\r\n ? malpracticeInsuranceTypes.items.map((s) => { return { value: s.name, label: s.name } })\r\n : [];\r\n\r\n const malpracticeInsuranceCarriers = useSelector((state) => state.professionalApplication.malpracticeInsuranceCarrierList);\r\n const malpracticeInsuranceCarriersOptions = malpracticeInsuranceCarriers\r\n ? malpracticeInsuranceCarriers.items.map((s) => { return { value: s.name, label: s.name } })\r\n : [];\r\n\r\n const malpracticeInsuranceAmounts = useSelector((state) => state.professionalApplication.malpracticeInsuranceAmountsList);\r\n const amountsOptions = malpracticeInsuranceAmounts\r\n ? malpracticeInsuranceAmounts.items.map((s) => { return { value: s.name, label: s.name } })\r\n : [];\r\n\r\n const [providersList, setProvidersList] = useState(professionalApplication?.providers ? professionalApplication?.providers : []);\r\n const [providerRemovedFromGrid, setProviderRemovedFromGrid] = useState(false);\r\n const [rowIdBeingEdited, setRowIdBeingEdited] = useState(null);\r\n const [rows, setRows] = useState([]);\r\n const [isGridLoaded, setIsGridLoaded] = useState(false);\r\n const [clientLoggingModel, setClientLoggingModel] = useState(ClientLoggingModel);\r\n\r\n const newProviderObj = {\r\n providerGUID: null,\r\n firstName: null,\r\n middleInitial: null,\r\n lastName: null,\r\n suffix: null,\r\n npi: null,\r\n ssn: null,\r\n medicaidId: null,\r\n medicareId: null,\r\n licenseNumber: null,\r\n licenseNumberEffectiveDate: null,\r\n licenseNumberExpirationDate: null,\r\n deaNumber: null,\r\n deaNumberEffectiveDate: null,\r\n deaNumberExpirationDate: null,\r\n titleOrDegree: null,\r\n languages: [],\r\n birthDate: null,\r\n gender: null,\r\n isPcp: null,\r\n providerPrimarySpecialty: null,\r\n primaryTaxonomy: null,\r\n providerSecondarySpecialty: null,\r\n secondaryTaxonomy: null,\r\n boardCertification: null,\r\n currentRadiologyCertificate: null,\r\n currentStateLicense: null,\r\n isHospitalBased: null,\r\n\r\n caqhProviderId: null,\r\n facilityAffiliations: [],\r\n hasAdmittingPrivileges: null,\r\n primarySpecialtyBoardCertificate: null,\r\n secondarySpecialtyBoardCertificate: null,\r\n primaryLocation: null,\r\n additionalLocations: [],\r\n nonCaqhAttachments: {\r\n irsW9: null,\r\n deaRegistration: null,\r\n curriculumVitae: null,\r\n credentialingApplication: null\r\n },\r\n primarySupervisingPhysician: {\r\n midlevelProtocolsAvailableOnRequest: null,\r\n name: null,\r\n npi: null,\r\n specialty: null,\r\n isPhysicianContracted: null\r\n },\r\n malpracticeInsurance: {\r\n carrier: null,\r\n otherCarrier: null,\r\n type: null,\r\n malpracticeEffectiveDate: null,\r\n malpracticeExpirationDate: null,\r\n amounts: null,\r\n malpracticePolicy: null\r\n }\r\n };\r\n const [provider, setProvider] = useState(newProviderObj);\r\n const [primaryTaxonomyValue, setPrimaryTaxonomyValue] = useState(\"\");\r\n const [secondaryTaxonomyValue, setSecondaryTaxonomyValue] = useState(\"\");\r\n const initialErrorObj = {\r\n firstName: '',\r\n middleInitial: '',\r\n lastName: '',\r\n npi: '',\r\n ssn: '',\r\n duplicateProvider: '',\r\n medicaidId: '',\r\n medicareId: '',\r\n licenseNumber: '',\r\n licenseNumberEffectiveDate: '',\r\n licenseNumberExpirationDate: '',\r\n deaNumber: '',\r\n deaNumberEffectiveDate: '',\r\n deaNumberExpirationDate: '',\r\n degree: '',\r\n birthDate: '',\r\n gender: '',\r\n\r\n facilityAffiliations: '',\r\n caqhProviderId: '',\r\n primaryLocation: '',\r\n additionalLocations: '',\r\n\r\n physicianName: '',\r\n physicianNpi: '',\r\n carrier: '',\r\n otherCarrier: '',\r\n type: '',\r\n malpracticeEffectiveDate: '',\r\n malpracticeExpirationDate: '',\r\n amounts: '',\r\n primaryTaxonomy: '',\r\n secondaryTaxonomy: '',\r\n providerPrimarySpecialty:'',\r\n providerSecondarySpecialty:'',\r\n boardCertification: '',\r\n currentRadiologyCertificate: '',\r\n currentStateLicense: '',\r\n irsW9: '',\r\n deaRegistration: '',\r\n curriculumVitae: '',\r\n credentialingApplication: '',\r\n malpracticePolicy: ''\r\n };\r\n const [errors, setErrors] = useState(initialErrorObj);\r\n const [requiredErrors, setRequiredErrors] = useState(initialErrorObj);\r\n\r\n const [languages, setLanguages] = useState(\"Select Value(s)\");\r\n const [additionalLocations, setAdditionalLocations] = useState(\"Select Value(s)\");\r\n const [affiliations, setAffiliations] = useState(\"Select Value(s)\");\r\n const [selectedAffiliations, setSelectedAffiliations] = useState([]);\r\n const [isTitleOrDegreeActive, setIsTitleOrDegreeActive] = useState(false);\r\n const [isRequiredDEADates, setIsRequiredDEADates] = useState(false);\r\n const [showRequiredFieldErrorInitially, setShowRequiredFieldErrorInitially] = useState(false);\r\n\r\n const lastAttachment = useSelector((state) => { return state.document.attachment; });\r\n const documentApiError = useSelector((state) => {\r\n return state.document.error;\r\n });\r\n const documentIsFetching = useSelector((state) => {\r\n return state.document.isFetching;\r\n });\r\n const uploadOccuredAt = useSelector((state) => {\r\n return state.document.uploadOccuredAt;\r\n });\r\n const apiCallSuccess = useSelector((state) => state.professionalApplication.applicationApiCalledSuccess);\r\n const apiErrors = useSelector((state) => state.professionalApplication.error);\r\n\r\n const requiredFields = [];\r\n\r\n useEffect(() => {\r\n if (userInfo) {\r\n setCookie('isFormDataSaved', 'true', { path: '/', maxAge: 31536000 }); //maxAge - 31536000 sconds / 525,600 minutes / 365 Days\r\n dispatch({ type: types.APPLICATION_GET_REFERENCE_LIST_START, listname: lists.ListType.DegreeAndCertificationList });\r\n dispatch({ type: types.APPLICATION_GET_REFERENCE_LIST_START, listname: lists.ListType.LanguageList });\r\n dispatch({ type: types.APPLICATION_GET_REFERENCE_LIST_START, listname: lists.ListType.SpecialtyList });\r\n dispatch({ type: types.APPLICATION_GET_REFERENCE_LIST_START, listname: lists.ListType.TaxonomyList });\r\n dispatch({ type: types.APPLICATION_GET_REFERENCE_LIST_START, listname: lists.ListType.ProviderFacilityAffiliationList });\r\n dispatch({ type: types.APPLICATION_GET_REFERENCE_LIST_START, listname: lists.ListType.MalpracticeInsuranceTypeList });\r\n dispatch({ type: types.APPLICATION_GET_REFERENCE_LIST_START, listname: lists.ListType.MalpracticeInsuranceCarrierList });\r\n dispatch({ type: types.APPLICATION_GET_REFERENCE_LIST_START, listname: lists.ListType.MalpracticeInsuranceAmountsList });\r\n\r\n // Locations drop down\r\n if (professionalApplication?.practiceLocations) {\r\n var arr = [];\r\n var primaryLoc = professionalApplication.practiceLocations.find(l => l.type === 'Primary');\r\n if (primaryLoc)\r\n arr.push({ name: primaryLoc.city + \", \" + primaryLoc.state + \", \" + primaryLoc.zipCode + \"-\" + primaryLoc.zipPlus4 + \", \" + primaryLoc.streetLine1, value: primaryLoc.practiceLocationId });\r\n var alternateLocs = professionalApplication.practiceLocations.filter(l => l.type === 'Alternate');\r\n if (alternateLocs.length > 0) {\r\n var list = alternateLocs.map(function (l) { return ({ name: l.city + \", \" + l.state + \", \" + l.zipCode + \"-\" + l.zipPlus4 + \", \" + l.streetLine1, value: l.practiceLocationId }); });\r\n list.sort();\r\n arr = arr.concat(list);\r\n }\r\n const locs = arr\r\n ? arr.map((s) => { return { value: s.value, label: s.name, name: s.name } })\r\n : [];\r\n setLocations(locs);\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (titleOrDegreeList && providerLanguages && specialties && taxonomies && providerFacilityAffiliations && malpracticeInsuranceTypes\r\n && malpracticeInsuranceCarriers && malpracticeInsuranceAmounts && isGridLoaded) {\r\n setPageLoading(false);\r\n }\r\n }, [titleOrDegreeList, providerLanguages, specialties, taxonomies, providerFacilityAffiliations, malpracticeInsuranceTypes, malpracticeInsuranceCarriers, malpracticeInsuranceAmounts])\r\n\r\n useEffect(() => {\r\n if (titleOrDegreeList) {\r\n // Populate grid - NeedtitleOrDegree list before we start populating grid(for isValidProvider() operation)\r\n let rowArray = [];\r\n if (professionalApplication?.providers) {\r\n let list = professionalApplication?.providers;\r\n for (var i = 0; i < list.length; i++) {\r\n rowArray.push({\r\n id: list[i].providerGUID,\r\n lastName: list[i].lastName,\r\n middleInitial: list[i].middleInitial,\r\n firstName: list[i].firstName,\r\n npi: list[i].npi,\r\n ssn: list[i].ssn,\r\n validProvider: isValidProvider(list[i]) ? 'Y' : 'N'\r\n });\r\n\r\n }\r\n }\r\n setRows(rowArray);\r\n setIsGridLoaded(true);\r\n }\r\n }, [titleOrDegreeList]);\r\n\r\n useEffect(() => {\r\n let valid = validations.validateForm(errors);\r\n setFormIsValid(valid && isValidProvider(provider));\r\n }, [errors, provider, rows]);\r\n\r\n useEffect(() => {\r\n var lang = provider.languages.length === 0 ? \"Select Value(s)\" : provider.languages.join(\", \");\r\n setLanguages(lang);\r\n }, [provider.languages]);\r\n\r\n useEffect(() => {\r\n let addresses = [];\r\n if (provider.additionalLocations?.length > 0) {\r\n addresses = provider.additionalLocations?.map(loc => {\r\n var l = professionalApplication?.practiceLocations.filter(k => k.practiceLocationId === loc);\r\n if (l && l.length > 0) {\r\n return l[0].city + \", \" + l[0].state + \", \" + l[0].zipCode + \"-\" + l[0].zipPlus4 + \", \" + l[0].streetLine1;\r\n\r\n }\r\n });\r\n }\r\n var addLoc = addresses?.length > 0 ? addresses.join(\", \") : \"Select Value(s)\";\r\n setAdditionalLocations(addLoc);\r\n }, [provider.additionalLocations]);\r\n\r\n useEffect(() => {\r\n // TODO: Added the null check to top the client from crashing. Need to determine whether it was due to bad data, or if the check should remain\r\n if (provider.facilityAffiliations != null) {\r\n var vals = provider.facilityAffiliations.length === 0 ? \"Select Value(s)\" : Array.from(provider.facilityAffiliations, option => option.name).join(\", \");\r\n setAffiliations(vals);\r\n setSelectedAffiliations(vals);\r\n\r\n let errs = { ...errors };\r\n let selected = Array.from(provider.facilityAffiliations, option => option.name);\r\n errs.facilityAffiliations = \"\";\r\n\r\n if (!provider.hasAdmittingPrivileges && requiresPriv) {\r\n errs.facilityAffiliations = \"In Network Hospital Privileges are required for network participation\";\r\n } else if (provider.hasAdmittingPrivileges && selected.length === 0) {\r\n errs.facilityAffiliations = 'At least one affiliation is required if you have admitting privileges!';\r\n }\r\n\r\n setErrors(errs);\r\n }\r\n }, [provider.facilityAffiliations]);\r\n\r\n useEffect(() => {\r\n if (apiCallSuccess && professionalApplication) {\r\n dispatch({ type: types.REFRESH_APPLICATION_API_CALL_FLAG });\r\n if (buttonAction === \"saveAndNewClick\") {\r\n setCurrentProvider(newProviderObj);\r\n setRequiredErrors(initialErrorObj);\r\n setErrors(initialErrorObj);\r\n setRowIdBeingEdited(null);\r\n scrollToTop();\r\n setRequiresPriv(false);\r\n setShowAlert(\"success\");\r\n } else if (buttonAction === \"submitClick\") {\r\n setModal({\r\n modalOpen: true,\r\n modalBody: 'Success! Thank you for your interest in becoming a contracted provider. Please allow 30-45 days before checking on status.',\r\n modalButtonText: 'Okay',\r\n modalButtonClick: modalApplicationSubmitted,\r\n modalHideCancel: true,\r\n });\r\n } else if (buttonAction === \"backButtonClick\") {\r\n setRequiresPriv(false);\r\n history.push(\"/practiceContactInfo\");\r\n } else {\r\n scrollToTop();\r\n setShowAlert(\"success\");\r\n }\r\n } else if (apiErrors) {\r\n scrollToTop();\r\n setShowAlert(\"danger\");\r\n }\r\n setButtonAction(\"\");\r\n }, [apiCallSuccess, apiErrors]);\r\n useEffect(() => {\r\n if (!isFetching && npiField) {\r\n setErrors({ ...errors, [npiField]: npiIsValid });\r\n setNpiField(null);\r\n }\r\n }, [npiIsValid]);\r\n\r\n const modalApplicationSubmitted = () => { //SUBMITTED return to dashboard\r\n dispatch({ type: types.STORE_APPLICATION, applicationBeingUpdated: null });\r\n history.push(\"/Dashboard\");\r\n }\r\n\r\n const onFocusOut = (event) => {\r\n const { name, value } = event.target;\r\n let newValue = value.trim();\r\n let errs = { ...errors };\r\n switch (name) {\r\n case 'firstName':\r\n errs.firstName = validations.validateLength(name, newValue, 15, 0) || validations.validateNA(newValue);\r\n break;\r\n case 'middleInitial':\r\n errs.middleInitial = validations.validateLength(name, newValue, 1, 0);\r\n break;\r\n case 'lastName':\r\n errs.lastName = validations.validateLength(name, newValue, 60, 0) || validations.validateNA(newValue);\r\n break;\r\n case 'deaNumber':\r\n errs.deaNumber = validations.validateLength(name, newValue, 20, 0);\r\n break;\r\n case 'physicianName':\r\n var min = isTitleOrDegreeActive ? 1 : 0;\r\n errs.physicianName = validations.validateLength(name, newValue, 20, min) || validations.validateNA(newValue);\r\n break;\r\n default:\r\n break;\r\n }\r\n if (name === 'physicianName') {\r\n setProvider({ ...provider, primarySupervisingPhysician: { ...provider.primarySupervisingPhysician, name: newValue } });\r\n }\r\n else {\r\n setProvider({ ...provider, [name]: newValue });\r\n }\r\n setErrors(errs);\r\n }\r\n\r\n const updateRequiredErrors = (name, testValue, label) => {\r\n if (!testValue) {\r\n setRequiredErrors({ ...requiredErrors, [name]: `${label} is required` });\r\n }\r\n else {\r\n setRequiredErrors({ ...requiredErrors, [name]: '' });\r\n }\r\n }\r\n\r\n const titleOrDegreeInputRef = useRef();\r\n const [TitleDegreeTypeahead, setTitleDegreeTypeahead] = useState(\r\n provider.titleOrDegree ? [provider.titleOrDegree] : []\r\n );\r\n const onTitleDegreeChange = (selected) => {\r\n setTitleDegreeTypeahead(selected)\r\n updateRequiredErrors(\"titleOrDegree\", selected[0]?.value, \"Title/Degree\");\r\n setProvider({ ...provider, [\"titleOrDegree\"]: selected[0]?.value });\r\n let title = titleOrDegreeList ? titleOrDegreeList.items.find((s) => { return s.name === selected[0]?.value }) : null;\r\n setIsTitleOrDegreeActive(title ? title.supervisorInfoRequired : false);\r\n }\r\n\r\n const languageInputRef = useRef();\r\n const [LanguageTypeahead, setLanguageTypeahead] = useState([]);\r\n const onLanguageTypeaheadChange = (selected) => {\r\n setLanguageTypeahead(selected)\r\n const selectedLanguages = selected.map(item => item.value);\r\n setProvider({ ...provider, ['languages']: selectedLanguages });\r\n }\r\n\r\n const providerPrimarySpecialtyInputRef = useRef();\r\n const [ProviderPrimarySpecialtyTypeahead, setProviderPrimarySpecialtyTypeahead] = useState(\r\n provider.providerPrimarySpecialty?.name ? [provider.providerPrimarySpecialty.name] : []\r\n );\r\n const onProviderPrimarySpecialtyChange = (selected) => {\r\n setProviderPrimarySpecialtyTypeahead(selected)\r\n\r\n const selectedSpecialtyName = selected[0]?.value;\r\n\r\n updateRequiredErrors(\"providerPrimarySpecialty\", selectedSpecialtyName, \"Primary Specialty\");\r\n\r\n let primarySpecialty = specialties.items.find((s) => { return s.name === selectedSpecialtyName });\r\n\r\n let errs = { ...errors };\r\n\r\n errs.facilityAffiliations = \"\";\r\n setRequiresPriv(false);\r\n\r\n if (primarySpecialty && primarySpecialty.requiresPrivs) {\r\n setRequiresPriv(true);\r\n if (!provider.hasAdmittingPrivileges) {\r\n errs.facilityAffiliations = \"In Network Hospital Privileges are required for network participation\";\r\n }\r\n }\r\n\r\n errs.providerSecondarySpecialty = provider.providerSecondarySpecialty ? '' : errs.providerSecondarySpecialty;\r\n errs.providerPrimarySpecialty = '';\r\n\r\n if (selectedSpecialtyName === provider.providerSecondarySpecialty?.name) {\r\n errs.providerPrimarySpecialty = 'Primary specialty and secondary specialty cannot be same';\r\n }\r\n\r\n setErrors(errs);\r\n setProvider({ ...provider, [\"providerPrimarySpecialty\"]: primarySpecialty }); \r\n }\r\n\r\n const providerSecondarySpecialtyInputRef = useRef();\r\n const [ProviderSecondarySpecialtyTypeahead, setProviderSecondarySpecialtyTypeahead] = useState(\r\n provider.providerSecondarySpecialty?.name ? [provider.providerSecondarySpecialty.name] : []\r\n );\r\n const onProviderSecondarySpecialtyChange = (selected) => {\r\n\r\n setProviderSecondarySpecialtyTypeahead(selected)\r\n\r\n const selectedSpecialtyName = selected[0]?.value;\r\n let errs = { ...errors };\r\n let secondarySpecialty = specialties.items.find((s) => { return s.name === selectedSpecialtyName });\r\n\r\n updateRequiredErrors(\"providerSecondarySpecialty\", selectedSpecialtyName, \"Secondary Specialty\");\r\n\r\n errs.providerPrimarySpecialty = provider.providerPrimarySpecialty ? '' : errs.providerPrimarySpecialty;\r\n errs.providerSecondarySpecialty = '';\r\n\r\n if (provider.providerPrimarySpecialty?.name === selectedSpecialtyName) {\r\n errs.providerSecondarySpecialty = 'Primary specialty and secondary specialty cannot be same';\r\n }\r\n\r\n setErrors(errs);\r\n setProvider({ ...provider, [\"providerSecondarySpecialty\"]: secondarySpecialty });\r\n }\r\n\r\n const physicianSpecialtyInputRef = useRef();\r\n const [PhysicianSpecialtyTypeahead, setPhysicianSpecialtyTypeahead] = useState(\r\n provider.primarySupervisingPhysician?.specialty ? [provider.primarySupervisingPhysician.specialty] : []\r\n );\r\n const onPhysicianSpecialtyChange = (selected) => {\r\n setPhysicianSpecialtyTypeahead(selected)\r\n updateRequiredErrors(\"physicianSpecialty\", selected[0]?.value, \"Physician Specialty\");\r\n\r\n const selectedSpecialtyName = selected[0]?.value;\r\n setProvider({ ...provider, primarySupervisingPhysician: { ...provider.primarySupervisingPhysician, specialty: selectedSpecialtyName } });\r\n }\r\n\r\n const carrierInputRef = useRef();\r\n const [CarrierTypeahead, setCarrierTypeahead] = useState(\r\n provider.malpracticeInsurance?.carrier?.name ? [provider.malpracticeInsurance.carrier.name] : []\r\n );\r\n const onCarrierChange = (selected) => {\r\n setCarrierTypeahead(selected)\r\n\r\n const value = selected[0]?.value;\r\n setProvider({ ...provider, primarySupervisingPhysician: { ...provider.primarySupervisingPhysician, specialty: value } });\r\n updateRequiredErrors('carrier', value, \"Malpractice Insurance Carrier\");\r\n const insuranceCarrier = malpracticeInsuranceCarriers?.items.find(function (c) {\r\n return c.name === value\r\n });\r\n setProvider({ ...provider, malpracticeInsurance: { ...provider.malpracticeInsurance, ['carrier']: insuranceCarrier, otherCarrier: (value === 'Other') ? provider.malpracticeInsurance?.otherCarrier : null } });\r\n }\r\n\r\n const facilityAffiliationsInputRef = useRef();\r\n const [FacilityAffiliationsTypeahead, setFacilityAffiliationsTypeahead] = useState([]);\r\n const onFacilityAffiliationsTypeaheadChange = (selected) => {\r\n setFacilityAffiliationsTypeahead(selected)\r\n setProvider({ ...provider, ['facilityAffiliations']: selected });\r\n }\r\n\r\n const primaryTaxonomyInputRef = useRef();\r\n const [primaryTaxonomyTypeahead, setPrimaryTaxonomyTypeahead] = useState([]);\r\n const onPrimaryTaxonomyChange = (selected) => {\r\n setPrimaryTaxonomyTypeahead(selected)\r\n\r\n const name = 'primaryTaxonomy'\r\n const value = selected[0]?.value;\r\n let errs = { ...errors };\r\n\r\n updateRequiredErrors(name, value, \"Primary Taxonomy\");\r\n let taxonomy = taxonomies.items.find((t) => { return t.code.toLowerCase() === value?.toLowerCase() });\r\n let taxonomyValue = taxonomy ? taxonomy.code : value;\r\n let duplicateTaxonomyError = 'Primary Taxonomy and Secondary Taxonomy cannot be same';\r\n\r\n errs.secondaryTaxonomy = provider.secondaryTaxonomy ? '' : errs.secondaryTaxonomy;\r\n\r\n errs.primaryTaxonomy = '';\r\n if (!taxonomy) {\r\n errs.primaryTaxonomy = \"Not a valid Taxonomy, please choose another\";\r\n }\r\n else if (taxonomy?.code === provider.secondaryTaxonomy?.code) {\r\n errs.primaryTaxonomy = duplicateTaxonomyError;\r\n }\r\n\r\n setErrors(errs);\r\n setPrimaryTaxonomyValue(taxonomyValue);\r\n setProvider({ ...provider, [name]: taxonomy });\r\n }\r\n\r\n const secondaryTaxonomyInputRef = useRef();\r\n const [secondaryTaxonomyTypeahead, setSecondaryTaxonomyTypeahead] = useState([]);\r\n const onSecondaryTaxonomyChange = (selected) => {\r\n setSecondaryTaxonomyTypeahead(selected);\r\n const name = 'secondaryTaxonomy'\r\n const value = selected[0]?.value;\r\n let errs = { ...errors };\r\n\r\n let secondTaxonomy = taxonomies.items.find((t) => { return t.code.toLowerCase() === value?.toLowerCase() });\r\n let secondTaxonomyValue = secondTaxonomy ? secondTaxonomy.code : value;\r\n\r\n errs.primaryTaxonomy = provider.primaryTaxonomy ? '' : errs.primaryTaxonomy;\r\n\r\n errs.secondaryTaxonomy = '';\r\n\r\n if (provider.primaryTaxonomy?.code === secondTaxonomy?.code) {\r\n errs.secondaryTaxonomy = 'Primary Taxonomy and Secondary Taxonomy cannot be same';\r\n }\r\n\r\n setErrors(errs);\r\n setSecondaryTaxonomyValue(secondTaxonomyValue);\r\n setProvider({ ...provider, [name]: secondTaxonomy });\r\n \r\n }\r\n\r\n const onTypeaheadBlur = (typeaheadInputRef, typeaheadOptions, typeaheadName, isMultiple) => {\r\n var typeaheadInput = typeaheadInputRef.current.state.text;\r\n if (typeaheadInput) {\r\n var newItem = typeaheadOptions.find((s) => { return (s.value.toLowerCase() === typeaheadInput.toLowerCase() || s.label.toLowerCase() === typeaheadInput.toLowerCase()) })\r\n var setItems = newItem ? [newItem] : null;\r\n if (isMultiple) {\r\n var selectedItems = typeaheadInputRef.current.state.selected;\r\n if (newItem) {\r\n var alreadyPresent = selectedItems.some(function (item) {\r\n return item.value === newItem.value;\r\n });\r\n if (!alreadyPresent) {\r\n selectedItems.push(newItem);\r\n }\r\n }\r\n typeaheadInputRef.current.state.text = \"\";\r\n setItems = selectedItems;\r\n }\r\n\r\n if (setItems) {\r\n switch (typeaheadName) {\r\n case 'TitleDegree':\r\n onTitleDegreeChange(setItems);\r\n break;\r\n case 'Language':\r\n onLanguageTypeaheadChange(setItems);\r\n break;\r\n case 'ProviderPrimarySpecialty':\r\n onProviderPrimarySpecialtyChange(setItems);\r\n break;\r\n case 'ProviderSecondarySpecialty':\r\n onProviderSecondarySpecialtyChange(setItems);\r\n break;\r\n case 'PhysicianSpecialty':\r\n onPhysicianSpecialtyChange(setItems);\r\n break;\r\n case 'Carrier':\r\n onCarrierChange(setItems);\r\n break;\r\n case 'FacilityAffiliations':\r\n onFacilityAffiliationsTypeaheadChange(setItems);\r\n break;\r\n case 'PrimaryTaxonomy':\r\n onPrimaryTaxonomyChange(setItems);\r\n break;\r\n case 'SecondaryTaxonomy':\r\n onSecondaryTaxonomyChange(setItems);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n else {\r\n typeaheadInputRef.current.clear();\r\n }\r\n }\r\n }\r\n\r\n const saveInputs = (event) => {\r\n const { name, value } = event.target;\r\n let message = \"\";\r\n let methodName = \"\";\r\n let jsonResult = \"\";\r\n let errs = { ...errors };\r\n switch (name) {\r\n case 'firstName':\r\n updateRequiredErrors(name, value, \"First Name\");\r\n errs.firstName = !value || validations.validateLength(name, value, 15, 1) || validations.validateNA(value);\r\n break;\r\n case 'middleInitial':\r\n errs.middleInitial = validations.validateLength(name, value, 1, 0);\r\n break;\r\n case 'lastName':\r\n updateRequiredErrors(name, value, \"Last Name\");\r\n errs.lastName = !value || validations.validateLength(name, value, 60, 1) || validations.validateNA(value);\r\n break;\r\n case 'npi':\r\n updateRequiredErrors(name, value, \"NPI\");\r\n errs.npi = validations.validateNpi(value);\r\n errs.duplicateProvider = errs.npi === '' ? validateDuplicateProvider(value) : '';\r\n\r\n if (value == provider.primarySupervisingPhysician.npi) {\r\n errs.npi = \"NPI must be different from supervising physician\";\r\n }\r\n if (value && errs.duplicateProvider === '' && errs.npi === '') {\r\n setNpiField(\"npi\");\r\n message = \"Performing API call to validate NPI \" + value + \" for provider.\";\r\n methodName = \"saveInputs\";\r\n jsonResult = JSON.stringify(value);\r\n logInfoWrite(message, methodName, jsonResult);\r\n dispatch({ type: types.SIGNUP_GET_NPI_START, npi: value });\r\n }\r\n break;\r\n case 'ssn':\r\n updateRequiredErrors(name, value, \"Social Security Number\");\r\n errs.ssn = validations.validateSSN(value);\r\n break;\r\n case 'medicaidId':\r\n errs.medicaidId = validations.validateMedicaid(value);\r\n break;\r\n case 'medicareId':\r\n errs.medicareId = validations.validateMedicareId(value);\r\n break;\r\n case 'licenseNumber':\r\n updateRequiredErrors(name, value, \"License Number\");\r\n errs.licenseNumber = validations.validateLicenseNumber(value);\r\n break;\r\n case 'deaNumber':\r\n errs.deaNumber = validations.validateLength(name, value, 20, 0);\r\n if (value) {\r\n setIsRequiredDEADates(true);\r\n setProvider({ ...provider, [name]: value });\r\n }\r\n else {\r\n setIsRequiredDEADates(false);\r\n setProvider({\r\n ...provider,\r\n deaNumber: value,\r\n deaNumberEffectiveDate: null,\r\n deaNumberExpirationDate: null,\r\n\r\n });\r\n setRequiredErrors({\r\n ...requiredErrors,\r\n deaNumberEffectiveDate: '',\r\n deaNumberExpirationDate: '',\r\n });\r\n }\r\n break;\r\n case 'gender':\r\n updateRequiredErrors(name, value, \"Gender\");\r\n setProvider({ ...provider, [name]: event.target.id });\r\n break;\r\n case 'isPcp':\r\n updateRequiredErrors(name, value, \"Primary Care Provider\");\r\n setProvider({ ...provider, [name]: (value === \"Y\" ? true : false) });\r\n break;\r\n case 'isHospitalBased':\r\n updateRequiredErrors(name, value, \"Hospital Based\");\r\n setProvider({ ...provider, [name]: (value === \"Y\" ? true : false) });\r\n break;\r\n case 'caqhProviderId':\r\n errs.caqhProviderId = validations.validateCaqh(value);\r\n break;\r\n case 'hasAdmittingPrivileges':\r\n updateRequiredErrors(name, value, \"Admitting Privileges\");\r\n\r\n errs.facilityAffiliations = \"\";\r\n if (value === \"N\" && requiresPriv) {\r\n errs.facilityAffiliations = \"In Network Hospital Privileges are required for network participation\";\r\n } else if (value === \"Y\" && provider.facilityAffiliations.length === 0) {\r\n errs.facilityAffiliations = 'At least one affiliation is required if you have admitting privileges!';\r\n }\r\n setProvider({ ...provider, [name]: (value === \"Y\" ? true : false) });\r\n break;\r\n case 'primaryLocation':\r\n updateRequiredErrors(name, value, \"Primary Location\");\r\n var addLoc = provider.additionalLocations;\r\n if ((addLoc?.indexOf(value)) > -1) {\r\n alert(\"Primary Location cannot be the same as an Additional Location\");\r\n } else {\r\n setProvider({ ...provider, [name]: value });\r\n }\r\n break;\r\n case 'additionalLocations':\r\n var addLoc = provider.additionalLocations;\r\n if ((addLoc?.indexOf(event.target.id)) > -1) {\r\n if (!event.target.checked) {\r\n let filteredArray = provider.additionalLocations.filter(item => item !== event.target.id);\r\n setProvider({ ...provider, [name]: filteredArray });\r\n }\r\n }\r\n else {\r\n if (provider.primaryLocation === event.target.id) {\r\n alert(\"Primary Location cannot be the same as an Additional Location\");\r\n }\r\n else {\r\n errs.additionalLocations = '';\r\n setProvider({ ...provider, [name]: [...provider.additionalLocations, event.target.id] });\r\n }\r\n }\r\n break;\r\n case 'midlevelProtocolsAvailableOnRequest':\r\n setProvider({ ...provider, primarySupervisingPhysician: { ...provider.primarySupervisingPhysician, [name]: (value === \"Y\" ? true : false) } });\r\n break;\r\n case 'physicianName':\r\n var min = isTitleOrDegreeActive ? 1 : 0;\r\n errs.physicianName = validations.validateLength(name, value, 20, min);\r\n setProvider({ ...provider, primarySupervisingPhysician: { ...provider.primarySupervisingPhysician, name: value } });\r\n break;\r\n case 'physicianNpi':\r\n errs.physicianNpi = validations.validateNpi(value);\r\n\r\n if (value == provider.npi) {\r\n errs.physicianNpi = \"NPI must be different from applicant's NPI\"\r\n }\r\n\r\n if (errs.physicianNpi === '') {\r\n setNpiField(\"physicianNpi\");\r\n message = \"Performing API call to validate NPI \" + value + \" for physician.\";\r\n methodName = \"saveInputs\";\r\n jsonResult = JSON.stringify(value);\r\n logInfoWrite(message, methodName, jsonResult);\r\n dispatch({ type: types.SIGNUP_GET_NPI_START, npi: value });\r\n }\r\n setProvider({ ...provider, primarySupervisingPhysician: { ...provider.primarySupervisingPhysician, npi: value } });\r\n break;\r\n case 'isPhysicianContracted':\r\n setProvider({ ...provider, primarySupervisingPhysician: { ...provider.primarySupervisingPhysician, [name]: (value === \"Y\" ? true : false) } });\r\n break;\r\n case 'type':\r\n updateRequiredErrors(name, value, \"Malpractice Insurance Type\");\r\n const insuranceType = malpracticeInsuranceTypes?.items.find(function (c) {\r\n return c.name === value\r\n });\r\n setProvider({ ...provider, malpracticeInsurance: { ...provider.malpracticeInsurance, [name]: insuranceType } });\r\n break;\r\n case 'amounts':\r\n updateRequiredErrors(name, value, \"Malpractice Insurance Amounts\");\r\n setProvider({ ...provider, malpracticeInsurance: { ...provider.malpracticeInsurance, [name]: value } });\r\n break;\r\n case 'otherCarrier':\r\n setProvider({ ...provider, malpracticeInsurance: { ...provider.malpracticeInsurance, [name]: value } });\r\n break;\r\n default:\r\n break;\r\n\r\n }\r\n setCookie('isFormDataSaved', 'false', { path: '/', maxAge: 31536000 });\r\n\r\n if (![\"titleOrDegree\", \"languages\", \"gender\", \"providerPrimarySpecialty\", \"primaryTaxonomy\", \"providerSecondarySpecialty\", \"secondaryTaxonomy\",\r\n \"isPcp\", \"isHospitalBased\", \"facilityAffiliations\", \"hasAdmittingPrivileges\",\r\n \"midlevelProtocolsAvailableOnRequest\", \"physicianName\", \"physicianNpi\", \"physicianSpecialty\", \"isPhysicianContracted\",\r\n \"type\", \"carrier\", \"otherCarrier\", \"amounts\", \"primaryLocation\", \"additionalLocations\", \"deaNumber\"].includes(name)) {\r\n setProvider({ ...provider, [name]: value });\r\n }\r\n setErrors(errs);\r\n\r\n }\r\n\r\n const setCurrentProvider = (p) => {\r\n setProvider(p);\r\n setPrimaryTaxonomyValue(p.primaryTaxonomy ? p.primaryTaxonomy?.code : \"\");\r\n setSecondaryTaxonomyValue(p.secondaryTaxonomy ? p.secondaryTaxonomy?.code : \"\");\r\n let title = titleOrDegreeList ? titleOrDegreeList.items.find((s) => { return s.name === p?.titleOrDegree }) : null;\r\n setIsTitleOrDegreeActive(title ? title.supervisorInfoRequired : false);\r\n\r\n setTitleDegreeTypeahead(p.titleOrDegree ? [p.titleOrDegree] : [])\r\n setProviderPrimarySpecialtyTypeahead(p.providerPrimarySpecialty?.name ? [p.providerPrimarySpecialty.name] : [])\r\n setProviderSecondarySpecialtyTypeahead(p.providerSecondarySpecialty?.name ? [p.providerSecondarySpecialty.name] : [])\r\n setPhysicianSpecialtyTypeahead(p.primarySupervisingPhysician?.specialty ? [p.primarySupervisingPhysician.specialty] : [])\r\n setCarrierTypeahead(p.malpracticeInsurance?.carrier?.name ? [p.malpracticeInsurance?.carrier?.name] : [])\r\n\r\n let languages = p.languages.map(language => {\r\n return {\r\n value: language,\r\n label: language,\r\n name: language\r\n };\r\n });\r\n\r\n setLanguageTypeahead(languages)\r\n\r\n\r\n let facilityAffiliations = p.facilityAffiliations.map(fa => {\r\n return {\r\n value: fa.name,\r\n label: fa.name,\r\n name: fa.name\r\n };\r\n });\r\n\r\n setFacilityAffiliationsTypeahead(facilityAffiliations)\r\n\r\n let primaryTaxonomyValue = p.primaryTaxonomy\r\n ? {\r\n value: p.primaryTaxonomy.code,\r\n label: p.primaryTaxonomy.code,\r\n name: p.primaryTaxonomy.code\r\n }\r\n : {};\r\n\r\n setPrimaryTaxonomyTypeahead(p.primaryTaxonomy ? [primaryTaxonomyValue] : []);\r\n\r\n let secondaryTaxonomyValue = p.secondaryTaxonomy\r\n ? {\r\n value: p.secondaryTaxonomy.code,\r\n label: p.secondaryTaxonomy.code,\r\n name: p.secondaryTaxonomy.code\r\n }\r\n : {};\r\n\r\n setSecondaryTaxonomyTypeahead(p.secondaryTaxonomy ? [secondaryTaxonomyValue] : []);\r\n\r\n }\r\n\r\n const saveBirthDate = (value) => {\r\n const today = new Date();\r\n const enteredDate = new Date(value);\r\n\r\n if (enteredDate > today) {\r\n let errs = { ...errors };\r\n errs.birthDate = \"Date of birth cannot be a future date.\";\r\n setErrors(errs);\r\n setProvider({ ...provider, birthDate: null });\r\n } else {\r\n updateRequiredErrors(\"birthDate\", value, \"Date of Birth\");\r\n let errs = { ...errors };\r\n errs.birthDate = validations.validateDate(value);\r\n setErrors(errs);\r\n setProvider({ ...provider, birthDate: value === \"\" ? null : value });\r\n }\r\n }\r\n\r\n const saveEffectiveDate = (name, value, label) => {\r\n if (name === \"deaNumberEffectiveDate\") {\r\n if (provider.deaNumber) {\r\n updateRequiredErrors(name, value, label);\r\n }\r\n }\r\n else {\r\n updateRequiredErrors(name, value, label);\r\n }\r\n let errs = { ...errors };\r\n let error = validations.validateDate(value);\r\n switch (name) {\r\n case 'malpracticeEffectiveDate':\r\n errs.malpracticeEffectiveDate = error;\r\n if (provider.malpracticeInsurance?.malpracticeExpirationDate) {\r\n let error = validations.validateDateRange(value, provider.malpracticeInsurance?.malpracticeExpirationDate);\r\n errs.malpracticeExpirationDate = error;\r\n }\r\n setProvider({ ...provider, malpracticeInsurance: { ...provider.malpracticeInsurance, malpracticeEffectiveDate: value === \"\" ? null : value } });\r\n\r\n break;\r\n case 'licenseNumberEffectiveDate':\r\n errs.licenseNumberEffectiveDate = error;\r\n if (provider.licenseNumberExpirationDate) {\r\n let error = validations.validateDateRange(value, provider.licenseNumberExpirationDate);\r\n errs.licenseNumberExpirationDate = error;\r\n }\r\n setProvider({ ...provider, [name]: value === \"\" ? null : value });\r\n break;\r\n case 'deaNumberEffectiveDate':\r\n errs.deaNumberEffectiveDate = error;\r\n if (provider.deaNumberExpirationDate) {\r\n let error = validations.validateDateRange(value, provider.deaNumberExpirationDate);\r\n errs.deaNumberExpirationDate = error;\r\n }\r\n setProvider({ ...provider, [name]: value === \"\" ? null : value });\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n setErrors({ ...errs });\r\n\r\n }\r\n\r\n const saveExpirationDate = (name, value, label) => {\r\n if (name === \"deaNumberExpirationDate\") {\r\n if (provider.deaNumber) {\r\n updateRequiredErrors(name, value, label);\r\n }\r\n }\r\n else {\r\n updateRequiredErrors(name, value, label);\r\n }\r\n let errs = { ...errors };\r\n let error = validations.validateDate(value);\r\n switch (name) {\r\n case 'malpracticeExpirationDate':\r\n errs.malpracticeExpirationDate = error;\r\n if (error === '') {\r\n error = validations.validateExpirationDate(value);\r\n if (error === '' && provider.malpracticeInsurance?.malpracticeEffectiveDate) {\r\n error = validations.validateDateRange(provider.malpracticeInsurance?.malpracticeEffectiveDate, value);\r\n }\r\n errs.malpracticeExpirationDate = error;\r\n }\r\n setProvider({ ...provider, malpracticeInsurance: { ...provider.malpracticeInsurance, malpracticeExpirationDate: value === \"\" ? null : value } });\r\n\r\n break;\r\n case 'licenseNumberExpirationDate':\r\n errs.licenseNumberExpirationDate = error;\r\n if (error === '') {\r\n error = validations.validateExpirationDate(value);\r\n if (error === '' && provider.licenseNumberEffectiveDate) {\r\n error = validations.validateDateRange(provider.licenseNumberEffectiveDate, value);\r\n }\r\n errs.licenseNumberExpirationDate = error;\r\n }\r\n setProvider({ ...provider, [name]: value === \"\" ? null : value });\r\n break;\r\n case 'deaNumberExpirationDate':\r\n errs.deaNumberExpirationDate = error;\r\n if (error === '') {\r\n error = validations.validateExpirationDate(value);\r\n if (error === '' && provider.deaNumberEffectiveDate) {\r\n error = validations.validateDateRange(provider.deaNumberEffectiveDate, value);\r\n }\r\n errs.deaNumberExpirationDate = error;\r\n }\r\n setProvider({ ...provider, [name]: value === \"\" ? null : value });\r\n break;\r\n default:\r\n break;\r\n }\r\n setErrors(errs);\r\n }\r\n\r\n const isValidProvider = (p) => {\r\n let title = titleOrDegreeList ? titleOrDegreeList.items.find((s) => { return s.name === p.titleOrDegree }) : null;\r\n let supervisorInfoRequired = title ? title.supervisorInfoRequired : false;\r\n let deaNumberDatesRequired = p.deaNumber ? true : false;\r\n\r\n return !(!isValidExpirationDates(p) ||\r\n !p.firstName || !p.lastName || !p.npi || !p.ssn\r\n || !p.licenseNumber || !p.licenseNumberEffectiveDate || !p.licenseNumberExpirationDate\r\n || (deaNumberDatesRequired && (!p.deaNumberEffectiveDate || !p.deaNumberExpirationDate))\r\n || !p.birthDate || !p.gender || !p.titleOrDegree\r\n || !p.providerPrimarySpecialty || !p.primaryTaxonomy || !p.primarySpecialtyBoardCertificate || (p.isPcp == null)\r\n || (p.isHospitalBased == null)\r\n || !p.nonCaqhAttachments?.irsW9\r\n || (!p.caqhProviderId && !checkObject(p.nonCaqhAttachments, [\"deaRegistration\"])) || (p.hasAdmittingPrivileges == null)\r\n || (p.hasAdmittingPrivileges && p.hospitalAffiliations?.length === 0) || !p.primaryLocation\r\n || (supervisorInfoRequired && !checkObject(p.primarySupervisingPhysician, []))\r\n || (!checkObject(p.malpracticeInsurance, [\"otherCarrier\"]))\r\n );\r\n }\r\n const isValidExpirationDates = (p) => {\r\n let license = (p.licenseNumberExpirationDate && validations.validateExpirationDate(p.licenseNumberExpirationDate) === '');\r\n let deaNumber = p.deaNumber ? (p.deaNumberExpirationDate && validations.validateExpirationDate(p.deaNumberExpirationDate) === '') : true;\r\n let malPractice = (p.malpracticeInsurance?.malpracticeExpirationDate && validations.validateExpirationDate(p.malpracticeInsurance?.malpracticeExpirationDate) === '');\r\n return (license && deaNumber && malPractice);\r\n }\r\n\r\n const invalidProviders = () => {\r\n if ((emptyObject(provider) && rows.length > 0) || formIsValid) {\r\n for (var i = 0; i < rows?.length; i++) {\r\n if (rows[i].validProvider === 'N' && rowIdBeingEdited !== rows[i].id) {\r\n return rows[i].firstName + \" \" + rows[i].lastName;\r\n }\r\n }\r\n\r\n }\r\n else if (emptyObject(provider) && rows.length === 0) {\r\n return \" - Empty provider list.\";\r\n }\r\n else {\r\n let title = titleOrDegreeList ? titleOrDegreeList.items.find((s) => { return s.name === provider.titleOrDegree }) : null;\r\n let supervisorInfoRequired = title ? title.supervisorInfoRequired : false;\r\n let deaNumberDatesRequired = provider.deaNumber ? true : false;\r\n\r\n let providerRequiredFields = [{ key: 'First Name', value: provider.firstName }, { key: 'Last Name', value: provider.lastName },\r\n { key: 'NPI', value: provider.npi },\r\n { key: 'Social Security Number', value: provider.ssn },\r\n { key: 'License Number', value: provider.licenseNumber },\r\n { key: 'License Number Effective Date', value: provider.licenseNumberEffectiveDate },\r\n { key: 'License Number Expiration Date', value: provider.licenseNumberExpirationDate },\r\n { key: 'Title/Degree', value: provider.titleOrDegree },\r\n { key: 'Date of Birth', value: provider.birthDate },\r\n { key: 'Gender', value: provider.gender },\r\n { key: 'Primary Specialty', value: provider.providerPrimarySpecialty },\r\n { key: 'Primary Taxonomy', value: provider.primaryTaxonomy },\r\n { key: 'Specialty Board Certificate', value: provider.primarySpecialtyBoardCertificate },\r\n { key: 'Primary Care Provider', value: !(provider.isPcp == null) },\r\n { key: 'Hospital Based', value: !(provider.isHospitalBased == null) },\r\n { key: 'Admitting Privileges', value: !(provider.hasAdmittingPrivileges == null) },\r\n { key: 'Credentialing - W-9', value: provider.nonCaqhAttachments?.irsW9 },\r\n { key: 'Credentialing', value: (provider.caqhProviderId || checkObject(provider.nonCaqhAttachments, [\"deaRegistration\"])) },\r\n { key: 'Primary Location', value: provider.primaryLocation },\r\n { key: 'Provider Supervisor', value: ((!supervisorInfoRequired) || checkObject(provider.primarySupervisingPhysician, [])) },\r\n { key: 'Malpractice Insurance', value: checkObject(provider.malpracticeInsurance, [\"otherCarrier\"]) },\r\n ];\r\n\r\n if (deaNumberDatesRequired) {\r\n var deaDatesRequiredFields = [{ key: 'DEA Number Effective Date', value: provider.deaNumberEffectiveDate }, { key: 'DEA Number Expiration Date', value: provider.deaNumberExpirationDate }];\r\n providerRequiredFields.splice(6, 0, ...deaDatesRequiredFields); //adding DEA date fileds error at number 6 in the list to show erros in sequence when saving/submiting application.\r\n }\r\n\r\n let missingField = validations.validateRequiredFields(providerRequiredFields);\r\n if (missingField) {\r\n return ` on provider ${provider.firstName ? provider.firstName : \"\"} ${provider.lastName ? provider.lastName : \"\"} - ${missingField}`;\r\n }\r\n\r\n }\r\n return '';\r\n }\r\n\r\n const checkObject = (obj, optionalFields) => {\r\n let allFieldsAvailable = true;\r\n for (const property in obj) {\r\n if (!obj[property] && !optionalFields.includes(property) && typeof obj[property] !== \"boolean\") {\r\n allFieldsAvailable = false;\r\n }\r\n }\r\n return allFieldsAvailable;\r\n }\r\n const emptyObject = (obj) => {\r\n if (!obj)\r\n return true;\r\n\r\n for (const property in obj) {\r\n let val = obj[property];\r\n if (val) {\r\n if (typeof val === \"object\") {\r\n if (!emptyObject(val)) {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n } else if (typeof val === \"boolean\") {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n const validateDuplicateProvider = (npi) => {\r\n if (npi) {\r\n for (var i = 0; i < rows.length; i++) {\r\n if (rowIdBeingEdited !== rows[i].id && npi === rows[i].npi)\r\n return 'Provider with given NPI already exists.';\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n useEffect(() => {\r\n setErrors({ ...errors, [uploadOccuredAt]: documentApiError });\r\n if ([\"irsW9\", \"deaRegistration\", \"curriculumVitae\", \"credentialingApplication\"].includes(uploadOccuredAt)) {\r\n setProvider({ ...provider, nonCaqhAttachments: { ...provider.nonCaqhAttachments, [uploadOccuredAt]: lastAttachment } });\r\n } else if (uploadOccuredAt === \"malpracticePolicy\") {\r\n setProvider({ ...provider, malpracticeInsurance: { ...provider.malpracticeInsurance, [uploadOccuredAt]: lastAttachment } });\r\n } else {\r\n setProvider({ ...provider, [uploadOccuredAt]: lastAttachment });\r\n }\r\n if (lastAttachment) {\r\n setCookie('isFormDataSaved', 'false', { path: '/', maxAge: 31536000 });\r\n }\r\n dispatch({ type: types.SET_DEFAULT_DOCUMENT_STATE });\r\n }, [documentIsFetching, documentApiError]);\r\n\r\n const getUpdatedApplication = () => {\r\n let initialList = providersList ?? [];\r\n if (!emptyObject(provider)) {\r\n let updatedRows = [...rows];\r\n provider.providerGUID = provider.providerGUID ? provider.providerGUID : uuid();\r\n\r\n let currentRow = {\r\n id: (rowIdBeingEdited ? rowIdBeingEdited : provider.providerGUID),\r\n lastName: provider.lastName,\r\n middleInitial: provider.middleInitial,\r\n firstName: provider.firstName,\r\n npi: provider.npi,\r\n ssn: provider.ssn,\r\n validProvider: isValidProvider(provider) ? 'Y' : 'N'\r\n };\r\n if (rowIdBeingEdited) {\r\n const targetIndex = updatedRows.findIndex(p => p.id === rowIdBeingEdited);\r\n initialList = initialList.filter(function (obj) {\r\n return (obj.providerGUID !== rowIdBeingEdited);\r\n });\r\n updatedRows[targetIndex] = currentRow;\r\n } else {\r\n updatedRows.push(currentRow);\r\n }\r\n setRows(updatedRows);\r\n setRowIdBeingEdited(currentRow.id);\r\n initialList = [...initialList, provider];\r\n setProvidersList(initialList);\r\n }\r\n\r\n let updated = { ...professionalApplication, providers: initialList };\r\n return updated;\r\n }\r\n const onSaveClick = () => {\r\n setShowAlert(\"\");\r\n //Intermittent Save\r\n if (emptyObject(provider) && !providerRemovedFromGrid) {\r\n setButtonAction(\"\");\r\n }\r\n else if (validations.validateForm(errors)) {\r\n let c = getUpdatedApplication();\r\n setCookie('isFormDataSaved', 'true', { path: '/', maxAge: 31536000 });\r\n var message = \"Updating professional contract application.\";\r\n var methodName = \"onSaveClick\";\r\n var jsonResult = JSON.stringify(professionalApplication);\r\n logInfoWrite(message, methodName, jsonResult);\r\n dispatch({ type: types.UPDATE_PROFESSIONAL_APPLICATION_START, application: c, submit: false });\r\n dispatch({ type: types.STORE_APPLICATION, applicationBeingUpdated: c });\r\n setProviderRemovedFromGrid(false);\r\n }\r\n else {\r\n setButtonAction(\"\");\r\n }\r\n }\r\n const onBackButtonClick = () => {\r\n history.push(\"/practiceContactInfo\");\r\n }\r\n const onNextButtonClick = () => { //SUBMIT click\r\n let invalidProvider = invalidProviders();\r\n if (invalidProvider !== '') {\r\n alert(\"Please correct errors \" + invalidProvider);\r\n return;\r\n }\r\n setModal({\r\n modalOpen: true,\r\n modalBody: 'Do you wish to proceed with application submission?',\r\n modalButtonText: 'Submit',\r\n modalButtonClick: modalSubmitApplication\r\n });\r\n }\r\n const onRemoveProviderClick = (row) => { //Remove provider click\r\n setModal({\r\n modalOpen: true,\r\n modalBody: 'Do you wish to remove this provider?',\r\n modalButtonText: 'Remove',\r\n modalButtonClick: () => { modalRemoveProvider(row) }\r\n });\r\n }\r\n const modalSubmitApplication = () => { //SUBMIT confirmed\r\n setButtonAction(\"submitClick\");\r\n let c = getUpdatedApplication();\r\n var message = \"Submitting professional contract application.\";\r\n var methodName = \"modalSubmitApplication\";\r\n var jsonResult = JSON.stringify(c);\r\n logInfoWrite(message, methodName, jsonResult);\r\n setCookie('isFormDataSaved', 'true', { path: '/', maxAge: 31536000 });\r\n dispatch({ type: types.UPDATE_PROFESSIONAL_APPLICATION_START, application: c, submit: true });\r\n toggle();\r\n }\r\n const modalRemoveProvider = (row) => { //Removing Provider confirmed\r\n var message = \"Removing provider from in row \" + row.id + \" from grid.\";\r\n var methodName = \"modalRemoveProvider\";\r\n var jsonResult = JSON.stringify(providersList);\r\n logInfoWrite(message, methodName, jsonResult);\r\n if (rowIdBeingEdited === row.id) {\r\n setCurrentProvider(newProviderObj);\r\n setRowIdBeingEdited(null);\r\n setRequiredErrors(initialErrorObj);\r\n setRequiresPriv(false);\r\n setErrors(initialErrorObj);\r\n setCookie('isFormDataSaved', 'true', { path: '/', maxAge: 31536000 });\r\n }\r\n\r\n setRows(rows.filter(function (obj) {\r\n return obj.id !== row.id;\r\n }));\r\n\r\n var list = providersList.filter(function (obj) {\r\n return (obj.providerGUID !== row.id);\r\n });\r\n setProvidersList(list);\r\n let updated = { ...professionalApplication, providers: list };\r\n var message = \"Updating professional contract application.\";\r\n var methodName = \"modalRemoveProvider\";\r\n var jsonResult = JSON.stringify(updated);\r\n logInfoWrite(message, methodName, jsonResult);\r\n dispatch({ type: types.UPDATE_PROFESSIONAL_APPLICATION_START, application: updated, submit: false });\r\n dispatch({ type: types.STORE_APPLICATION, applicationBeingUpdated: updated });\r\n setProviderRemovedFromGrid(true);\r\n toggle();\r\n }\r\n const onSaveNewProviderClick = () => {\r\n setButtonAction(\"saveAndNewClick\");\r\n setIsRequiredDEADates(false);\r\n setShowRequiredFieldErrorInitially(false);\r\n onSaveClick();\r\n }\r\n\r\n const selectOrRemoveProvider = (e) => {\r\n let message = \"\";\r\n let methodName = \"selectOrRemoveProvider\";\r\n let jsonResult = \"\";\r\n\r\n if (e.field === \"removeProvider\") {\r\n message = \"Removing row \" + e.row.id + \" from providers grid.\";\r\n jsonResult = JSON.stringify(providersList);\r\n logInfoWrite(message, methodName, jsonResult);\r\n onRemoveProviderClick(e.row);\r\n }\r\n else if (e.field === \"editProvider\") {\r\n let id = e.row.id;\r\n setRowIdBeingEdited(id);\r\n var p = providersList.find(function (obj) {\r\n return (obj.providerGUID === id);\r\n });\r\n //this is necessary because dates are saved in teh DB as DateTimes, but we are only requiring Dates on the front end\r\n setCurrentProvider({\r\n ...p,\r\n birthDate: p.birthDate?.substring(0, 10),\r\n licenseNumberEffectiveDate: p.licenseNumberEffectiveDate?.substring(0, 10),\r\n licenseNumberExpirationDate: p.licenseNumberExpirationDate?.substring(0, 10),\r\n deaNumberEffectiveDate: p.deaNumberEffectiveDate?.substring(0, 10),\r\n deaNumberExpirationDate: p.deaNumberExpirationDate?.substring(0, 10),\r\n malpracticeInsurance: {\r\n ...p.malpracticeInsurance,\r\n malpracticeEffectiveDate: p.malpracticeInsurance?.malpracticeEffectiveDate?.substring(0, 10),\r\n malpracticeExpirationDate: p.malpracticeInsurance?.malpracticeExpirationDate?.substring(0, 10)\r\n }\r\n });\r\n if (p.providerPrimarySpecialty && p.providerPrimarySpecialty.requiresPriv) {\r\n setRequiresPriv(true);\r\n }\r\n message = \"Editing row for provider \" + p.npi + \" in providers grid.\";\r\n jsonResult = JSON.stringify(p);\r\n logInfoWrite(message, methodName, jsonResult);\r\n setShowRequiredFieldErrorInitially(true);\r\n let requiredErrorString = (testValue, label) => {\r\n let err = testValue ? '' : `${label} is required`;\r\n if (err === '' && (label === \"License Number Expiration Date\" || label === \"DEA Number Expiration Date\"\r\n || label === \"Malpractice Expiration Date\")) {\r\n err = validations.validateExpirationDate(testValue);\r\n }\r\n return err;\r\n }\r\n\r\n if (p.deaNumber) {\r\n setIsRequiredDEADates(true);\r\n }\r\n else {\r\n setIsRequiredDEADates(false);\r\n }\r\n setRequiredErrors({\r\n ...initialErrorObj,\r\n firstName: requiredErrorString(p.firstName, \"First Name\"),\r\n lastName: requiredErrorString(p.lastName, \"Last Name\"),\r\n npi: requiredErrorString(p.npi, \"NPI\"),\r\n ssn: requiredErrorString(p.ssn, \"Social Security Number\"),\r\n licenseNumber: requiredErrorString(p.licenseNumber, \"License Number\"),\r\n licenseNumberEffectiveDate: requiredErrorString(p.licenseNumberEffectiveDate, \"License Number Effective Date\"),\r\n licenseNumberExpirationDate: requiredErrorString(p.licenseNumberExpirationDate, \"License Number Expiration Date\"),\r\n deaNumberEffectiveDate: p.deaNumber ? requiredErrorString(p.deaNumberEffectiveDate, \"DEA Number Effective Date\") : '',\r\n deaNumberExpirationDate: p.deaNumber ? requiredErrorString(p.deaNumberExpirationDate, \"DEA Number Expiration Date\") : '',\r\n titleOrDegree: requiredErrorString(p.titleOrDegree, \"Title/Degree\"),\r\n gender: requiredErrorString(p.gender, \"Gender\"),\r\n providerPrimarySpecialty: requiredErrorString(p.providerPrimarySpecialty, \"Primary Specialty\"),\r\n primaryTaxonomy: requiredErrorString(p.primaryTaxonomy, \"Primary Taxonomy\"),\r\n isPcp: requiredErrorString(p.isPcp, \"Primary Care Provider\"),\r\n isHospitalBased: requiredErrorString(p.isHospitalBased, \"Hospital Based\"),\r\n\r\n hasAdmittingPrivileges: requiredErrorString(p.hasAdmittingPrivileges, \"Admitting Privileges\"),\r\n primaryLocation: requiredErrorString(p.primaryLocation, \"primaryLocation\"),\r\n malpracticeInsuranceTypes: requiredErrorString(p.malpracticeInsurance.type, \"Malpratice Insurance Type\"),\r\n malpracticeInsuranceCarriers: requiredErrorString(p.malpracticeInsurance.carrier, \"Malpratice Insurance Carrier\"),\r\n malpracticeInsuranceAmounts: requiredErrorString(p.malpracticeInsurance.amounts, \"Malpratice Insurance Amounts\"),\r\n birthDate: requiredErrorString(p.birthDate, \"Date of Birth\"),\r\n malpracticeEffectiveDate: requiredErrorString(p.malpracticeInsurance.malpracticeEffectiveDate, \"Malpractice Effective Date\"),\r\n malpracticeExpirationDate: requiredErrorString(p.malpracticeInsurance.malpracticeExpirationDate, \"Malpractice Expiration Date\"),\r\n });\r\n setErrors(initialErrorObj);\r\n }\r\n }\r\n const columns = [\r\n {\r\n field: 'validProvider',\r\n headerName: 'Data Complete',\r\n flex: 1,\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n renderCell: (params) => {\r\n if (params.row.validProvider === 'N') {\r\n return ()\r\n } else {\r\n return ()\r\n }\r\n },\r\n align: 'center',\r\n },\r\n {\r\n field: 'firstName',\r\n headerName: 'First Name',\r\n flex: 1,\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n align: 'center',\r\n },\r\n {\r\n field: 'middleInitial',\r\n headerName: 'Middle Initial',\r\n flex: 1,\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n align: 'center',\r\n },\r\n {\r\n field: 'lastName',\r\n headerName: 'Last Name',\r\n flex: 1,\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n align: 'center',\r\n },\r\n {\r\n field: 'npi',\r\n headerName: 'NPI',\r\n type: 'number',\r\n flex: 1,\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n align: 'center',\r\n },\r\n {\r\n field: 'ssn',\r\n headerName: 'Social Security #',\r\n type: 'number',\r\n flex: 1,\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n align: 'center',\r\n },\r\n {\r\n field: 'editProvider',\r\n headerName: 'Edit',\r\n headerClassName: 'grid-header',\r\n headerAlign: 'center',\r\n cellClassName: 'grid-rows',\r\n description: 'This column has a value getter and is not sortable.',\r\n sortable: false,\r\n width: 120,\r\n disableClickEventBubbling: true,\r\n renderCell: () => (\r\n \r\n ),\r\n align: 'center'\r\n },\r\n {\r\n field: 'removeProvider',\r\n headerName: 'Remove',\r\n headerClassName: 'grid-header',\r\n cellClassName: 'grid-rows',\r\n description: 'This column has a value getter and is not sortable.',\r\n sortable: false,\r\n width: 160,\r\n disableClickEventBubbling: true,\r\n renderCell: () => (\r\n \r\n ),\r\n },\r\n ];\r\n\r\n const logInfoWrite = (message, methodName, jsonResult) => {\r\n let loggingModel = {\r\n message: message,\r\n pageName: \"ProviderInformation\",\r\n methodName: methodName,\r\n jsonResult: jsonResult\r\n };\r\n\r\n setClientLoggingModel(loggingModel);\r\n if (clientLoggingModel.methodName !== null) {\r\n dispatch({ type: types.LOG_INFO_START, clientLoggingModel, userInfo });\r\n }\r\n }\r\n\r\n return
\r\n {showAlert.length > 0 && }\r\n Provider Information\r\n {\r\n pageLoading ?\r\n :\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {\r\n event.preventDefault();\r\n selectOrRemoveProvider(params);\r\n }}\r\n components={{\r\n NoRowsOverlay: () => (\r\n \r\n Data will automatically be entered here after you enter provider information\r\n
\r\n )\r\n }}\r\n />\r\n
\r\n \r\n \r\n \r\n \r\n\r\n Provider Identification\r\n \r\n \r\n \r\n \r\n 0 ? \"input-error\" : \"\")} type=\"text\" name=\"firstName\" id=\"firstName\" value={provider.firstName || \"\"} onChange={saveInputs} autoComplete=\"off\" onBlur={onFocusOut} />\r\n {errors.firstName.length > 0 ? {errors.firstName} : \"\"}\r\n {requiredErrors.firstName}\r\n \r\n \r\n \r\n \r\n \r\n 0 ? \"input-error\" : \"\")} type=\"text\" name=\"middleInitial\" id=\"middleInitial\" value={provider.middleInitial || \"\"} onChange={saveInputs} autoComplete=\"off\" onBlur={onFocusOut} />\r\n {errors.middleInitial.length > 0 ? {errors.middleInitial} : \"\"}\r\n \r\n \r\n \r\n \r\n \r\n 0 ? \"input-error\" : \"\")} type=\"text\" name=\"lastName\" id=\"lastName\" value={provider.lastName || \"\"} onChange={saveInputs} autoComplete=\"off\" onBlur={onFocusOut} />\r\n {errors.lastName.length > 0 ? {errors.lastName} : \"\"}\r\n {requiredErrors.lastName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0 ? \"input-error\" : \"\")} type=\"text\" name=\"npi\" id=\"npi\" value={provider.npi || \"\"} onChange={saveInputs} autoComplete=\"off\" />\r\n {errors.npi.length > 0 ? {errors.npi} : \"\"}\r\n {errors.duplicateProvider.length > 0 && {errors.duplicateProvider}}\r\n {requiredErrors.npi}\r\n {!requiredErrors.npi && showRequiredFieldErrorInitially && !provider.npi && NPI is required}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {errors.ssn.length > 0 ? {errors.ssn} : \"\"}\r\n {requiredErrors.ssn}\r\n {!requiredErrors.ssn && showRequiredFieldErrorInitially && !provider.ssn && Social Security Number is required}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0 ? \"input-error\" : \"\")} name=\"medicaidId\"\r\n id=\"medicaidId\" value={provider.medicaidId || \"\"} onChange={saveInputs} autoComplete=\"off\" maxLength={9} />\r\n {errors.medicaidId.length > 0 ? {errors.medicaidId} : \"\"}\r\n\r\n \r\n \r\n \r\n \r\n \r\n 0 ? \"input-error\" : \"\")} type=\"text\" name=\"medicareId\" id=\"medicareId\" maxLength={20} value={provider.medicareId || \"\"} onChange={saveInputs} autoComplete=\"off\" />\r\n {errors.medicareId.length > 0 ? {errors.medicareId} : \"\"}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { saveEffectiveDate(e.target.name, e.target.value, \"License Number Effective Date\") }}\r\n error={errors.licenseNumberEffectiveDate.length > 0 ? errors.licenseNumberEffectiveDate : requiredErrors.licenseNumberEffectiveDate}\r\n />\r\n \r\n \r\n { saveExpirationDate(e.target.name, e.target.value, \"License Number Expiration Date\") }}\r\n error={errors.licenseNumberExpirationDate.length > 0 ? errors.licenseNumberExpirationDate : requiredErrors.licenseNumberExpirationDate}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n { saveEffectiveDate(e.target.name, e.target.value, \"DEA Number Effective Date\") }}\r\n error={errors.deaNumberEffectiveDate.length > 0 ? errors.deaNumberEffectiveDate : requiredErrors.deaNumberEffectiveDate}\r\n />\r\n \r\n \r\n { saveExpirationDate(e.target.name, e.target.value, \"DEA Number Expiration Date\") }}\r\n error={errors.deaNumberExpirationDate.length > 0 ? errors.deaNumberExpirationDate : requiredErrors.deaNumberExpirationDate}\r\n />\r\n \r\n \r\n \r\n \r\n\r\n \r\n onTypeaheadBlur(titleOrDegreeInputRef, titleOrDegreeOptions, \"TitleDegree\", false)}\r\n ref={titleOrDegreeInputRef}\r\n />\r\n {requiredErrors.titleOrDegree ? {requiredErrors.titleOrDegree} : \"\"}\r\n \r\n \r\n \r\n onTypeaheadBlur(languageInputRef, languageList, \"Language\", true)}\r\n ref={languageInputRef}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n { saveBirthDate(e.target.value) }}\r\n error={errors.birthDate.length > 0 ? errors.birthDate : requiredErrors.birthDate}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Male\r\n Female\r\n \r\n {showRequiredFieldErrorInitially && !provider.gender && Gender is required}\r\n \r\n \r\n \r\n\r\n Provider Specialty\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onTypeaheadBlur(providerPrimarySpecialtyInputRef, specialtiesListOptions, \"ProviderPrimarySpecialty\", false)}\r\n ref={providerPrimarySpecialtyInputRef}\r\n />\r\n {requiredErrors.providerPrimarySpecialty ? {requiredErrors.providerPrimarySpecialty} : errors.providerPrimarySpecialty ?\r\n
\r\n {errors.providerPrimarySpecialty}\r\n
\r\n :\r\n \"\"}\r\n \r\n \r\n \r\n onTypeaheadBlur(primaryTaxonomyInputRef, taxonomiesListOptions, \"PrimaryTaxonomy\", false)}\r\n ref={primaryTaxonomyInputRef}\r\n />\r\n {requiredErrors.primaryTaxonomy ? {requiredErrors.primaryTaxonomy} : errors.primaryTaxonomy ?\r\n
\r\n {errors.primaryTaxonomy}\r\n
\r\n :\r\n \"\"}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {requiresPriv ?
Your specialty requires Affiliation(s) at an in-network facility
: \"\"}\r\n \r\n
\r\n \r\n \r\n \r\n onTypeaheadBlur(providerSecondarySpecialtyInputRef, specialtiesListOptions, \"ProviderSecondarySpecialty\", false)}\r\n ref={providerSecondarySpecialtyInputRef}\r\n />\r\n {errors.providerSecondarySpecialty && (\r\n
\r\n {errors.providerSecondarySpecialty}\r\n
\r\n )}\r\n \r\n \r\n \r\n onTypeaheadBlur(secondaryTaxonomyInputRef, taxonomiesListOptions, \"SecondaryTaxonomy\", false)}\r\n ref={secondaryTaxonomyInputRef}\r\n />\r\n {errors.secondaryTaxonomy && (\r\n
\r\n {errors.secondaryTaxonomy}\r\n
\r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n\r\n Provider Accreditation/Licensing\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onTypeaheadBlur(facilityAffiliationsInputRef, providerFacilityAffiliationList, \"FacilityAffiliations\", true)}\r\n ref={facilityAffiliationsInputRef}\r\n />\r\n {provider.hasAdmittingPrivileges && requiredErrors.facilityAffiliations ? {requiredErrors.facilityAffiliations} : \"\"}\r\n \r\n \r\n\r\n Provider Credentialing\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n 0 ? \"input-error\" : \"\")} type=\"text\" name=\"caqhProviderId\" id=\"caqhProviderId\" value={provider.caqhProviderId || \"\"} onChange={saveInputs} />\r\n {errors.caqhProviderId.length > 0 &&\r\n {errors.caqhProviderId}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n

Click here to download TSCA form

\r\n
\r\n \r\n
\r\n\r\n Provider Locations\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n Provider Supervisor\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onFocusOut(e)}\r\n maxLength={20}\r\n value={provider.primarySupervisingPhysician?.name || \"\"}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onTypeaheadBlur(physicianSpecialtyInputRef, specialtiesListOptions, \"PhysicianSpecialty\", false)}\r\n ref={physicianSpecialtyInputRef}\r\n />\r\n {isTitleOrDegreeActive && requiredErrors.physicianSpecialty ? {requiredErrors.physicianSpecialty} : \"\"}\r\n \r\n \r\n \r\n \r\n \r\n\r\n Provider Insurance\r\n \r\n \r\n \r\n \r\n \r\n { saveEffectiveDate(e.target.name, e.target.value, \"Malpractice Insurance Effective Date\") }}\r\n error={errors.malpracticeEffectiveDate.length > 0 ? errors.malpracticeEffectiveDate : requiredErrors.malpracticeEffectiveDate}\r\n />\r\n \r\n \r\n { saveExpirationDate(e.target.name, e.target.value, \"Malpractice Insurance Expiration Date\") }}\r\n error={errors.malpracticeExpirationDate.length > 0 ? errors.malpracticeExpirationDate : requiredErrors.malpracticeExpirationDate}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onTypeaheadBlur(carrierInputRef, malpracticeInsuranceCarriersOptions, \"Carrier\", false)}\r\n ref={carrierInputRef}\r\n />\r\n {requiredErrors.carrier ? {requiredErrors.carrier} : \"\"}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {provider.malpracticeInsurance?.carrier?.name === 'Other' &&\r\n < FormField type=\"text\"\r\n name=\"otherCarrier\"\r\n id=\"otherCarrier\"\r\n label=\"Other Malpractice Insurance Carrier\"\r\n error={errors.otherCarrier}\r\n onChange={saveInputs}\r\n value={provider.malpracticeInsurance?.otherCarrier || \"\"}\r\n />\r\n }\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {modal.modalBody}\r\n \r\n \r\n {' '}\r\n {modal.modalHideCancel ? \"\" : }\r\n \r\n \r\n\r\n validations.validateForm(errors)}\r\n requiredFields={requiredFields}\r\n submitIsDisplayed={true} />\r\n
\r\n }\r\n ;\r\n}","import React, { useState } from \"react\";\r\nimport { Col, Row, Button } from \"reactstrap\";\r\nimport { FormField } from \"../../../common/FormField\";\r\nimport PropTypes from 'prop-types';\r\n\r\nexport const HoursOfOperation = (props) => {\r\n let { updateHours, addHours, removeHours, value, index } = props;\r\n const [dayOfWeek, setDayOfWeek] = useState(value.day ?? \"Monday\");\r\n const [startTime, setStartTime] = useState(value.startTime ?? null);\r\n const [endTime, setEndTime] = useState(value.endTime ?? null);\r\n\r\n const daysOfTheWeek = [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"];\r\n const daysOfTheWeekOptions = daysOfTheWeek.map((day) => { return { value: day , label: day} });\r\n\r\n const onFieldChange = (field, e) => {\r\n let hoursOfOperation = { day: dayOfWeek, startTime, endTime };\r\n hoursOfOperation = {...hoursOfOperation, [field]: e.target.value };\r\n\r\n switch (field) {\r\n case \"day\":\r\n setDayOfWeek(e.target.value);\r\n break;\r\n case \"startTime\":\r\n setStartTime(e.target.value);\r\n break;\r\n case \"endTime\":\r\n setEndTime(e.target.value);\r\n break;\r\n }\r\n\r\n updateHours(hoursOfOperation);\r\n }\r\n\r\n return \r\n \r\n onFieldChange(\"day\", e)}\r\n />\r\n \r\n \r\n onFieldChange(\"startTime\", e)}\r\n />\r\n \r\n \r\n onFieldChange(\"endTime\", e)}\r\n />\r\n \r\n \r\n \r\n {index !== 0 && }\r\n \r\n \r\n}\r\n\r\nHoursOfOperation.propTypes = {\r\n updateHours: PropTypes.func,\r\n addHours: PropTypes.func,\r\n removeHours: PropTypes.func,\r\n index: PropTypes.number,\r\n value: PropTypes.object\r\n}","export const PracticeLimitationsTypes = {\r\n NA: \"N/A\",\r\n AcceptsPatientsThrough19: \"AcceptsPatientsThrough19\",\r\n AcceptsPatientsThrough20: \"AcceptsPatientsThrough20\",\r\n AcceptsFemalePatientsOnly: \"AcceptsFemalePatientsOnly\",\r\n AcceptsMalePatientsOnly: \"AcceptsMalePatientsOnly\",\r\n CulturalCompetencyTrainingCompleted: \"CulturalCompetencyTrainingCompleted\",\r\n NotAcceptingNewPatients: \"NotAcceptingNewPatients\",\r\n OffersTelemedicineServices: \"OffersTelemedicineServices\",\r\n OffersTelemonitoring: \"OffersTelemonitoring\",\r\n PatientsYounger: \"PatientsYounger\",\r\n AcceptsPatientsYounger: \"AcceptsPatientsYounger\",\r\n PatientsOlder: \"PatientsOlder\",\r\n AcceptsPatientsOlder: \"AcceptsPatientsOlder\",\r\n YoungerChildren: \"YoungerChildren\",\r\n AcceptsYoungerChildren: \"AcceptsYoungerChildren\",\r\n NoChildrenUnderTheAge: \"NoChildrenUnderTheAge\",\r\n AcceptsNoChildrenUnderTheAge: \"AcceptsNoChildrenUnderTheAge\",\r\n};\r\n\r\nObject.freeze(PracticeLimitationsTypes);","import React, { useState, useEffect } from \"react\";\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Input, Label } from \"reactstrap\";\r\nimport PropTypes from 'prop-types';\r\nimport * as types from '../../../../constants/actionTypes';\r\nimport * as lists from '../../../../constants/listType'\r\nimport * as limitations from '../../../../constants/PracticeLimitationsTypes'\r\nexport const PracticeLimitations = (props) => {\r\n let { updatePracticeLimitations, currentPracticeLimitations } = props;\r\n const dispatch = useDispatch();\r\n\r\n const [error, setError] = useState(\"\");\r\n const [limitationsPatientsOlder, setLimitationsPatientsOlder] = useState(false);\r\n const [limitationsPatientsOlderOption, setLimitationsPatientsOlderOption] = useState('Select Age');\r\n const [limitationsPatientsYounger, setLimitationsPatientsYounger] = useState(false);\r\n const [limitationsPatientsYoungerOption, setLimitationsPatientsYoungerOption] = useState('Select Age');\r\n const [limitationsYoungerChildren, setLimitationsYoungerChildren] = useState(false);\r\n const [limitationsYoungerChildrenOption, setLimitationsYoungerChildrenOption] = useState('Select Age');\r\n const [limitationsNoChildrenUnderTheAge, setLimitationsNoChildrenUnderTheAge] = useState(false);\r\n const [limitationsNoChildrenUnderTheAgeOption, setLimitationsNoChildrenUnderTheAgeOption] = useState('Select Age');\r\n\r\n const [limitationsNA, setLimitationsNA] = useState(false);\r\n const [limitationsAcceptsPatientsThrough19, setLimitationsAcceptsPatientsThrough19] = useState(false);\r\n const [limitationsAcceptsPatientsThrough20, setLimitationsAcceptsPatientsThrough20] = useState(false);\r\n const [limitationsAcceptsFemalePatientsOnly, setLimitationsAcceptsFemalePatientsOnly] = useState(false);\r\n const [limitationsAcceptsMalePatientsOnly, setLimitationsAcceptsMalePatientsOnly] = useState(false);\r\n const [limitationsCulturalCompetencyTrainingCompleted, setLimitationsCulturalCompetencyTrainingCompleted] = useState(false);\r\n const [limitationsNotAcceptingNewPatients, setLimitationsNotAcceptingNewPatients] = useState(false);\r\n const [limitationsOffersTelemedicineServices, setLimitationsOffersTelemedicineServices] = useState(false);\r\n const [limitationsOffersTelemonitoring, setLimitationsOffersTelemonitoring] = useState(false);\r\n\r\n useEffect(() => {\r\n dispatch({ type: types.APPLICATION_GET_REFERENCE_LIST_START, listname: lists.ListType.PracticeLimitationList });\r\n }, []);\r\n const practiceLimitationsOptions = useSelector((state) => state.professionalApplication.practiceLimitationList);\r\n\r\n const patientsOlder = practiceLimitationsOptions ? practiceLimitationsOptions.items.filter(s => s.type === limitations.PracticeLimitationsTypes.PatientsOlder) : null;\r\n const patientsOlderOptions = patientsOlder\r\n ? patientsOlder.map((t) => { return { value: t.name, label: t.value } }) : [];\r\n\r\n const patientsYounger = practiceLimitationsOptions ? practiceLimitationsOptions.items.filter(s => s.type === limitations.PracticeLimitationsTypes.PatientsYounger) : null;\r\n const patientsYoungerOptions = patientsYounger\r\n ? patientsYounger.map((t) => { return { value: t.name, label: t.value } }) : [];\r\n\r\n const youngerChildren = practiceLimitationsOptions ? practiceLimitationsOptions.items.filter(s => s.type === limitations.PracticeLimitationsTypes.YoungerChildren) : null;\r\n const youngerChildrenOptions = youngerChildren\r\n ? youngerChildren.map((t) => { return { value: t.name, label: t.value } }) : [];\r\n\r\n const noChildrenUnderTheAge = practiceLimitationsOptions ? practiceLimitationsOptions.items.filter(s => s.type === limitations.PracticeLimitationsTypes.NoChildrenUnderTheAge) : null;\r\n const noChildrenUnderTheAgeOptions = noChildrenUnderTheAge\r\n ? noChildrenUnderTheAge.map((t) => { return { value: t.name, label: t.value } }) : [];\r\n\r\n useEffect(() => {\r\n if (currentPracticeLimitations) {\r\n let id = currentPracticeLimitations.type;\r\n let value = currentPracticeLimitations.name;\r\n checkRadioBox(id);\r\n if (id === limitations.PracticeLimitationsTypes.PatientsOlder || id === limitations.PracticeLimitationsTypes.PatientsYounger || id === limitations.PracticeLimitationsTypes.YoungerChildren || id === limitations.PracticeLimitationsTypes.NoChildrenUnderTheAge) {\r\n setDropDownValue(id, value);\r\n }\r\n }\r\n }, [currentPracticeLimitations]);\r\n\r\n const onAgeChange = (e) => {\r\n let limitations = practiceLimitationsOptions.items.find((t) => {\r\n return t.name.toLowerCase() === e.target.value.toLowerCase()\r\n });\r\n updatePracticeLimitations(limitations);\r\n setError(\"\");\r\n }\r\n\r\n const handleRadioChange = (e) => {\r\n let id = e.target.id;\r\n setRadiosToFalse();\r\n checkRadioBox(id);\r\n updatePracticeLimitations(null);\r\n setLimitationsPatientsOlderOption('Select Age');\r\n setLimitationsPatientsYoungerOption('Select Age');\r\n setLimitationsYoungerChildrenOption('Select Age');\r\n setLimitationsNoChildrenUnderTheAgeOption('Select Age');\r\n if (id !== limitations.PracticeLimitationsTypes.PatientsOlder && id !== limitations.PracticeLimitationsTypes.PatientsYounger && id !== limitations.PracticeLimitationsTypes.YoungerChildren && id !== limitations.PracticeLimitationsTypes.NoChildrenUnderTheAge) {\r\n setError(\"\");\r\n let limitations = practiceLimitationsOptions.items.find((t) => {\r\n return t.type.toLowerCase() === e.target.id.toLowerCase()\r\n });\r\n updatePracticeLimitations(limitations);\r\n } else {\r\n setError(\"Select Age from dropdown\");\r\n }\r\n }\r\n\r\n const setDropDownValue = (id, value) => {\r\n switch (id) {\r\n case limitations.PracticeLimitationsTypes.AcceptsPatientsOlder:\r\n case limitations.PracticeLimitationsTypes.PatientsOlder:\r\n setLimitationsPatientsOlderOption(value);\r\n break;\r\n case limitations.PracticeLimitationsTypes.AcceptsPatientsYounger:\r\n case limitations.PracticeLimitationsTypes.PatientsYounger:\r\n setLimitationsPatientsYoungerOption(value);\r\n break;\r\n case limitations.PracticeLimitationsTypes.AcceptsYoungerChildren:\r\n case limitations.PracticeLimitationsTypes.YoungerChildren:\r\n setLimitationsYoungerChildrenOption(value);\r\n break;\r\n case limitations.PracticeLimitationsTypes.AcceptsNoChildrenUnderTheAge:\r\n case limitations.PracticeLimitationsTypes.NoChildrenUnderTheAge:\r\n setLimitationsNoChildrenUnderTheAgeOption(value);\r\n break;\r\n }\r\n }\r\n\r\n const checkRadioBox = (id) => {\r\n switch (id) {\r\n case limitations.PracticeLimitationsTypes.NA:\r\n setLimitationsNA(true);\r\n break;\r\n case limitations.PracticeLimitationsTypes.AcceptsPatientsThrough19:\r\n setLimitationsAcceptsPatientsThrough19(true);\r\n break;\r\n case limitations.PracticeLimitationsTypes.AcceptsPatientsThrough20:\r\n setLimitationsAcceptsPatientsThrough20(true);\r\n break;\r\n case limitations.PracticeLimitationsTypes.AcceptsFemalePatientsOnly:\r\n setLimitationsAcceptsFemalePatientsOnly(true);\r\n break;\r\n case limitations.PracticeLimitationsTypes.AcceptsMalePatientsOnly:\r\n setLimitationsAcceptsMalePatientsOnly(true);\r\n break;\r\n case limitations.PracticeLimitationsTypes.CulturalCompetencyTrainingCompleted:\r\n setLimitationsCulturalCompetencyTrainingCompleted(true);\r\n break;\r\n case limitations.PracticeLimitationsTypes.NotAcceptingNewPatients:\r\n setLimitationsNotAcceptingNewPatients(true);\r\n break;\r\n case limitations.PracticeLimitationsTypes.OffersTelemedicineServices:\r\n setLimitationsOffersTelemedicineServices(true);\r\n break;\r\n case limitations.PracticeLimitationsTypes.OffersTelemonitoring:\r\n setLimitationsOffersTelemonitoring(true);\r\n break;\r\n case limitations.PracticeLimitationsTypes.PatientsYounger:\r\n setLimitationsPatientsYounger(true);\r\n break;\r\n case limitations.PracticeLimitationsTypes.PatientsOlder:\r\n setLimitationsPatientsOlder(true);\r\n break;\r\n case limitations.PracticeLimitationsTypes.YoungerChildren:\r\n setLimitationsYoungerChildren(true);\r\n break;\r\n case limitations.PracticeLimitationsTypes.NoChildrenUnderTheAge:\r\n setLimitationsNoChildrenUnderTheAge(true);\r\n break;\r\n }\r\n }\r\n\r\n const setRadiosToFalse = () => {\r\n setLimitationsNA(false);\r\n setLimitationsAcceptsPatientsThrough19(false);\r\n setLimitationsAcceptsPatientsThrough20(false);\r\n setLimitationsAcceptsFemalePatientsOnly(false);\r\n setLimitationsAcceptsMalePatientsOnly(false);\r\n setLimitationsCulturalCompetencyTrainingCompleted(false);\r\n setLimitationsNotAcceptingNewPatients(false);\r\n setLimitationsOffersTelemedicineServices(false);\r\n setLimitationsOffersTelemonitoring(false);\r\n setLimitationsPatientsYounger(false);\r\n setLimitationsPatientsOlder(false);\r\n setLimitationsYoungerChildren(false);\r\n setLimitationsNoChildrenUnderTheAge(false);\r\n }\r\n\r\n return
\r\n {error && {error}}\r\n
handleRadioChange(e)} checked={limitationsNA} />
\r\n
\r\n handleRadioChange(e)} checked={limitationsPatientsOlder}/>\r\n \r\n
\r\n
\r\n handleRadioChange(e)} checked={limitationsPatientsYounger}/>\r\n \r\n
\r\n
\r\n handleRadioChange(e)} checked={limitationsAcceptsPatientsThrough19} />\r\n \r\n
\r\n
\r\n handleRadioChange(e)} checked={limitationsAcceptsPatientsThrough20} />\r\n \r\n
\r\n
\r\n handleRadioChange(e)} checked={limitationsYoungerChildren} />\r\n \r\n
\r\n
handleRadioChange(e)} checked={limitationsNoChildrenUnderTheAge} />\r\n \r\n
\r\n
handleRadioChange(e)} checked={limitationsAcceptsFemalePatientsOnly} />
\r\n
handleRadioChange(e)} checked={limitationsAcceptsMalePatientsOnly} />
\r\n
handleRadioChange(e)} checked={limitationsCulturalCompetencyTrainingCompleted} />
\r\n
handleRadioChange(e)} checked={limitationsNotAcceptingNewPatients} />
\r\n
handleRadioChange(e)} checked={limitationsOffersTelemedicineServices} />
\r\n
handleRadioChange(e)} checked={limitationsOffersTelemonitoring} />
\r\n
\r\n}\r\n\r\nPracticeLimitations.propTypes = {\r\n updatePracticeLimitations: PropTypes.func,\r\n currentPracticeLimitations: PropTypes.object,\r\n}","import React, { useState, useEffect, useRef } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Form, Label, Row, Col, Input, FormGroup, Button } from 'reactstrap';\r\nimport { SectionHeader } from '../../../common/SectionHeader';\r\nimport { SubSectionHeader } from '../../../common/SubSectionHeader';\r\nimport { FormField } from '../../../common/FormField';\r\nimport * as types from '../../../../constants/actionTypes';\r\nimport { NavigationFooter, scrollToTop } from './NavigationFooter';\r\nimport * as lists from '../../../../constants/listType';\r\nimport { validateForm, validateMedicaid, validateNpi, validateNumberBetween, validateTaxId, validateNA } from '../../../../constants/validations';\r\nimport { HoursOfOperation } from './HoursOfOperation';\r\nimport { PracticeLimitations } from './PracticeLimitations';\r\nimport { useHistory } from 'react-router';\r\nimport { CustomAlert } from '../../../common/CustomAlert';\r\nimport { useCookies } from 'react-cookie';\r\nimport { ClientLoggingModel } from '../../../../models/ClientLoggingModel';\r\nimport { LoadingAnimation } from '../../../common/LoadingAnimation';\r\nimport { useFeatureFlag } from '../../../../common/useFeatureFlag';\r\nimport { TaxIdModal } from '../../Dashboard/TaxIdModal';\r\nimport { Typeahead } from 'react-bootstrap-typeahead';\r\n\r\nexport const PracticeInformation = (props) => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const groupSpecialtyInputRef = useRef();\r\n\r\n const applicationId = history && history.location.state ? history.location.state.appId : \"\";\r\n const [pageLoading, setPageLoading] = useState(true);\r\n const userInfo = useSelector((state) => state.user.userInfo);\r\n if (!userInfo) {\r\n history.push(\"/\")\r\n }\r\n const [cookies, setCookie] = useCookies(['isFormDataSaved']);\r\n const [pageLoad, setPageLoad] = useState(0);\r\n const { enabled: credentialingEnabled } = useFeatureFlag('125081_PAMMultipleApplicationsPerUser');\r\n const [showTinModal, setShowTinModal] = useState(false);\r\n\r\n const [errors, setErrors] = useState({\r\n MedicaidNumber: '',\r\n MedicareNumber: '',\r\n TaxId: '',\r\n GroupNpi: '',\r\n NumOfProviders: ''\r\n })\r\n\r\n const username = useSelector((state) => {\r\n return state.user.userInfo ? state.user.userInfo.userName : \"\";\r\n });\r\n const providerType = useSelector((state) => {\r\n return state.user.userInfo ? state.user.userInfo.providerType : \"\";\r\n });\r\n\r\n const specialties = useSelector((state) => state.professionalApplication.specialtyList);\r\n const specialtiesListOptions = specialties\r\n ? specialties.items.map((s) => { return { value: s.name, label: s.name } })\r\n : [];\r\n const applications = useSelector((state) => state.professionalApplication.applications);\r\n const applicationDetails = useSelector((state) => state.professionalApplication.applicationDetails);\r\n const applicationBeingUpdated = useSelector((state) => state.professionalApplication.applicationBeingUpdated);\r\n let currentPractice = applicationBeingUpdated ? applicationBeingUpdated : applicationDetails;\r\n\r\n const baseHoursOfOperation = [{ day: \"Monday\", startTime: \"\", endTime: \"\" }];\r\n\r\n const [LegalName, setLegalName] = useState(currentPractice?.legalName);\r\n const [DoingBusinessAsName, setDoingBusinessAs] = useState(currentPractice?.doingBusinessAsName);\r\n const [GroupNpi, setGroupNpi] = useState(currentPractice?.groupNpi);\r\n const isFetching = useSelector((state) => state.user.isFetching);\r\n const npiIsValid = useSelector((state) => state.user.npiIsValid);\r\n const taxIdInUse = useSelector((state) => state.user.taxIdInUse);\r\n const [clientLoggingModel, setClientLoggingModel] = useState(ClientLoggingModel);\r\n const onGroupNpiChange = (e) => {\r\n let error = validateNpi(e.target.value);\r\n if (error === '') {\r\n var message = \"Performing API call to validate NPI \" + e.target.value + \".\";\r\n var methodName = \"onGroupNpiChange\";\r\n var jsonResult = JSON.stringify(e.target.value);\r\n logInfoWrite(message, methodName, jsonResult);\r\n dispatch({ type: types.SIGNUP_GET_NPI_START, npi: e.target.value });\r\n }\r\n\r\n setErrors({ ...errors, GroupNpi: error });\r\n setGroupNpi(e.target.value);\r\n }\r\n const [GroupSpecialty, setGroupSpecialty] = useState(currentPractice?.groupSpecialty);\r\n\r\n const [GroupSpecialtyTypeahead, setGroupSpecialtyTypeahead] = useState(currentPractice.groupSpecialty ? [currentPractice.groupSpecialty?.name] : []);\r\n\r\n const onGroupSpecialtyBlur = () => {\r\n var text = groupSpecialtyInputRef.current.state.text;\r\n if (text) {\r\n var item = specialtiesListOptions.find((s) => { return (s.value.toLowerCase() === text.toLowerCase() || s.label.toLowerCase() === text.toLowerCase()) })\r\n if (item) {\r\n onGroupSpecialtyChange([item]);\r\n }\r\n else {\r\n groupSpecialtyInputRef.current.clear();\r\n }\r\n }\r\n }\r\n const onGroupSpecialtyChange = (selectedSpecialty) => {\r\n setGroupSpecialtyTypeahead(selectedSpecialty);\r\n\r\n const selectedSpecialtyName = selectedSpecialty[0]?.value;\r\n let specialty = specialties.items.find((s) => { return s.name === selectedSpecialtyName });\r\n setGroupSpecialty(specialty);\r\n };\r\n const [TaxId, setTaxId] = useState(currentPractice?.taxId);\r\n const onTaxIdChange = (e) => {\r\n let error = validateTaxId(e.target.value);\r\n if (error === '') {\r\n var message = \"Performing API call to validate tax ID \" + e.target.value + \".\";\r\n var methodName = \"onGroupNpiChange\";\r\n var jsonResult = JSON.stringify(e.target.value);\r\n logInfoWrite(message, methodName, jsonResult);\r\n dispatch({ type: types.SIGNUP_GET_TAX_ID_START, taxId: e.target.value });\r\n }\r\n setErrors({ ...errors, TaxId: error });\r\n setTaxId(e.target.value);\r\n }\r\n const onTaxIdModalChange = (taxId) => {\r\n setCookie('isFormDataSaved', 'false', { path: '/', maxAge: 31536000 });\r\n setTaxId(taxId);\r\n }\r\n const [MedicaidNumber, setMedicaidNumber] = useState(currentPractice?.tpi);\r\n const onMedicaidNumberChange = (e) => {\r\n let error = validateMedicaid(e.target.value);\r\n\r\n setErrors({ ...errors, MedicaidNumber: error });\r\n\r\n setMedicaidNumber(e.target.value)\r\n }\r\n\r\n const onMedicareNumberChange = (e) => {\r\n let error = validateNA(e.target.value);\r\n\r\n setErrors({ ...errors, MedicareNumber: error });\r\n\r\n setMedicareNumber(e.target.value)\r\n }\r\n const [navigation, setNavigation] = useState(null);\r\n const [MedicareNumber, setMedicareNumber] = useState(currentPractice?.medicareNumber);\r\n const [NumOfProviders, setNumOfProviders] = useState(currentPractice?.providerCount);\r\n const onNumOfProvidersChange = (value) => {\r\n let error = validateNumberBetween(value, 1, 999);\r\n\r\n setErrors({ ...errors, NumOfProviders: error });\r\n\r\n setNumOfProviders(value);\r\n }\r\n const [defaultHoursChecked, setDefaultHoursChecked] = useState(false);\r\n const [hoursOfOperation, setHoursOfOperation] = useState(currentPractice?.hoursOfOperation ?? baseHoursOfOperation);\r\n const onHoursOfOperationChange = (index, value) => {\r\n let hours = [...hoursOfOperation];\r\n hours[index] = value;\r\n setHoursOfOperation(hours);\r\n }\r\n const addHoursOfOperation = () => {\r\n if (hoursOfOperation.length >= 7) return;\r\n let hours = [...hoursOfOperation];\r\n hours.push({ day: \"Monday\", startTime: \"\", endTime: \"\" });\r\n setHoursOfOperation(hours);\r\n }\r\n const removeHoursOfOperation = (index) => {\r\n let hours = hoursOfOperation.filter((x, xIndex) => xIndex !== index);\r\n\r\n setHoursOfOperation(hours);\r\n }\r\n const handleDefaultHoursOfOperationChecked = (e) => {\r\n if (!e.target.checked) {\r\n setHoursOfOperation(baseHoursOfOperation);\r\n setDefaultHoursChecked(false);\r\n }\r\n else {\r\n let defaultHoursOfOperation = [\r\n { day: daysOfTheWeek[0], startTime: \"08:00\", endTime: \"17:00\" },\r\n { day: daysOfTheWeek[1], startTime: \"08:00\", endTime: \"17:00\" },\r\n { day: daysOfTheWeek[2], startTime: \"08:00\", endTime: \"17:00\" },\r\n { day: daysOfTheWeek[3], startTime: \"08:00\", endTime: \"17:00\" },\r\n { day: daysOfTheWeek[4], startTime: \"08:00\", endTime: \"17:00\" },\r\n ];\r\n\r\n setHoursOfOperation(defaultHoursOfOperation);\r\n setDefaultHoursChecked(true);\r\n }\r\n }\r\n const validateHoursOfOperation = () => {\r\n if (!hasHoursOfOperationBeenInput()) {\r\n return true;\r\n }\r\n\r\n let invalidDays = hoursOfOperation.filter((day) => {\r\n if (day.day && day.startTime && day.endTime) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n return invalidDays.length === 0;\r\n }\r\n const hasHoursOfOperationBeenInput = () => {\r\n return !(hoursOfOperation.length === 1\r\n && hoursOfOperation[0].day === baseHoursOfOperation[0].day\r\n && hoursOfOperation[0].startTime === baseHoursOfOperation[0].startTime\r\n && hoursOfOperation[0].endTime === baseHoursOfOperation[0].endTime);\r\n }\r\n\r\n const [Limitations, setPracticeLimitations] = useState(currentPractice?.practiceLimitations ? currentPractice?.practiceLimitations : null);\r\n\r\n const [showAlert, setShowAlert] = useState(\"\");\r\n const [disableButton, setDisableButton] = useState(false);\r\n\r\n const daysOfTheWeek = [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"];\r\n const requiredFields = [{ key: 'Legal Name', value: LegalName }, { key: 'Doing Business As', value: DoingBusinessAsName },\r\n { key: 'Group Npi', value: GroupNpi }, { key: 'Tax Id', value: TaxId }, { key: 'Number Of Providers', value: NumOfProviders },\r\n { key: 'Practice Limitations', value: Limitations }, { key: 'Hours of Operation', value: (hasHoursOfOperationBeenInput() ? hoursOfOperation : null) }];\r\n\r\n const isValidData = () => {\r\n return validateForm(errors) && validateHoursOfOperation();\r\n }\r\n\r\n const apiErrors = useSelector((state) => state.professionalApplication.error);\r\n\r\n useEffect(() => {\r\n if (userInfo) {\r\n dispatch({ type: types.REFRESH_APPLICATION_API_CALL_FLAG });\r\n dispatch({ type: types.APPLICATION_GET_REFERENCE_LIST_START, listname: lists.ListType.SpecialtyList });\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (specialties) {\r\n setPageLoading(false);\r\n }\r\n }, [specialties])\r\n\r\n useEffect(() => {\r\n if (pageLoad > 2) {\r\n setCookie('isFormDataSaved', 'false', { path: '/', maxAge: 31536000 });\r\n }\r\n setPageLoad(pageLoadCount => pageLoadCount + 1);\r\n }, [LegalName, DoingBusinessAsName, GroupNpi, GroupSpecialty, TaxId, NumOfProviders, hoursOfOperation, MedicaidNumber, Limitations, errors])\r\n\r\n useEffect(() => {\r\n if (!isFetching)\r\n setErrors({ ...errors, GroupNpi: npiIsValid });\r\n }, [npiIsValid]);\r\n useEffect(() => {\r\n if (!isFetching)\r\n setErrors({ ...errors, TaxId: taxIdInUse });\r\n }, [taxIdInUse]);\r\n\r\n const onSaveClick = () => {\r\n setShowAlert(\"\");\r\n //Intermittent Save\r\n if (validateForm(errors)) {\r\n let application = {\r\n ...currentPractice,\r\n providerType: providerType,\r\n username: username,\r\n legalName: LegalName,\r\n doingBusinessAsName: DoingBusinessAsName,\r\n groupNpi: GroupNpi,\r\n groupSpecialty: GroupSpecialty,\r\n taxId: TaxId,\r\n tpi: MedicaidNumber,\r\n medicareNumber: MedicareNumber,\r\n providerCount: NumOfProviders,\r\n hoursOfOperation,\r\n practiceLimitations: Limitations\r\n };\r\n let message = \"\";\r\n let methodName = \"onSaveClick\";\r\n let jsonResult = \"\";\r\n if (!currentPractice || !currentPractice.id) {\r\n message = \"Creating professional contract application.\";\r\n jsonResult = JSON.stringify(application);\r\n logInfoWrite(message, methodName, jsonResult);\r\n //Refer bug 106166 - Duplicate application were created on multiple clicks of save/next button. \r\n //So disable button only when we dispatch create application api call which will happen only once.\r\n setDisableButton(true);\r\n if (credentialingEnabled) {\r\n dispatch({ type: types.CREATE_PROFESSIONAL_APPLICATION_START, application: application, multipleApplicationsPerUser: true });\r\n } else {\r\n dispatch({ type: types.CREATE_PROFESSIONAL_APPLICATION_START, application: application, multipleApplicationsPerUser: false });\r\n }\r\n } else {\r\n message = \"Updating professional contract application.\";\r\n jsonResult = JSON.stringify(application);\r\n logInfoWrite(message, methodName, jsonResult);\r\n dispatch({ type: types.UPDATE_PROFESSIONAL_APPLICATION_START, application: application, submit: false });\r\n }\r\n dispatch({ type: types.STORE_APPLICATION, applicationBeingUpdated: application });\r\n\r\n //set isFormSaved = true whenever form is saved\r\n setCookie('isFormDataSaved', 'true', { path: '/', maxAge: 31536000 });\r\n var contractApiResultMessage = \"Professional contract save success is \" + apiCallSuccess + \".\";\r\n if (apiCallSuccess) {\r\n message = contractApiResultMessage;\r\n jsonResult = JSON.stringify(currentPractice);\r\n logInfoWrite(message, methodName, jsonResult);\r\n }\r\n\r\n if (apiErrors) {\r\n message = contractApiResultMessage;\r\n methodName = \"onSaveClick\";\r\n jsonResult = JSON.stringify(apiErrors);\r\n logErrorWrite(message, methodName, jsonResult);\r\n }\r\n }\r\n else {\r\n setNavigation(null);\r\n }\r\n }\r\n const onBackButtonClick = () => {\r\n dispatch({ type: types.CLEAN_PROFESSIONAL_APPLICATIONS });\r\n dispatch({ type: types.STORE_APPLICATION, applicationBeingUpdated: null });\r\n history.push(\"/Dashboard\");\r\n }\r\n const onNextButtonClick = () => {\r\n setNavigation(\"/practiceLocationInfo\");\r\n onSaveClick();\r\n }\r\n\r\n const apiCallSuccess = useSelector((state) => state.professionalApplication.applicationApiCalledSuccess);\r\n useEffect(() => {\r\n if (apiCallSuccess && currentPractice) {\r\n dispatch({ type: types.REFRESH_APPLICATION_API_CALL_FLAG });\r\n if (navigation) {\r\n history.push(navigation);\r\n }\r\n else {\r\n scrollToTop();\r\n setShowAlert(\"success\");\r\n }\r\n } else if (apiErrors) {\r\n scrollToTop();\r\n setShowAlert(\"danger\");\r\n }\r\n setNavigation(null);\r\n // Re-enable button when api call returns. \r\n setDisableButton(false);\r\n }, [apiCallSuccess, apiErrors]);\r\n\r\n const logInfoWrite = (message, methodName, jsonResult) => {\r\n let loggingModel = {\r\n message: message,\r\n pageName: \"PracticeInformation\",\r\n methodName: methodName,\r\n jsonResult: jsonResult\r\n };\r\n\r\n setClientLoggingModel(loggingModel);\r\n if (clientLoggingModel.methodName !== null) {\r\n dispatch({ type: types.LOG_INFO_START, clientLoggingModel, userInfo });\r\n }\r\n }\r\n\r\n const logErrorWrite = (message, methodName, jsonResult) => {\r\n let loggingModel = {\r\n message: message,\r\n pageName: \"PracticeInformation\",\r\n methodName: methodName,\r\n jsonResult: jsonResult\r\n };\r\n\r\n setClientLoggingModel(loggingModel);\r\n if (clientLoggingModel.methodName !== null) {\r\n dispatch({ type: types.LOG_ERROR_START, clientLoggingModel, userInfo });\r\n }\r\n }\r\n\r\n return
\r\n {showAlert.length > 0 && }\r\n Practice Information\r\n {\r\n pageLoading ?\r\n :\r\n
\r\n
\r\n Identification \r\n setLegalName(e.target.value.trim())}\r\n onChange={(e) => setLegalName(e.target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n { if (e.target.checked) { setDoingBusinessAs(LegalName); } }} />\r\n \r\n \r\n setDoingBusinessAs(e.target.value)}\r\n maxLength={70} onBlur={(e) => setDoingBusinessAs(e.target.value.trim())} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {credentialingEnabled && \r\n
\r\n \r\n }\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n General Info\r\n \r\n \r\n onNumOfProvidersChange(e.target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!defaultHoursChecked && hoursOfOperation.map((h, index) => removeHoursOfOperation(index)}\r\n updateHours={(value) => onHoursOfOperationChange(index, value)}\r\n value={h} />)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { setShowTinModal(false) }}\r\n changeTaxId={onTaxIdModalChange}\r\n />\r\n \r\n
\r\n }\r\n
;\r\n}","import React, { Component } from 'react';\r\nimport { Route } from 'react-router';\r\nimport { Layout } from './components/Layout';\r\nimport { AutoLogoutTimer } from './components/AutoLogoutTimer';\r\nimport { SignUp } from './components/pages/SignUp';\r\nimport { ForgotPassword } from './components/pages/ForgotPassword';\r\nimport { ResetPassword } from './components/pages/ResetPassword';\r\nimport { ConfirmEmail } from './components/pages/ConfirmEmail';\r\nimport { Welcome } from './components/pages/Welcome';\r\nimport { Dashboard } from './components/pages/Dashboard';\r\nimport { PracticeLocationInfo } from './components/pages/Application/Professional/PracticeLocationInfo';\r\nimport { PracticeContactInfo } from './components/pages/Application/Common/PracticeContactInfo';\r\nimport { ProviderInformation } from './components/pages/Application/Professional/ProviderInformation';\r\nimport { PracticeInformation } from './components/pages/Application/Common/PracticeInformation';\r\nimport { library } from '@fortawesome/fontawesome-svg-core'\r\nimport { faCheckCircle, faInfoCircle, faTimesCircle, faEnvelopeOpenText, faTrash, faAngleDown, faAngleRight } from \"@fortawesome/free-solid-svg-icons\";\r\nimport './scss/App.scss';\r\nlibrary.add(faCheckCircle, faTimesCircle, faInfoCircle, faEnvelopeOpenText, faTrash, faAngleDown, faAngleRight);\r\n\r\nexport default class App extends Component {\r\n static displayName = App.name;\r\n render() {\r\n return (\r\n \r\n \r\n\r\n {/*// unsecured*/}\r\n \r\n \r\n \r\n \r\n\r\n {/*// secured*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import 'bootstrap/dist/css/bootstrap.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport { Provider } from 'react-redux'\r\nimport configureStore from './store/store';\r\nimport App from './App';\r\nimport { CookiesProvider } from \"react-cookie\";\r\n\r\n//import registerServiceWorker from './registerServiceWorker';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\nconst store = configureStore();\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n rootElement);\r\n\r\n// Uncomment the line above that imports the registerServiceWorker function\r\n// and the line below to register the generated service worker.\r\n// By default create-react-app includes a service worker to improve the\r\n// performance of the application by caching static assets. This service\r\n// worker can interfere with the Identity UI, so it is\r\n// disabled by default when Identity is being used.\r\n//\r\n//registerServiceWorker();\r\n\r\n","import { composeWithDevTools } from 'redux-devtools-extension';\r\nimport { applyMiddleware, createStore } from 'redux';\r\nimport createSagaMiddleware from 'redux-saga';\r\nimport rootSaga from \"../sagas/index\";\r\n\r\nimport rootReducer from '../reducers/index';\r\n\r\nexport default function configureStore(preloadedState) {\r\n const sagaMiddleware = createSagaMiddleware();\r\n const middlewares = [sagaMiddleware];\r\n\r\n const store = createStore(rootReducer, preloadedState, composeWithDevTools(\r\n applyMiddleware(...middlewares)\r\n ));\r\n\r\n\r\n sagaMiddleware.run(rootSaga);\r\n return store;\r\n}\r\n\r\n"],"sourceRoot":""}