{"version":3,"sources":["cfg/env.js","util/helper.js","util/cookie.js","util/langExtracter.js","authConfig.js","contextProviders/auth-api.js","contextProviders/constant.js","util/tokenGenerator.js","contextProviders/AppStateProvider.js","contextProviders/InfoProvider.js","util/handleWindowPopup.js","contextProviders/AppLaunchProvider.js","util/translationHelper.js","components/NotFound/Translations/messages.js","components/NotFound/index.js","components/SignUp/Translations/messages.js","components/SignUp/index.js","util/object-parser.js","components/Setting/components/Security/AuthSetUpModal/utils.js","components/Library/QrCodeGenerator/index.js","components/Setting/components/Translations/messages.js","components/Setting/components/Security/AuthSetUpModal/index.js","components/Setting/components/commonComponents/VerifyModal/utils.js","util/phoneValidator.js","components/Setting/components/commonComponents/VerifyModal/index.js","components/Setting/components/commonComponents/EditModalPhone/utils.js","components/Setting/components/commonComponents/EditModalPhone/index.js","util/hookHoc.js","util/dateFormatter.js","util/windowClose.js","components/Setting/components/Security/index.js","components/Setting/util.js","components/Setting/components/UserAccount/EditModalUserProfile/utils.js","components/Setting/components/UserAccount/EditModalUserProfile/index.js","components/Setting/components/UserAccount/assets/PencilLogo.js","components/Setting/components/UserAccount/index.js","util/nonSsoRedirect.js","container/Setting/translations/messages.js","container/Setting/index.js","components/Library/ApplicationCard/constant.js","components/Library/ApplicationCard/translations/messages.js","components/Library/ApplicationCard/index.js","components/Home/UsefulLinks/translations/messages.js","components/Home/UsefulLinks/index.js","components/Home/ResourceCard/LinkIcon/index.js","components/Home/ResourceCard/index.js","components/Home/ResourceCardRow/assets/Insight_Image.jpg","components/Home/ResourceCardRow/assets/Book_Mockup_EN.jpg","components/Home/ResourceCardRow/assets/Book_Mockup_FR.jpg","components/Home/ResourceCardRow/assets/GiftCard_1.png","components/Home/ResourceCardRow/translations/messages.js","components/Home/ResourceCardRow/index.js","components/Home/translations/messages.js","components/Home/constant.js","components/Home/PageLayout.js","components/SetupModal/index.js","container/Home/translations/messages.js","container/Home/constant.js","container/Home/index.js","container/Launch/translations/messages.js","container/Launch/index.js","components/Footer/constants.js","components/Footer/index.js","components/SvgComponents/LogoMonerisMerchant.js","components/SvgComponents/ChevronDown.js","components/SvgComponents/ChevronUp.js","components/Library/HeaderNavMenu/index.js","components/Header/index.js","components/PageError/Translations/messages.js","components/PageError/index.js","App.jsx","index.js"],"names":["_process$env","process","REACT_APP_ENV","REACT_APP_SSO_B2C_TENANT","REACT_APP_SSO_APP_CLIENT_ID","REACT_APP_SSO_POLICY_SIGNIN","REACT_APP_SSO_POLICY_FORGOT_PSWD","REACT_APP_SSO_POLICY_EDIT_PROFILE","REACT_APP_SSO_WEB_APP","REACT_APP_SSO_WEB_STORAGE","REACT_APP_SSO_SET_SECURITY_QUESTIONS","REACT_APP_SSO_MDLITEUSER_REDIRECT","REACT_APP_SSO_B2C_TENANTDOMAIN","REACT_AUTH_CLIENT_REDIRECT","REACT_AUTH_CLIENT_DOMAIN","REACT_AUTH_TOKEN_URL","REACT_APP_SSO_RESET_PASSWORD","REACT_APP_SSO_SELF_SERVE_SET_SECURITY_QUESTIONS","env","appEnv","sso","b2cTenantUrl","b2cTenantDomain","appClientId","webApp","webStorage","authClientRedirect","authClientDomain","authTokenDomain","policy","signIn","forgotPassword","editProfile","setSecurityQuestion","resetPassword","activateTileMd2","REACT_APP_SSO_POLICY_ACTIVATE_MD2","activateTileMgo","REACT_APP_SSO_POLICY_ACTIVATE_MGO","selfServeSetSecurityQuestion","mdliteUser","redirect","host","window","location","lang","_window$localStorage$","localStorage","getItem","test","functionDomain","concat","extractLanguageFromPathname","url","_match$2","match","toLowerCase","capitaliseFirstLetter","string","charAt","toUpperCase","slice","sortObjectByValue","arr","Array","isArray","appCodeList","sort","a","b","_a$app_code$toLowerCa","_a$app_code","_b$app_code$toLowerCa","_b$app_code","_a$is_activated","_b$is_activated","val1","app_code","val2","val_a_activated","is_activated","val_b_activated","indexOf","stripHtmlTags","raw","replace","getCookie","cname","name","ca","decodeURIComponent","document","cookie","split","i","length","c","substring","getLang","_URLSearchParams","_window","_window$location","_extractLanguageFromP","_ref","_ref2","searchParams","URLSearchParams","search","pathLang","pathname","cookieLang","language","get","domain","setItem","b2cPolicies","names","signUpSignIn","editSecurityQuestion","authorities","authority","editPassword","editSelfServeSecQuestion","authorityDomain","msalConfig","auth","clientId","knownAuthorities","redirectUri","postLogoutRedirectUri","navigateToLoginRequestUrl","cache","cacheLocation","storeAuthStateInCookie","system","loggerOptions","loggerCallback","level","message","containsPii","LogLevel","Error","console","error","Info","info","Verbose","debug","Warning","warn","protectedResources","apiHello","endpoint","scopes","loginRequest","_toConsumableArray","CallApi","_x","_x2","_x3","_CallApi","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","body","method","contentType","IsWithCredentials","token","response","_response","_response2","_args","wrap","_context","prev","next","undefined","axios","post","headers","_objectSpread","Authorization","withCredentials","sent","abrupt","t0","data","t1","put","t2","stop","authApi","_x4","_authApi","_callee2","payload","isWithCredentials","_payload$tokenhandler","tokenhandler","_payload$isSecured","_args2","_context2","isSecured","userActions","funcName","apiList","_apiList","_defineProperty","clinetIds","mogo","dev","qa","prod","methodType","getToken","instance","_instance$getAllAccou","accounts","setError","accessTokenRequest","getAllAccounts","account","acquireTokenSilent","then","accessTokenResponse","_accessTokenResponse$","idToken","catch","InteractionRequiredAuthError","log","homeAccountId","logoutRequest","getAccountByHomeId","logoutRedirect","AppStateContext","React","createContext","getData","_ref$body","_ref$url","_ref$method","_ref$isWithCredential","_ref$tokenhandler","_ref$isSecured","AppStateProvider","_ref3","children","_useState","useState","isError","isPopUpBlocked","sessionStorage","_useState2","_slicedToArray","appState","setAppState","_useMsal","useMsal","inProgress","isAuthenticated","useIsAuthenticated","origin","useEffect","_myAccounts$","myAccounts","accountObj","_accountObj$idTokenCl","idTokenClaims","_idTokenClaims$uid","uid","_idTokenClaims$env","_idTokenClaims$isMigr","isMigrationFlow","isLoading","isMd2Lite","isObSetup","getUserData","_ref5","_callee3","_response$data","_ref6","_ref6$user","user","_ref6$success","_isMd2LiteUserRespons","_isMd2LiteUserRespons2","_isObSetupResponse$da","_isObSetupResponse$da2","_isObSetupResponse$da3","_isObSetupResponse$da4","_apps$","_searchParams$get","apps","_user$first_name","first_name","_user$last_name","last_name","_user$mobile_phone","mobile_phone","_user$email","email","_user$display_name","display_name","_user$first_sign_in","firstSignIn","_user$mfa","mfa","_user$preferred_langu","preferred_language","_user$contact_phone","contact_phone","_user$contact_phone_e","contact_phone_ext","_user$password_last_c","password_last_change_date","_user$password_exp_da","password_exp_date","_user$questions_last_","questions_last_change_date","_user$hasPartnerRole","hasPartnerRole","_user$hasSharedCashRo","hasSharedCashRole","isMd2LiteUserResponse","isObSetupResponse","isMd2LiteUser","isObSetupUser","hasMd2Tile","_ref7","_ref7$app_code","logoutAction","_isRedirect","_context3","updateAppState","type","user_id","success","first_sign_in","String","isEligible","reduce","prevVal","currentVal","_currentVal$app_code","toString","isRedirect","profile","firstName","lastName","displayName","businessPhone","userPhone","userEmail","businessExtension","passLastChange","passExpiry","secQuestionlastUpdate","_ref8","_callee4","_payload$type","_payload$body","_payload$uid","uidNew","_payload$postCallHand","postCallHandler","_appState$uid","_response$data2","_ref9","_ref9$user","_ref9$success","_user$first_name2","_user$last_name2","_user$mobile_phone2","_user$email2","_user$display_name2","_user$mfa2","_user$preferred_langu2","_user$contact_phone2","_user$contact_phone_e2","_user$password_last_c2","_user$password_exp_da2","_user$questions_last_2","_myAccounts$2","_accountObj$name","_url","_body$email","_email","_url2","_body$email2","_email2","_context4","updateAppStateLocal","status","obj","prevAppState","value","_jsx","Provider","useAppStateProvider","context","useContext","InfoContext","handleAppState","handler","InfoProvider","_ref4","userInfo","setUserInfo","_useState3","_useState4","callStatus","setCallStatus","_useState5","val","_useState6","apiStatus","setApiStatus","_useAppStateProvider","_useAppStateProvider$","dispatch","nonce","_profile$userEmail","_data$mfa_token","mfa_token","_initResponse$data","_apiStatus$val","_val$mfa_token","_mfa_token","initResponse","_initResponse$data2","_initResponse$data2$t","tag","_apiStatus$val2","_val$mfa_token2","_mfa_token2","securityInfo","userId","auditEvent","useInfoProvider","handleWindowPopUp","target","n","open","closed","AppLaunchContext","AppLaunchProvider","isRedirected","appLaunchState","setAppLaunchState","updateAppLaunchState","_env$appEnv","_env$sso$authClientRe","appRedirect","client_id","code_challenge","queryParameters","_body$code","code","_body$redirectUrl","redirectUrl","_body$lang","resp","_ref5$status","_ref5$data","respData","_respData$id_token","id_token","encodeURIComponent","updateAppLaunchStateLocal","useAppLaunchProvider","createTranslator","translation","_language","key","_translation$language","_translation$language2","en","page_moved","home","fr","NotFound","history","useHistory","translate","messages","className","_jsxs","class","PrimaryButton","title","clickHandler","push","defaultProps","sign_up_message","logout","SignUp","_accounts$0$homeAccou","_accounts$","loading","resetLoading","setTimeout","Loader","now","Date","expireTime","getTime","setTime","toUTCString","isEqual","map","Map","has","set","a_keys","Object","keys","b_keys","FIELD_ENUM","validation","Yup","trim","required","QrCodeGenerator","cb","secret","username","formattedMessage","QRCode","toDataURL","errorCorrectionLevel","quality","margin","color","dark","light","err","security","user_profile","user_first_name","user_last_name","user_phone_number","update","cancel","contact_phone_number","edit","mobile_phone_number","confirm_email","add_mobile_number","add_email","two_factor_authentication","enable_two_factor","methods","authenticator","enable_tooltip","set_authenticator_app","set_authenticator_app_line1","set_authenticator_app_line2","set_authenticator_app_line3","yes","not_now","authenticator_app_setup","authenticator_app_setup_line1","step1","step1_text1","step1_text2","step2","step2_text1","step2_text2","step3","step3_text1","verify","disable_two_factor","disable_two_factor_text1","disable_two_factor_text2","yes_disable","no","text_message","change_mobile","change_email","copy","setup","remove_app","authenticator_app_tooltip","unsaved_changes","unsaved_changes_body1","unsaved_changes_body2","continue_editing","discard","password","change","last_change","date_expiry","date_expiry_tooltip","update_password","create_new_password","current_password","new_password","confirm_new_password","characters","upper_characters","number","password_match","note","last_four","submit","empty_check1","error_invalid_code","error_something_wrong","error_valid_email","error_valid_phone","yes_remove","error_phone_taken","error_phone_update","sent_code","verify_mobile","verify_email","error_unable_qrcode","error_code_match","remove_authenticator","remove_authenticator_app","success_update","success_update_profile","error_updating","error_updating_profile","error_code_exipred","code_update_profile","code_expires","error_email_match","error_email_taken","error_email_update","phone_number","days_remaining","error_two_factor_authentication","error_email","error_password","ext","email_address","error_first_name","error_name_format","error_last_name","error_phone_number","error_ext","phone_placeholder","ext_placeholder","email_placeholder","email_notification","dispute_notification_tooltip","notification_email_address","preferred_lang","crd_dispute_notification","chargeback","self_serve_banking_eligibility_success_msg","self_serve_banking_eligibility_failure_msg","copy_rqst","refund_success_msg","refund_failure_msg","self_serve_contact_update_success_msg","self_serve_contact_update_failure_msg","tooltip_message_info_radiobutton_phone","tooltip_message_info_radiobutton_2fa","totp_failure_msg","totp_successful_msg","two_fa_setup","verify_code","mobile_two_fa_setup","use_your_mobile_phone_number","verification_code","copy_the_verification_code","sec_question_title","sec_question_label","sec_question_button_label","sec_question","AuthSetUpModal","showModal","handleModalVisibility","validatePin","fetchTotpSecret","totpSecret","totpSecretFetchErrorFlag","userName","otpUri","prevProps","usePrevious","submitting","setSubmitting","qrUrl","setQrUrl","getQrCode","urlArg","initialFormValues","getValidationShape","useCallback","validationShape","pin","shape","_useFormik","useFormik","initialValues","onSubmit","values","validationSchema","enableReinitialize","validateOnMount","touched","errors","setFieldValue","handleSubmit","isValid","setFieldTouched","isFormDisabled","ResponsiveModal","show","onClose","position","primaryButtonConfig","isDisabled","secondaryButtonConfig","id","alt","src","TextInput","SmoothCopyIcon","changeHandler","blurHandler","autocomplete","maxLength","errorMessage","label","errorCode","validatePinSuccessFlag","PhoneValidator","format","len","_loop","break_loop","char_value","forEach","index","VerifyModal","setExpiredCodeNotification","smsPhone","mfaMethod","expireFunc","clearInterval","mfaCode","mfa_method","mfa_code","min","matches","EditModalPhone","updateUserPhone","phoneNumber","placeholder","injectClassComponent","Component","props","handlePasswordChange","loginRedirect","handleEditSecQuestion","monthmatrix","daymatrix","DateFormatter","getDate","date","Number","parseInt","toDateString","month","getMonth","day","year","getFullYear","getDaysBetweenDates","Math","round","getMaxDate","date1str","date2str","date1","date2","getMinDate","getDayString","getDay","getMonthString","getSecondsdiff","hourFormat","hoursFull","getHours","minutes","getMinutes","seconds","getSeconds","hours","ampm","getDateinFuture","milliseconds","handleEvent","e","preventDefault","returnValue","handleWindowClose","isTabCloseTracked","_window2","addEventListener","removeEventListener","Security","_window$localStorage","userPasswordUpdatedFlag","resetTotpSuccessFlag","userPhoneUpdatedFlag","validatePinSuccessPhoneFlag","isTwoFaSet","_ref$twofaEnabled","twofaEnabled","accountInfo","containerId","showAuthSetupModal","setShowAuthSetupModal","activeItem","setActiveItem","showSmsVerificationModal","setShowSmsVerificationModal","_useState7","_useState8","editSms","setEditSms","_useState9","_useState10","setSmsPhone","addToastMessage","variant","handleMethod","handlePhoneEdit","_accountInfo$userEmai","_accountInfo$userPhon","_accountInfo$mfa","passLastUpdatedDate","secQuestionLastUpdateDate","_mfa$activeMethod","activeMethod","_mfa$hasPhoneSetUp","hasPhoneSetUp","_mfa$hasTotpSetUp","hasTotpSetUp","_securityInfo$otpUri","Collapsible","active","style","maxWidth","ToolTip","toolTipStyle","width","fontWeight","SmoothInfoIcon","height","RadioButton","isChecked","totpCode","phone","userEmailUpdatedFlag","regexLetters","_validation","EditModalUserProfile","_PhoneValidator","_initialFormValues","phoneExtension","updateUserProfile","_validationShape","userProfileObj","fieldList","PencilLogo","viewBox","fill","xmlns","d","UserAccount","_React$Component","_inherits","_super","_createSuper","_this","_classCallCheck","call","componentDidUpdate","_this$props","userProfileUpdatedErrorFlag","resetSameEmail","sameEmailFlag","state","setState","showPinValidateNotification","enableEditUserProfile","showExpiredCodeNotification","editEditEmail","hideNotification","showProfileNotification","editUserProfileClickHandler","event","stopPropagation","editEmailClickHandler","enableDisputeNotificationEdit","_createClass","this","_this$props2","maskedNumberBusiness","onClick","classNames","disabled","ToastMessage","maximumToasts","duration","top","updateDisputeNotificationPinSuccessFlag","disputeValidatePinFlag","updateSelfServeBankingEligibility","updateSelfServeBankingEligibilitySuccessFlag","updateSelfServeProfileUpdateSuccessFlag","selfServeRefundLimitAmount","selfServeRefundEnabled","selfServeBankEligibilityEnabled","roleId","canEditDisputeNotification","notificationLanguage","notificationEmail","resetUserState","copyRequestNotificationsEnabled","chargebackNotificationsEnabled","updateSelfServeProfileUpdate","nonSsoUrlMap","md2","getNonSsoUrl","redirectTo","_nonSsoUrlMember$temp","nonSsoUrlMember","prototype","hasOwnProperty","_ref$host","user_account","go_back","user_setting","go_to_moneris_portal","containerIdMap","User_Account","Setting","_window$location$sear","_searchParams$get2","_searchParams$get3","_searchParams$get4","_useInfoProvider","_useInfoProvider$user","_useInfoProvider$call","_appState$profile","_userInfo$securityInf","_callStatus$status","_callStatus$type","activeTab","path","setContainerId","profileLoaded","menuItems","comp","_Fragment","PageHeader","isGoBack","goBackHandler","href","goBackVariant","goBackLabel","StatementNavigation","NavigationTab","options","activeTabListener","tab","applicationDescription","desc","list","urlCode","de","idi","your_devices_and_services","desk_5000","learn_how_to_set_up_your_device","ict250","ict250_with_ipp320","instalink_ivr","ipp320","iwl220","iwl255","moneris_go","moneris_go_plus","move_5000","p400","payd_pro_plus","payd_pro_plus_with_ipp320","ux_301","v400c","v400c_with_p400","v400m","vx_520","vx_820_duet","learn_how_to_set_up_your_service","gift_card","kount","multi_currency_pricing","vault","desk_5000_secondary_link","ict250_secondary_link","ict250_with_ipp320_secondary_link","instalink_ivr_secondary_link","ipp320_secondary_link","iwl220_secondary_link","iwl255_secondary_link","moneris_go_secondary_link","moneris_go_plus_secondary_link","move_5000_secondary_link","p400_secondary_link","payd_pro_plus_secondary_link","payd_pro_plus_with_ipp320_secondary_link","ux_301_secondary_link","v400c_secondary_link","v400c_with_p400_secondary_link","v400m_secondary_link","vx_520_secondary_link","vx_820_duet_secondary_link","gift_card_secondary_link","kount_secondary_link","multi_currency_pricing_secondary_link","vault_secondary_link","user_guide","launch","this_portal_enhances_your_experience","easily_configure_and_manage_your_go_devices","email_payment_requests_to_your_customers","realtime_cloud_reporting","this_platform_allows_you_to_securely_manage","enables_you_to_accept","manage_and_configure_users","customize_payment_pages_leveraging_our_api","this_is_your_business_hub","view_monthly_statement_and_reports","order_additional_devices","manage_chargebacks_and_disputes","this_platform_allows_you_configure_your_payd_solution","manage_inventory_and_generate_reports_to_help_you","stay_on_top_of_your_business","manage_access_settings_for_employees_and_customers","setup_guide","set_up_now","set_up_your_account_with_the_following_info","merchant_id","store_id","go_portal","moneris_gateway","merchant_direct","payd_administration","set_up_your_business_command_centre","your_portals","show_all_acc_info","go_portal_business_primary_link","go_portal_business_secondary_link","moneris_gateway_business_primary_link","moneris_gateway_business_secondary_link","payd_administration_business_primary_link","payd_administration_business_secondary_link","go_portal_portal_primary_link","moneris_gateway_portal_primary_link","merchant_direct_portal_secondary_link","payd_administration_portal_primary_link","moneris_insight_desc_main","moneris_insight_desc_point1","moneris_insight_desc_point2","moneris_insight_desc_point3","moneris_insight_desc_point4","moneris_insight_secondary_link","go_portal_desc_main","go_portal_desc_point1","go_portal_desc_point2","go_portal_desc_point3","activate","ApplicationCard","applicationObject","handleAuditLog","_props$isAutoRedirect","isAutoRedirect","handleActivateTile","handleAppLaunch","app_title","app_logo","login_endpoint","_applicationObject$st","app_description","_applicationObject$ap","_applicationObject$is","_app_code$toString2","appInfo","_applicationDescripti","_app_code$toString3","_ref$desc","_ref$list","item","appDescription","SecondaryButton","_app_code$toString4","_applicationDescripti2","_app_code$toString5","_ref2$urlCode","handleMiddlewareLaunch","_app_code$toString","accountList","appCode","reload","handleApplicationCardClick","useful_links","fraud_prevention_101","tips_and_tactics","fraud_prevention_101_link","contact_us","talk_to_business","contact_us_link","usefulLinksConfig","text","link","UsefulLinks","_ref$loading","ResponsiveLink","linkText","textStyle","fontSize","linkAnchorAttributes","rel","LinkIcon","_ref$color","_ref$width","_ref$height","fillRule","clipRule","ResourceCard","imageSrc","resources","start_a_digital_storefront","build_your_online_business","download_free_today","start_a_digital_storefront_link","industry_insights_blog","stay_informed","learn_now","industry_insights_blog_link","exclusive_time_limited_offer","boost_your_sales","unlock_your_offer","exclusive_time_limited_offer_link","ResourceCardRow","BookMockupEn","BookMockupFr","InsightImage","GiftCard","MgoUrlList","PageLayout","_window2$location","_window$location$href","_window3","_window3$location","_ref$apps","_ref$updateAppLaunchS","newMgoList","setNewMgoList","setToken","isMgoDev","includes","_item$app_code","tempMgoList","tempTile","AuthenticatedTemplate","Notification","_val$login_endpoint","action","_val$login_endpoint2","EncourageSetup","handleShowStep","invalid_message","welcome_back","partnerPortalUrls","DEV","QA","PROD","md2Urls","Home","_searchParams$get$toL","appCodeToLaunch","_appState$apps","_appState$isLoading","_appState$isMd2Lite","_appState$isObSetup","_appState$hasPartnerR","_appState$hasSharedCa","_ref2$app_code","isEncourgementStepEnabled","showStep","_profile$firstName","_profile$lastName","_profile$firstSignIn","_partnerUrl$toString","envType","partnerUrl","_env$appEnv2","md2Url","utf8","TextEncoder","encode","crypto","subtle","digest","hashBuffer","from","Uint8Array","bytes","padStart","join","hashSha256","hashedEmail","dataLayer","hashed_email","w","s","l","f","getElementsByTagName","j","createElement","async","parentNode","insertBefore","_apps$2","_ref6$app_code","_ref6$login_endpoint","_login_endpoint$toStr","_login_endpoint$toStr2","_login_endpoint$toStr3","_login_endpoint$toStr4","_token","_endpoint","_endpoint$toString","_callee5","_env$sso$mdliteUser$r","_env$sso","_env$sso$mdliteUser","_url$toString","_context5","currentObj","_currentObj$failed_at","failed_attempts_exceeded","handleLogout","Launch","_useAppLaunchProvider","appcode","tempMgoRedirectUrl","footerLinks","stickyBlacklist","Footer","_lang$toLowerCase","_ref$lang","sticky_footer","some","blacklistItem","_removeLanguageFromUr","_match$","removeLanguageFromUrl","startsWith","moneris_footer","LogoMonerisMerchant","ChevronDown","ChevronUp","HeaderNavMenu","optionList","handleOptionSelected","menuOpen","setMenuOpen","handleMenuVisibility","hideMenuVisibility","tabIndex","onKeyDown","keyCode","role","menuValue","handleNavOptionKeyDown","option","Id","actionTypes","listLanguage","getListAuth","Header","interval","setUserName","isLoginError","setLoginError","isSessionCheck","setSessionCheck","emailToRemember","sessioncheckFlag","isActiveSession","activeApp","urlLang","expiry","daysToPersist","clearSsoMiddlewareSession","expiry_email","_postCallHandler","removeItem","InteractionStatus","None","_postCallHandler2","handlePostMessage","flag","parent","postMessage","is_user_active","setInterval","callback","accessToken","acquireTokenPopup","JSON","stringify","validateSession","useIdleTimer","onIdle","clear","_postCallHandler3","_callee6","_context6","timeout","throttle","_postCallHandler4","_callee7","_context7","_val$Id","_val$Id2","userSelectedLang","handleSignUpRequest","wrong","try_again","try_again_button","PageError","Modal","showClose","handleVisibility","createBrowserHistory","forceRefresh","App","setLang","_appState$isError","_appState$preferred_l","_window4","_window4$location","setAttribute","_window5","_window5$location","_window$location$path3","_window9","_window9$location","_window$location$path4","_window10","_window10$location","_window$location$path5","_window11","_window11$location","_window$location$path6","_window12","_window12$location","_window$location$path2","_window6","_window6$location","_window$location$sear2","_window7","_window7$location","_window$location$hash2","_window8","_window8$location","_window$location$sear3","_window13","_window13$location","_window$location$hash3","_window14","_window14$location","listen","historyObj","_window$location$path","_window$location$hash","_historyObj$action","_historyObj$location","_location$pathname","_location$hash","hash","handleLang","Router","Route","Switch","msalInstance","PublicClientApplication","ReactDOM","render","StrictMode","MsalProvider","getElementById"],"mappings":"2sBAAAA,EAmBIC,mIAlBFC,EAAaF,EAAbE,cACAC,EAAwBH,EAAxBG,yBACAC,EAA2BJ,EAA3BI,4BACAC,EAA2BL,EAA3BK,4BACAC,EAAgCN,EAAhCM,iCACAC,EAAiCP,EAAjCO,kCACAC,EAAqBR,EAArBQ,sBACAC,EAAyBT,EAAzBS,0BACAC,EAAoCV,EAApCU,qCACAC,EAAiCX,EAAjCW,kCACAC,EAA8BZ,EAA9BY,+BACAC,EAA0Bb,EAA1Ba,2BACAC,EAAwBd,EAAxBc,yBACAC,EAAoBf,EAApBe,qBACAC,EAA4BhB,EAA5BgB,6BACAC,EAA+CjB,EAA/CiB,gDAKWC,EAAM,CACjBC,OAAQjB,EACRkB,IAAK,CACHC,aAAclB,EACdmB,gBAAiBV,EACjBW,YAAanB,EACboB,OAAQhB,EACRiB,WAAYhB,EACZiB,mBAAoBb,EACpBc,iBAAkBb,EAClBc,gBAAiBb,EACjBc,OAAQ,CACNC,OAAQzB,EACR0B,eAAgBzB,EAChB0B,YAAazB,EACb0B,oBAAqBvB,EACrBwB,cAAelB,EACfmB,gBArB6BnC,EAAjCoC,kCAsBIC,gBArB6BrC,EAAjCsC,kCAsBIC,6BACEtB,GAEJuB,WAAY,CACVC,SAAU9B,KAOZ+B,EAAOC,OAAOC,SAASF,KACrBG,EAA0C,QAAtCC,EAAGH,OAAOI,aAAaC,QAAQ,eAAO,IAAAF,IAAI,KAChD,aAAaG,KAAKP,IAAS,YAAYO,KAAKP,IAC9CxB,EAAIC,OAAS,MACbD,EAAIE,IAAIC,aAAe,sBACvBH,EAAIE,IAAIE,gBAAkB,mBAC1BJ,EAAIE,IAAIG,YAAc,uCACtBL,EAAIE,IAAIS,OAAOC,OAAS,uBACxBZ,EAAIE,IAAIS,OAAOE,eAAiB,uBAChCb,EAAIE,IAAIS,OAAOG,YAAc,qBAC7Bd,EAAIE,IAAII,OAAS,wBAEjBN,EAAIE,IAAI8B,eAAiB,oDACzBhC,EAAIE,IAAIS,OAAOI,oBAAsB,8BACrCf,EAAIE,IAAIS,OAAOU,6BACb,mCACFrB,EAAIE,IAAIoB,WAAWC,SACjB,oEACFvB,EAAIE,IAAIM,mBAAkB,iCAAAyB,OAAoCN,EAAI,WAClE3B,EAAIE,IAAIO,iBACN,uDACFT,EAAIE,IAAIQ,gBAAkB,oDAC1BV,EAAIE,IAAIS,OAAOK,cAAgB,2BAC/BhB,EAAIE,IAAIS,OAAOM,gBAAkB,kCACjCjB,EAAIE,IAAIS,OAAOQ,gBAAkB,oCAEjC,SAASY,KAAKP,IACd,SAASO,KAAKP,IACd,WAAWO,KAAKP,IAEhBxB,EAAIC,OAAS,KACbD,EAAIE,IAAIC,aAAe,qBACvBH,EAAIE,IAAIE,gBAAkB,kBAC1BJ,EAAIE,IAAIG,YAAc,uCACtBL,EAAIE,IAAIS,OAAOC,OAAS,uBACxBZ,EAAIE,IAAIS,OAAOE,eAAiB,uBAChCb,EAAIE,IAAIS,OAAOG,YAAc,qBAC7Bd,EAAIE,IAAII,OAAS,uBAEjBN,EAAIE,IAAI8B,eAAiB,uBACzBhC,EAAIE,IAAIS,OAAOI,oBAAsB,8BACrCf,EAAIE,IAAIS,OAAOU,6BACb,mCACFrB,EAAIE,IAAIoB,WAAWC,SACjB,8DACFvB,EAAIE,IAAIM,mBAAkB,gCAAAyB,OAAmCN,EAAI,WACjE3B,EAAIE,IAAIO,iBACN,qDACFT,EAAIE,IAAIQ,gBAAkB,gDAC1BV,EAAIE,IAAIS,OAAOK,cAAgB,2BAC/BhB,EAAIE,IAAIS,OAAOM,gBAAkB,kCACjCjB,EAAIE,IAAIS,OAAOQ,gBAAkB,oCACxB,QAAQY,KAAKP,IACtBxB,EAAIC,OAAS,KACbD,EAAIE,IAAIC,aAAe,qBACvBH,EAAIE,IAAIE,gBAAkB,kBAC1BJ,EAAIE,IAAIG,YAAc,uCACtBL,EAAIE,IAAIS,OAAOC,OAAS,uBACxBZ,EAAIE,IAAIS,OAAOE,eAAiB,uBAChCb,EAAIE,IAAIS,OAAOG,YAAc,qBAC7Bd,EAAIE,IAAII,OAAS,uBAEjBN,EAAIE,IAAI8B,eAAiB,uBAEzBhC,EAAIE,IAAIS,OAAOI,oBAAsB,8BACrCf,EAAIE,IAAIS,OAAOU,6BACb,mCACFrB,EAAIE,IAAIoB,WAAWC,SACjB,8DACFvB,EAAIE,IAAIM,mBAAkB,yBAAAyB,OAA4BN,EAAI,WAC1D3B,EAAIE,IAAIO,iBACN,qDACFT,EAAIE,IAAIQ,gBAAkB,gDAC1BV,EAAIE,IAAIS,OAAOK,cAAgB,2BAC/BhB,EAAIE,IAAIS,OAAOM,gBAAkB,kCACjCjB,EAAIE,IAAIS,OAAOQ,gBAAkB,qCACxB,SAASY,KAAKP,IAAS,QAAQO,KAAKP,IAAS,SAASO,KAAKP,MACpExB,EAAIC,OAAS,OACbD,EAAIE,IAAIC,aAAe,kBACvBH,EAAIE,IAAIE,gBAAkB,gBAC1BJ,EAAIE,IAAIG,YAAc,uCACtBL,EAAIE,IAAIS,OAAOC,OAAS,uBACxBZ,EAAIE,IAAIS,OAAOE,eAAiB,uBAChCb,EAAIE,IAAIS,OAAOG,YAAc,qBAC7Bd,EAAIE,IAAII,OAAS,oBAEjBN,EAAIE,IAAI8B,eAAiB,oBACzBhC,EAAIE,IAAIS,OAAOI,oBAAsB,8BACrCf,EAAIE,IAAIS,OAAOU,6BACb,mCACFrB,EAAIE,IAAIoB,WAAWC,SACjB,2DACFvB,EAAIE,IAAIM,mBAAkB,6BAAAyB,OAAgCN,EAAI,WAC9D3B,EAAIE,IAAIO,iBAAmB,gDAC3BT,EAAIE,IAAIQ,gBAAkB,oBAC1BV,EAAIE,IAAIS,OAAOK,cAAgB,2BAC/BhB,EAAIE,IAAIS,OAAOM,gBAAkB,kCACjCjB,EAAIE,IAAIS,OAAOQ,gBAAkB,oCC/InC,IAKMe,EAA8B,SAACC,GAAS,IAADC,EACrCC,EAAQF,EAAIE,MAAM,gCACxB,OAAY,OAALA,QAAK,IAALA,GAAU,QAALD,EAALC,EAAQ,UAAE,IAAAD,OAAL,EAALA,EAAYE,aACrB,EAEMC,EAAwB,SAACC,GAC7B,OAAOA,EAAOC,OAAO,GAAGC,cAAgBF,EAAOG,MAAM,EACvD,EAEMC,EAAoB,SAACC,GAEzB,GAAIC,MAAMC,QAAQF,GAAM,CACtB,IAAMG,EAAc,CAAC,OAAQ,OAC7B,OAAOH,EAAII,MAAK,SAAUC,EAAGC,GAAI,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACxBC,EAAiC,QAA7BN,EAAI,OAADF,QAAC,IAADA,GAAW,QAAVG,EAADH,EAAGS,gBAAQ,IAAAN,OAAV,EAADA,EAAaf,qBAAa,IAAAc,IAAI,GACrCQ,EAAiC,QAA7BN,EAAI,OAADH,QAAC,IAADA,GAAW,QAAVI,EAADJ,EAAGQ,gBAAQ,IAAAJ,OAAV,EAADA,EAAajB,qBAAa,IAAAgB,IAAI,GACrCO,EAAiC,QAAlBL,EAAI,OAADN,QAAC,IAADA,OAAC,EAADA,EAAGY,oBAAY,IAAAN,KACjCO,EAAiC,QAAlBN,EAAI,OAADN,QAAC,IAADA,OAAC,EAADA,EAAGW,oBAAY,IAAAL,KACvC,IACiC,IAA/BT,EAAYgB,QAAQN,KACW,IAA/BV,EAAYgB,QAAQJ,GACpB,CACA,GAAIF,EAAOE,EAAM,CACf,GACGC,GAAmBE,IAClBF,IAAoBE,EAEtB,OAAQ,EAEV,IAAKF,GAAmBE,EAAiB,OAAO,EAChD,GAAIF,IAAoBE,EAAiB,OAAQ,CACnD,CACA,GAAIL,EAAOE,EAAM,CACf,GACGC,GAAmBE,IAClBF,IAAoBE,EAEtB,OAAO,EAET,IAAKF,GAAmBE,EAAiB,OAAO,EAChD,GAAIF,IAAoBE,EAAiB,OAAQ,CACnD,CACA,OAAO,CACT,CACE,IAAe,OAAXf,QAAW,IAAXA,OAAW,EAAXA,EAAagB,QAAQN,KAAmB,OAAXV,QAAW,IAAXA,OAAW,EAAXA,EAAagB,QAAQJ,IAAO,CAC3D,GACGC,GAAmBE,IAClBF,IAAoBE,EAEtB,OAAO,EAET,IAAKF,GAAmBE,EAAiB,OAAO,EAChD,GAAIF,IAAoBE,EAAiB,OAAQ,CACnD,CACA,IAAe,OAAXf,QAAW,IAAXA,OAAW,EAAXA,EAAagB,QAAQN,KAAmB,OAAXV,QAAW,IAAXA,OAAW,EAAXA,EAAagB,QAAQJ,IAAO,CAC3D,GACGC,GAAmBE,IAClBF,IAAoBE,EAEtB,OAAQ,EAEV,IAAKF,GAAmBE,EAAiB,OAAO,EAChD,GAAIF,IAAoBE,EAAiB,OAAQ,CACnD,CACA,OAAO,CAEX,GACF,CACE,OAAOlB,CAEX,EAmBA,SAASoB,EAAcC,GACrB,OAAOA,EAAMA,EAAIC,QAAQ,WAAY,IAAM,EAC7C,CCrFiBC,MAhBjB,SAAmBC,GAIf,IAHA,IAAIC,EAAOD,EAAQ,IAEfE,EADgBC,mBAAmBC,SAASC,QACzBC,MAAM,KACrBC,EAAI,EAAGA,EAAGL,EAAGM,OAAQD,IAAK,CAEhC,IADA,IAAIE,EAAIP,EAAGK,GACW,KAAfE,EAAErC,OAAO,IACdqC,EAAIA,EAAEC,UAAU,GAElB,GAAuB,GAAnBD,EAAEd,QAAQM,GACZ,OAAOQ,EAAEC,UAAUT,EAAKO,OAAQC,EAAED,OAEtC,CACA,OAAO,IACT,ECIaG,ICRTrD,EDNN,WAAoB,IAADsD,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACXC,EAA4D,QAAhDN,EAAG,IAAIO,gBAAsB,QAAPN,EAACzD,cAAM,IAAAyD,GAAU,QAAVC,EAAND,EAAQxD,gBAAQ,IAAAyD,OAAV,EAANA,EAAkBM,eAAO,IAAAR,IAAI,GAChES,EACiD,QADzCN,EACZlD,EAA4BT,OAAOC,SAASiE,iBAAS,IAAAP,IAAI,KACrDQ,EAAaxB,EAAU,QACvByB,EAA8D,QAAtDR,EAAwC,QAAxCC,EAAW,OAARI,QAAQ,IAARA,IAAwB,OAAZH,QAAY,IAAZA,OAAY,EAAZA,EAAcO,IAAI,eAAO,IAAAR,IAAIM,SAAU,IAAAP,IAAI,KAClEU,EAAS,QAAQhE,KAAKN,OAAOC,SAASF,MACxC,YACA,cAGJ,OAFAiD,SAASC,OAAM,QAAAzC,OAAW4D,EAAQ,mDAAA5D,OAAkD8D,EAAM,WAC1FtE,OAAOI,aAAamE,QAAQ,OAAQH,EAASvD,eACtCuD,CACT,CCNab,GACTxD,EAAOC,OAAOC,SAASF,KAOdyE,EAAc,CACzBC,MAAO,CACLC,aAAa,GAADlE,OAAKjC,EAAIE,IAAIS,OAAOC,QAChCC,eAAe,GAADoB,OAAKjC,EAAIE,IAAIS,OAAOE,gBAClCC,YAAY,GAADmB,OAAKjC,EAAIE,IAAIS,OAAOG,aAC/BsF,qBAAqB,GAADnE,OAAKjC,EAAIE,IAAIS,OAAOI,qBACxCC,cAAc,GAADiB,OAAKjC,EAAIE,IAAIS,OAAOK,gBAEnCqF,YAAa,CACXF,aAAc,CACZG,UAAU,WAADrE,OAAajC,EAAIE,IAAIC,aAAY,KAAA8B,OAAIjC,EAAIE,IAAIE,gBAAe,qBAAA6B,OAAoBjC,EAAIE,IAAIS,OAAOC,SAE1GC,eAAgB,CACdyF,UAAU,WAADrE,OAAajC,EAAIE,IAAIC,aAAY,KAAA8B,OAAIjC,EAAIE,IAAIE,gBAAe,qBAAA6B,OAAoBjC,EAAIE,IAAIS,OAAOE,iBAE1GC,YAAa,CACXwF,UAAU,WAADrE,OAAajC,EAAIE,IAAIC,aAAY,KAAA8B,OAAIjC,EAAIE,IAAIE,gBAAe,qBAAA6B,OAAoBjC,EAAIE,IAAIS,OAAOG,cAE1GsF,qBAAsB,CACpBE,UAAU,WAADrE,OAAajC,EAAIE,IAAIC,aAAY,KAAA8B,OAAIjC,EAAIE,IAAIE,gBAAe,qBAAA6B,OAAoBjC,EAAIE,IAAIS,OAAOI,sBAE1GwF,aAAc,CACZD,UAAU,WAADrE,OAAajC,EAAIE,IAAIC,aAAY,KAAA8B,OAAIjC,EAAIE,IAAIE,gBAAe,qBAAA6B,OAAoBjC,EAAIE,IAAIS,OAAOK,gBAE1GwF,yBAA0B,CACxBF,UAAU,WAADrE,OAAajC,EAAIE,IAAIC,aAAY,KAAA8B,OAAIjC,EAAIE,IAAIE,gBAAe,qBAAA6B,OAAoBjC,EAAIE,IAAIS,OAAOU,+BAE1GJ,gBAAiB,CACfqF,UAAU,WAADrE,OAAajC,EAAIE,IAAIC,aAAY,KAAA8B,OAAIjC,EAAIE,IAAIE,gBAAe,qBAAA6B,OAAoBjC,EAAIE,IAAIS,OAAOM,kBAE1GE,gBAAiB,CACfmF,UAAU,WAADrE,OAAajC,EAAIE,IAAIC,aAAY,KAAA8B,OAAIjC,EAAIE,IAAIE,gBAAe,qBAAA6B,OAAoBjC,EAAIE,IAAIS,OAAOQ,mBAG5GsF,gBAAgB,GAADxE,OAAKjC,EAAIE,IAAIC,eAQjBuG,EAAa,CACxBC,KAAM,CACJC,SAAS,GAAD3E,OAAKjC,EAAIE,IAAIG,aACrBiG,UAAWL,EAAYI,YAAYF,aAAaG,UAChDO,iBAAkB,CAACZ,EAAYQ,iBAC/BK,YAAa,QAAQ/E,KAAKP,GAAK,yBAAAS,OACFN,EAAI,oBAAAM,OAClBjC,EAAIE,IAAII,OAAM,KAAA2B,OAAIN,EAAI,SACrCoF,sBAAuB,QAAQhF,KAAKP,GAAK,yBAAAS,OACZN,EAAI,oBAAAM,OAClBjC,EAAIE,IAAII,OAAM,KAAA2B,OAAIN,EAAI,SACrCqF,2BAA2B,GAE7BC,MAAO,CACLC,cAAe,eACfC,wBAAwB,GAE1BC,OAAQ,CACNC,cAAe,CACbC,eAAgB,SAACC,EAAOC,EAASC,GAC/B,IAAIA,EAGJ,OAAQF,GACN,KAAKG,IAASC,MAEZ,YADAC,QAAQC,MAAML,GAEhB,KAAKE,IAASI,KAEZ,YADAF,QAAQG,KAAKP,GAEf,KAAKE,IAASM,QAEZ,YADAJ,QAAQK,MAAMT,GAEhB,KAAKE,IAASQ,QAEZ,YADAN,QAAQO,KAAKX,GAGnB,KASOY,EAAqB,CAChCC,SAAU,CACRC,SAAU,8BACVC,OAAQ,CAAC,WAADtG,OAAYjC,EAAIE,IAAIE,gBAAe,gCAUlCoI,EAAe,CAC1BD,OAAME,YAAML,EAAmBC,SAASE,S,+CCrHT,SAElBG,EAAOC,EAAAC,EAAAC,GAAA,OAAAC,EAAAC,MAAC,KAADC,UAAA,UAAAF,IAgDrB,OAhDqBA,EAAAG,YAAAC,cAAAC,MAAtB,SAAAC,EACEC,EACAlH,EACAmH,GAAM,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAb,UAAA,OAAAE,cAAAY,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAGM,GAFZV,EAAWM,EAAAhF,OAAA,QAAAqF,IAAAL,EAAA,GAAAA,EAAA,GAAG,mBACdL,IAAiBK,EAAAhF,OAAA,QAAAqF,IAAAL,EAAA,KAAAA,EAAA,GACjBJ,EAAKI,EAAAhF,OAAA,QAAAqF,IAAAL,EAAA,GAAAA,EAAA,GAAG,MAEJP,GAAmC,SAAzBA,EAAO5G,cAAwB,CAAAqH,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAElBE,IAAMC,KAAKjI,EAAKkH,EAAM,CAC3CgB,QAAOC,YAAA,CACL,eAAgBf,GACZE,GAAS,CAAEc,cAAc,UAADtI,OAAYwH,KAE3Ce,gBAAiBhB,IACf,KAAD,EANY,OAARE,EAAQK,EAAAU,KAAAV,EAAAW,OAAA,SAOPhB,GAAQ,eAAAK,EAAAC,KAAA,GAAAD,EAAAY,GAAAZ,EAAA,SAAAA,EAAAW,OAAA,SAERX,EAAAY,GAAEjB,UAAQ,QAYA,QAYA,QAAAK,EAAAE,KAAA,SAxBA,YAEVX,GAAmC,QAAzBA,EAAO5G,cAAuB,CAAAqH,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,GAAAD,EAAAE,KAAA,GAExBE,IAAMrE,IAAI3D,EAAGmI,wBAAA,CAClCE,gBAAiBhB,EACjB,eAAgBD,GACZE,GAAS,CAAEc,cAAc,UAADtI,OAAYwH,KAAW,CAAF,GACjDmB,KAAM,CAAC,KACN,KAAD,GALY,OAARlB,EAAQK,EAAAU,KAAAV,EAAAW,OAAA,SAMPhB,GAAQ,eAAAK,EAAAC,KAAA,GAAAD,EAAAc,GAAAd,EAAA,UAAAA,EAAAW,OAAA,SAERX,EAAAc,GAAEnB,UAAQ,YAEVJ,GAAmC,QAAzBA,EAAO5G,cAAuB,CAAAqH,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,GAAAD,EAAAE,KAAA,GAExBE,IAAMW,IAAI3I,EAAKkH,EAAM,CAC1CgB,QAAS,CACP,eAAgBd,GAElBiB,gBAAiBhB,IAChB,KAAD,GALY,OAARE,EAAQK,EAAAU,KAAAV,EAAAW,OAAA,SAMPhB,GAAQ,eAAAK,EAAAC,KAAA,GAAAD,EAAAgB,GAAAhB,EAAA,UAAAA,EAAAW,OAAA,SAERX,EAAAgB,GAAErB,UAAQ,eAAAK,EAAAW,OAAA,SAGZ,SAAO,yBAAAX,EAAAiB,OAAA,GAAA5B,EAAA,mCAEjBN,EAAAC,MAAA,KAAAC,UAAA,CAOc,SAAeiC,EAAOC,GAAA,OAAAC,EAAApC,MAAC,KAADC,UAAA,CAoBpC,SAAAmC,IAAA,OAAAA,EAAAlC,YAAAC,cAAAC,MApBc,SAAAiC,EAAuBC,GAAO,IAAAhC,EAAAlH,EAAAmH,EAAAC,EAAA+B,EAAAC,EAAAC,EAAAC,EAAAhC,EAAAC,EAAAgC,EAAA1C,UAAA,OAAAE,cAAAY,MAAA,SAAA6B,GAAA,cAAAA,EAAA3B,KAAA2B,EAAA1B,MAAA,OAQxB,GARyCyB,EAAA7G,OAAA,QAAAqF,IAAAwB,EAAA,IAAAA,EAAA,GAE1DrC,EAOEgC,EAPFhC,KACAlH,EAMEkJ,EANFlJ,IACAmH,EAKE+B,EALF/B,OACAC,EAIE8B,EAJF9B,YACA+B,EAGED,EAHFC,kBAAiBC,EAGfF,EAFFG,oBAAY,IAAAD,EAAG,kBAAM,IAAI,EAAAA,EAAAE,EAEvBJ,EADFO,iBAAS,IAAAH,GAAQA,GAEI,CAAAE,EAAA1B,KAAA,eAAA0B,EAAA1B,KAAA,EAASuB,IAAc,OAAAG,EAAAhB,GAAAgB,EAAAlB,KAAAkB,EAAA1B,KAAA,eAAA0B,EAAAhB,GAAG,KAAK,KAAD,EAA1C,OAALlB,EAAKkC,EAAAhB,GAAAgB,EAAA1B,KAAA,GACYvB,EACrBW,EACAlH,EACAmH,EACAC,EACA+B,EACA7B,GACA,KAAD,GAPa,OAARC,EAAQiC,EAAAlB,KAAAkB,EAAAjB,OAAA,SAQPhB,GAAQ,yBAAAiC,EAAAX,OAAA,GAAAI,EAAA,KAChBD,EAAApC,MAAA,KAAAC,UAAA,C,cC9EKvI,GAAmBT,EAAIE,IAAIO,iBAE3BoL,GACW,gBADXA,GAEY,iBAFZA,GAGS,cAHTA,GAIU,eAJVA,GAKW,gBALXA,GAMO,YANPA,GAOU,eAPVA,GAQY,iBARZA,GASO,YATPA,GAUM,WAVNA,GAWO,YAXPA,GAYO,YAZPA,GAaa,kBAbbA,GAcO,YAdPA,GAec,mBAfdA,GAgBa,kBAGbC,GAAQ,GAAA7J,OAAMjC,EAAIE,IAAI8B,gBAGtB+J,IAFe,GAAA9J,OAAMjC,EAAIE,IAAIQ,iBAEtBsL,EAAA,GAAAC,YAAAD,EACVH,GAAyB,WAAA5J,OAAc6J,GAAQ,4BAAAG,YAAAD,EAC/CH,GAA0B,WAAA5J,OAAc6J,GAAQ,mCAAAG,YAAAD,EAChDH,GAAuB,WAAA5J,OAAc6J,GAAQ,gCAAAG,YAAAD,EAC7CH,GAAwB,WAAA5J,OAAc6J,GAAQ,iCAAAG,YAAAD,EAC9CH,GAA0B,WAAA5J,OAAc6J,GAAQ,kCAAAG,YAAAD,EAChDH,GAAwB,WAAA5J,OAAc6J,GAAQ,gCAAAG,YAAAD,EAC9CH,GAAyB,WAAA5J,OAAc6J,GAAQ,kCAAAG,YAAAD,EAC/CH,GAAqB,WAAA5J,OAAc6J,GAAQ,iCAAAG,YAAAD,EAC3CH,GAAoB,WAAA5J,OAAc6J,GAAQ,kCAAAG,YAAAD,EAC1CH,GAAqB,WAAA5J,OAAc6J,GAAQ,+BAAAG,YAAAD,EAC3CH,GAAqB,WAAA5J,OAAc6J,GAAQ,uCAAAG,YAAAD,EAC3CH,GAA2B,WAAA5J,OAAc6J,GAAQ,uBAAAG,YAAAD,EACjDH,GAA2B,WAAA5J,OAAcxB,GAAgB,gDAAAwL,YAAAD,EACzDH,GAAqB,WAAA5J,OAAc6J,GAAQ,gBAAAG,YAAAD,EAC3CH,GAA4B,WAAA5J,OAAc6J,GAAQ,iBAAAE,GAG/CE,GAAY,CAChBC,KAAM,CACJC,IAAK,uCACLC,GAAI,uCACJC,KAAM,yCAIJC,GACC,MADDA,GAEE,O,SClDFC,I,MAAQ,eAAAnH,EAAA4D,YAAAC,cAAAC,MAAG,SAAAC,EACfqD,GAAQ,IAAAC,EAAAC,EAAAC,EAAAC,EAAAhD,EAAAb,UAAA,OAAAE,cAAAY,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAK4C,GAJ1CJ,EAAAhF,OAAA,QAAAqF,IAAAL,EAAA,GAAAA,EAAA,GAAG,GACb8C,EAAQ9C,EAAAhF,OAAA,QAAAqF,IAAAL,EAAA,GAAAA,EAAA,GAAG,GACX+C,EAAQ/C,EAAAhF,OAAA,QAAAqF,IAAAL,EAAA,GAAAA,EAAA,GAAG,kBAAM,IAAI,IAEwB,QAA5B6C,EAAGD,EAASK,wBAAgB,IAAAJ,IAAI,IACjC7H,OAAO,CAADkF,EAAAE,KAAA,QAIlB,OAHI4C,EAAqB,CACzBtE,OAAQ,CAAC,WAADtG,OAAYjC,EAAIE,IAAIE,gBAAe,8BAC3C2M,QAASJ,EAAS,IACnB5C,EAAAW,OAAA,SACc,OAAR+B,QAAQ,IAARA,OAAQ,EAARA,EACHO,mBAAmBH,GACpBI,MAAK,SAACC,GAAyB,IAADC,EAG7B,OAD2C,QAA9BA,EAAGD,EAAoBE,eAAO,IAAAD,IAAI,EAEjD,IACCE,OAAM,SAACxF,GAgBN,GAAIA,aAAiByF,KAEnB,GADA1F,QAAQ2F,IAAI,YAAa1F,GACrB8E,EAAS9H,OAAS,EAAG,CACvB,IACM2I,EADiBb,EAAS,GACKa,cACrC5F,QAAQ2F,IAAIC,GACZ,IAAMC,EAAgB,CACpBV,QAASN,EAASiB,mBAAmBF,IAEvCf,EAASkB,eAAeF,EAE1B,MAEE7F,QAAQ2F,IAAI,mCAKhB,OAFAX,GAAS,GACThF,QAAQ2F,IAAI1F,GACL,IACT,KAAE,OAEJ4E,EAASkB,iBAAiB,eAAA5D,EAAAW,OAAA,SAErB,MAAI,yBAAAX,EAAAiB,OAAA,GAAA5B,EAAA,KACZ,gBA3DaT,GAAA,OAAAtD,EAAA0D,MAAA,KAAAC,UAAA,MA6DCwD,M,QC1DToB,GAAkBC,IAAMC,gBAExBC,GAAO,eAAAzI,EAAA2D,YAAAC,cAAAC,MAAG,SAAAC,EAAA/D,GAAA,IAAA2I,EAAA3E,EAAA4E,EAAA9L,EAAA+L,EAAA5E,EAAA6E,EAAA7C,EAAA8C,EAAA5C,EAAA6C,EAAAzC,EAAAlC,EAAA,OAAAR,cAAAY,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAMG,OANH+D,EAAA3I,EACdgE,YAAI,IAAA2E,EAAG,CAAC,EAACA,EAAAC,EAAA5I,EACTlD,WAAG,IAAA8L,EAAG,GAAEA,EAAAC,EAAA7I,EACRiE,cAAM,IAAA4E,EAAG3B,GAAe2B,EAAAC,EAAA9I,EACxBiG,yBAAiB,IAAA6C,GAAOA,EAAAC,EAAA/I,EACxBmG,oBAAY,IAAA4C,EAAG,kBAAM,IAAI,EAAAA,EAAAC,EAAAhJ,EACzBuG,iBAAS,IAAAyC,GAAQA,EAAAtE,EAAAE,KAAA,EAEIgB,EAAQ,CAC3B5B,OACAC,SACAnH,MACAmJ,oBACAE,eACAI,cACC,KAAD,EAPU,OAARlC,EAAQK,EAAAU,KAAAV,EAAAW,OAAA,SAQLhB,GAAQ,wBAAAK,EAAAiB,OAAA,GAAA5B,EAAA,KAChB,gBAjBYT,GAAA,OAAArD,EAAAyD,MAAA,KAAAC,UAAA,KAmBb,SAASsF,GAAgBC,GAAgB,IAAbC,EAAQD,EAARC,SAC1BC,EAAgCC,mBAAS,CACvCC,SAAS,EACTC,eAAoE,SAApDnN,OAAOoN,eAAe/M,QAAQ,oBAC9CgN,EAAAC,YAAAN,EAAA,GAHKO,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GAI5BI,EAA2CC,cAAnC1C,EAAQyC,EAARzC,SAAU2C,EAAUF,EAAVE,WAAYzC,EAAQuC,EAARvC,SACxB0C,EAAkBC,cAClBC,EAAS,WAEfC,oBAASvG,YAAAC,cAAAC,MAAC,SAAAiC,IAAA,IAAAqE,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAhQ,EAAAiQ,EAAAC,EAAA,OAAAhH,cAAAY,MAAA,SAAA6B,GAAA,cAAAA,EAAA3B,KAAA2B,EAAA1B,MAAA,WACJoF,EAAgB,CAAD1D,EAAA1B,KAAA,QAed,GAdGyF,EAAajD,EAASK,iBACtB6C,EAA0B,QAAhBF,EAAGC,EAAW,UAAE,IAAAD,IAAI,CAAC,EAACG,EACPD,EAAvBE,cACRC,GADQD,OAAa,IAAAD,EAAG,CAAC,EAACA,GAElBG,WAAG,IAAAD,EAAG,GAAEA,EAAAE,EAA0CH,EAAxC7P,WAAG,IAAAgQ,EAAG,KAAIA,EAAAC,EAA8BJ,EAA5BK,uBAAe,IAAAD,GAAQA,EACrDhB,EAAW3E,wBAAC,CAAC,EACR0E,GAAQ,IACXe,IAAKA,EACL/P,IAAKA,EACLkQ,gBAAiBA,EACjBC,WAAW,EACXxB,SAAS,EACTyB,WAAW,EACXC,WAAW,MAETN,EAAI,CAADpE,EAAA1B,KAAA,eAAA0B,EAAA1B,KAAA,EACCqG,EAAYP,GAAK,KAAD,mBAAApE,EAAAX,OAAA,GAAAI,EAAA,KAGzB,CAACiE,IAEJ,IAAMiB,EAAW,eAAAC,EAAAtH,YAAAC,cAAAC,MAAG,SAAAqH,EAAOT,GAAG,IAAAU,EAAA9O,EAAAQ,EAAAuH,EAAAgH,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAnM,EAAAC,EAAAC,EAAAkM,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAhQ,GAAA4B,GAAAqO,GAAAC,GAAA,OAAA3K,cAAAY,MAAA,SAAAgK,GAAA,cAAAA,EAAA9J,KAAA8J,EAAA7J,MAAA,OAEoB,OAA1CtI,EAAOF,OAAOI,aAAaC,QAAQ,QAAOgS,EAAA7J,KAAA,EAC1C8J,EAAe,CACnB1K,KAAM,CAAEiJ,mBAAoB3Q,GAC5BqS,KAAMnI,GACNkE,QACC,KAAD,EAC4C,OAAxC5N,EAAM4J,GAAQF,IAA0BiI,EAAA7J,KAAA,EACvB8D,GAAQ,CAC7B1E,KAAM,CAAE4K,QAASlE,EAAKR,UACtBjG,OAAQiD,GACRpK,MACAqJ,aAAc,kBAAMgB,GAASC,EAAU2C,EAAYzC,EAAS,EAC5Df,WAAW,IACV,KAAD,EAEgC,GAR5BlC,EAAQoK,EAAArJ,KAAAiG,EAQuC,QARvCD,EAQiC,OAAR/G,QAAQ,IAARA,OAAQ,EAARA,EAAUkB,YAAI,IAAA6F,IAAI,CAAC,EAACE,EAAAD,EAAnDE,YAAI,IAAAD,EAAG,GAAEA,EAAAE,EAAAH,EAAEwD,eAAO,IAAArD,GAAQA,GACtB,CAADiD,EAAA7J,KAAA,SAsBP,OApBAqH,EAgBEV,EAhBFU,KAAIC,EAgBFX,EAfFY,kBAAU,IAAAD,EAAG,GAAEA,EAAAE,EAebb,EAdFc,iBAAS,IAAAD,EAAG,GAAEA,EAAAE,EAcZf,EAbFgB,oBAAY,IAAAD,EAAG,GAAEA,EAAAE,EAafjB,EAZFkB,aAAK,IAAAD,EAAG,GAAEA,EAAAE,EAYRnB,EAXFoB,oBAAY,IAAAD,EAAG,GAAEA,EAAAE,EAWfrB,EAVFuD,cAAejC,OAAW,IAAAD,GAAQA,EAAAE,EAUhCvB,EATFwB,WAAG,IAAAD,EAAG,CAAC,EAACA,EAAAE,EASNzB,EARF0B,0BAAkB,IAAAD,EAAG,KAAIA,EAAAE,EAQvB3B,EAPF4B,qBAAa,IAAAD,EAAG,GAAEA,EAAAE,EAOhB7B,EANF8B,yBAAiB,IAAAD,EAAG,GAAEA,EAAAE,EAMpB/B,EALFgC,iCAAyB,IAAAD,EAAG,KAAIA,EAAAE,GAK9BjC,EAJFkC,0BAAiB,IAAAD,GAAG,KAAIA,GAAAE,GAItBnC,EAHFoC,mCAA0B,IAAAD,GAAG,KAAIA,GAAAE,GAG/BrC,EAFFsC,uBAAc,IAAAD,GAAG,KAAIA,GAAAE,GAEnBvC,EADFwC,0BAAiB,IAAAD,GAAG,KAAIA,GAE1B1R,OAAOI,aAAamE,QAClB,OACAoO,OAAO9B,GAAoBhQ,eAC3BwR,EAAA7J,KAAA,GAEkC8D,GAAQ,CAC1C1E,KAAM,CAAE4K,QAASlE,EAAK+B,MAAOA,GAC7BxI,OAAQiD,GACRpK,IAAK4J,GAAQF,IACbL,aAAc,kBAAMgB,GAASC,EAAU2C,EAAYzC,EAAS,EAC5Df,WAAW,IACV,KAAD,GANyB,OAArByH,GAAqBS,EAAArJ,KAAAqJ,EAAA7J,KAAA,GAQK8D,GAAQ,CACtC1E,KAAM,CAAE4K,QAASlE,EAAK+B,SACtBxI,OAAQiD,GACRpK,IAAK4J,GAAQF,IACbL,aAAc,kBAAMgB,GAASC,EAAU2C,EAAYzC,EAAS,EAC5Df,WAAW,IACV,KAAD,GANI0H,GAAiBQ,EAAArJ,KAQjB8I,GAAoD,QAAvCzC,EAAwB,OAArBuC,SAAqB,IAArBA,IAA2B,QAANtC,EAArBsC,GAAuBzI,YAAI,IAAAmG,OAAN,EAArBA,EAA6BmD,eAAO,IAAApD,KACpD0C,GAC6B,QAAjCxC,EAAkB,OAAjBsC,SAAiB,IAAjBA,IAAuB,QAANrC,EAAjBqC,GAAmB1I,YAAI,IAAAqG,OAAN,EAAjBA,EAAyBiD,eAAO,IAAAlD,MACG,QADME,EACxB,OAAjBoC,SAAiB,IAAjBA,IAAuB,QAANnC,EAAjBmC,GAAmB1I,YAAI,IAAAuG,OAAN,EAAjBA,EAAyBkD,kBAAU,IAAAnD,KAChCuC,GAAanC,EAAKgD,QAAO,SAACC,EAASC,GACvC,IAAAC,EAA0BD,EAAlB7Q,gBAAQ,IAAA8Q,EAAG,GAAEA,EACrB,OAAOF,GAAkD,SAA/B,OAAR5Q,QAAQ,IAARA,OAAQ,EAARA,EAAU+Q,WAAWpS,cACzC,IAAG,GAAMoR,GACwB,QADxBtC,EACiBE,EAAK,UAAE,IAAAF,IAAI,CAAC,EAACuC,GAAAD,GAA/B/P,iBAAQ,IAAAgQ,GAAG,GAAEA,GACfpO,GAA4D,QAAhDN,EAAG,IAAIO,gBAAsB,QAAPN,EAACzD,cAAM,IAAAyD,GAAU,QAAVC,EAAND,EAAQxD,gBAAQ,IAAAyD,OAAV,EAANA,EAAkBM,eAAO,IAAAR,IAAI,GAChE2O,GAA0C,QAA9BvC,EAAe,OAAZ9L,SAAY,IAAZA,QAAY,EAAZA,GAAcO,IAAI,iBAAS,IAAAuL,IAAI,GAG9CsD,GACJpB,IACAL,IACAE,IACiB,IAAhB9B,EAAKzM,QAAuD,QAA/B,OAARlB,SAAQ,IAARA,QAAQ,EAARA,GAAU+Q,WAAWpS,gBAC1CkR,IAAiBC,IACD,SAAjBG,GAEF3E,EAAW3E,wBAAC,CAAC,EACR0E,GAAQ,IACXe,IAAKA,EACLI,UAAWwE,GACXrC,qBACAlC,UAAWmD,GACXlD,UAAWmD,GACXoB,QAAS,CACPC,UAAW5Q,EAAcuN,GACzBsD,SAAU7Q,EAAcyN,GACxBqD,YAAa/C,EACbgD,cAAexC,EACfyC,UAAWrD,EACXsD,UAAWpD,EACXqD,kBAAmBzC,EACnBR,cACAE,IAAKA,EACLgD,eAAgBxC,EAChByC,WAAYvC,GACZwC,sBAAuBtC,IAEzB1B,OACA4B,kBACAE,wBACCU,EAAA7J,KAAA,iBAEHgF,EAAW3E,wBAAC,CAAC,EACR0E,GAAQ,IACXe,IAAKA,EACLI,UAAWwE,cACV,yBAAAb,EAAA9I,OAAA,GAAAwF,EAAA,KAEN,gBA/GgB5H,GAAA,OAAA2H,EAAAxH,MAAA,KAAAC,UAAA,KAiHX+K,EAAc,eAAAwB,EAAAtM,YAAAC,cAAAC,MAAG,SAAAqM,EAAOnK,GAAO,IAAAoK,EAAAzB,EAAA0B,EAAArM,EAAAsM,EAAAC,EAAAC,EAAAC,EAAAC,EAAAhG,EAAA5N,EAAAuH,EAAAsM,EAAArM,EAAAsM,EAAAC,EAAAtF,EAAAuF,EAAAC,EAAA5E,EAAA6E,EAAA3E,EAAA4E,EAAA1E,EAAA2E,EAAAzE,EAAA0E,EAAAxE,EAAAyE,EAAArE,EAAAsE,EAAApE,EAAAqE,EAAAnE,EAAAoE,EAAAlE,EAAAmE,EAAAjE,EAAAkE,EAAAhE,EAAAiE,EAAA/D,EAAAE,GAAAE,GAAA1G,GAAAsK,GAAAtH,GAAAC,GAAAsH,GAAA3S,GAAA4S,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAA,OAAArO,cAAAY,MAAA,SAAA0N,GAAA,cAAAA,EAAAxN,KAAAwN,EAAAvN,MAAA,OAAAwL,EAM/BpK,EAJF2I,YAAI,IAAAyB,EAAG,GAAEA,EAAAC,EAIPrK,EAHFhC,YAAI,IAAAqM,EAAG,CAAC,EAACA,EAAAC,EAGPtK,EAFF0E,IAAK6F,OAAM,IAAAD,EAAG,GAAEA,EAAAE,EAEdxK,EADFyK,uBAAe,IAAAD,EAAG,kBAAM,IAAI,EAAAA,EAAAE,EAEL/G,EAAjBe,WAAG,IAAAgG,EAAGH,EAAMG,EAChB5T,EAAM,GACNuH,EAAW,CAAC,EAAC8N,EAAA7M,GACTqJ,EAAIwD,EAAAvN,KAAAuN,EAAA7M,KACLkB,GAAyB,EAAA2L,EAAA7M,KA2DzBkB,GAAqB,GAAA2L,EAAA7M,KAOrBkB,GAA0B,GAAA2L,EAAA7M,KAkB1BkB,GAA4B,GAAA2L,EAAA7M,KA+B5BkB,GAA2B,mBAlHW,OAAzC1J,EAAM4J,GAAQF,IAA2B2L,EAAAvN,KAAA,GACxB8D,GAAQ,CACvB1E,KAAIiB,wBAAA,GAAOjB,GAAI,IAAE4K,QAASlE,EAAKR,WAC/BjG,OAAQiD,GACRpK,MACAqJ,aAAc,kBAAMgB,GAASC,EAAU2C,EAAYzC,EAAS,EAC5Df,WAAW,IACV,KAAD,GAgDD,OAtDDlC,EAAQ8N,EAAA/M,KAAAwL,EAO6C,QAP7CD,EAOuC,QAPvCrM,EAO+BD,SAAQ,IAAAC,OAAA,EAARA,EAAUiB,YAAI,IAAAoL,IAAI,CAAC,EAACE,EAAAD,EAAnDrF,YAAI,IAAAsF,EAAG,GAAEA,EAAAC,EAAAF,EAAE/B,aAAO,IAAAiC,GAAQA,GACrBC,EAgBPxF,EAdFY,kBAAU,IAAA4E,EAAG,GAAEA,EAAAC,EAcbzF,EAbFc,iBAAS,IAAA2E,EAAG,GAAEA,EAAAC,EAaZ1F,EAZFgB,oBAAY,IAAA0E,EAAG,GAAEA,EAAAC,EAYf3F,EAXFkB,aAAK,IAAAyE,EAAG,GAAEA,EAAAC,EAWR5F,EAVFoB,oBAAY,IAAAwE,EAAG,GAAEA,EAAAC,EAUf7F,EATFwB,WAAG,IAAAqE,EAAG,CAAC,EAACA,EAAAC,EASN9F,EARF0B,0BAAkB,IAAAoE,EAAG,KAAIA,EAAAC,EAQvB/F,EAPF4B,qBAAa,IAAAmE,EAAG,GAAEA,EAAAC,EAOhBhG,EANF8B,yBAAiB,IAAAkE,EAAG,GAAEA,EAAAC,EAMpBjG,EALFgC,iCAAyB,IAAAiE,EAAG,KAAIA,EAAAC,EAK9BlG,EAJFkC,yBAAiB,IAAAgE,EAAG,KAAIA,EAAAC,EAItBnG,EAHFoC,kCAA0B,IAAA+D,EAAG,KAAIA,EACjC7D,GAEEtC,EAFFsC,eACAE,GACExC,EADFwC,kBAEF3R,OAAOI,aAAamE,QAClB,OACAoO,OAAO9B,GAAoBhQ,eAE7B2M,EAAW3E,wBAAC,CAAC,EACR0E,GAAQ,IACXsD,qBACAnC,WAAW,EACX+C,kBACAE,qBACAwB,QAAS,CACPC,UAAW5Q,EAAcuN,GACzBsD,SAAU7Q,EAAcyN,GACxBqD,YAAa/C,EACbgD,cAAexC,EACfyC,UAAWrD,EACXsD,UAAWpD,EACXqD,kBAAmBzC,EACnBN,IAAKA,EACLgD,eAAgBxC,EAChByC,WAAYvC,EACZwC,sBAAuBtC,OAI3B/D,EAAW3E,wBAAC,CAAC,EACR0E,GAAQ,IACXmB,WAAW,KAEdqH,EAAA9M,OAAA,oBAO4D,OAHvDgF,GAAsC,QAA5BhD,GAAGD,EAASK,wBAAgB,IAAAJ,MAAI,GAC1CiD,GAA0B,QAAhBqH,GAAGtH,GAAW,UAAE,IAAAsH,MAAI,CAAC,EAACC,GAChBtH,GAAdrL,aAAI,IAAA2S,GAAG,GAAEA,GACjBhI,EAAW3E,wBAAC,CAAC,EAAI0E,GAAQ,IAAE6F,UAAW5Q,EAAcK,OAASkT,EAAA9M,OAAA,oBAKP,OADtDvI,EAAM4J,GAAQF,IACd4L,EAAmBnN,wBAAC,CAAC,EAAI0E,GAAQ,IAAEmB,WAAW,KAAQqH,EAAAvN,KAAA,GACrC8D,GAAQ,CACvB1E,KAAIiB,wBAAA,GAAOjB,GAAI,IAAE4K,QAASlE,EAAKR,WAC/BjG,OAAQiD,GACRpK,MACAqJ,aAAc,kBAAMgB,GAASC,EAAU2C,EAAYzC,EAAS,EAC5Df,WAAW,IACV,KAAD,GAKD,OAXDlC,EAAQ8N,EAAA/M,MAOKG,KAAKsJ,QAChBtM,QAAQ2F,IAAI,0BAEZ3F,QAAQ2F,IAAI,0BACbiK,EAAA9M,OAAA,oBAUE,OALGvI,GAAM4J,GAAQF,IAA6BsL,GAC1B9N,EAAfyI,cAAK,IAAAqF,GAAG,GAAEA,GAClBlI,EAAW3E,wBAAC,CAAC,EACR0E,GAAQ,IACXmB,WAAW,KACVqH,EAAAvN,KAAA,GACc8D,GAAQ,CACvB1E,KAAM,CAAC,EACPC,OAAQiD,GACRpK,IAAI,GAADF,OAAKE,GAAG,WAAAF,OAAU6P,IACrBxG,mBAAmB,IAClB,KAAD,GAeD,OAduB,OANxB5B,EAAQ8N,EAAA/M,MAMKiN,QACX9P,QAAQ2F,IAAI,qBACZuI,IACA7G,EAAW3E,wBAAC,CAAC,EACR0E,GAAQ,IACXmB,WAAW,OAGbvI,QAAQ2F,IAAI,0BACZuI,IACA7G,EAAW3E,wBAAC,CAAC,EACR0E,GAAQ,IACXmB,WAAW,MAEdqH,EAAA9M,OAAA,oBAUE,OALGvI,GAAM4J,GAAQF,IAA4ByL,GACzBjO,EAAfyI,cAAK,IAAAwF,GAAG,GAAEA,GAClBrI,EAAW3E,wBAAC,CAAC,EACR0E,GAAQ,IACXmB,WAAW,KACVqH,EAAAvN,KAAA,GACc8D,GAAQ,CACvB1E,KAAM,CAAC,EACPC,OAAQiD,GACRpK,IAAI,GAADF,OAAKE,GAAG,WAAAF,OAAU6P,GAAK,iBAC1BxG,mBAAmB,IAClB,KAAD,GAcD,OAbuB,OANxB5B,EAAQ8N,EAAA/M,MAMKiN,QACX9P,QAAQ2F,IAAI,yBACZuI,IACA7G,EAAW3E,wBAAC,CAAC,EACR0E,GAAQ,IACXmB,WAAW,OAGbvI,QAAQ2F,IAAI,8BACZ0B,EAAW3E,wBAAC,CAAC,EACR0E,GAAQ,IACXmB,WAAW,MAEdqH,EAAA9M,OAAA,2BAAA8M,EAAA9M,OAAA,qCAAA8M,EAAAxM,OAAA,GAAAwK,EAAA,KAON,gBA/JmB3M,GAAA,OAAA0M,EAAAxM,MAAA,KAAAC,UAAA,KAiKdyO,EAAsB,WAAH,IAAIE,EAAG3O,UAAAnE,OAAA,QAAAqF,IAAAlB,UAAA,GAAAA,UAAA,GAAG,KAAI,OACrCiG,GAAY,SAAC2I,GAAY,OAAAtN,wBAAA,GAAWsN,GAAiBD,EAAG,GAAK,EAEzDE,EAAQ,CAAE7I,WAAU+E,iBAAgB0D,sBAAqBnH,eAC/D,OACEwH,eAAClK,GAAgBmK,SAAQ,CAACF,MAAOA,EAAMrJ,SACpCA,GAGP,CAEA,SAASwJ,KACP,IAAMC,EAAUpK,IAAMqK,WAAWtK,IACjC,QAAgB1D,IAAZ+N,EACF,MAAM,IAAItQ,MAAM,qDAElB,OAAOsQ,CACT,CCxVA,IAAME,GAActK,IAAMC,gBAEpBC,GAAO,eAAAzI,EAAA2D,YAAAC,cAAAC,MAAG,SAAAC,EAAA/D,GAAA,IAAA2I,EAAA3E,EAAA4E,EAAA9L,EAAA+L,EAAA5E,EAAA8E,EAAA5C,EAAA6C,EAAAzC,EAAAlC,EAAA,OAAAR,cAAAY,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAKG,OALH+D,EAAA3I,EACdgE,YAAI,IAAA2E,EAAG,CAAC,EAACA,EAAAC,EAAA5I,EACTlD,WAAG,IAAA8L,EAAG,GAAEA,EAAAC,EAAA7I,EACRiE,cAAM,IAAA4E,EAAG3B,GAAe2B,EAAAE,EAAA/I,EACxBmG,oBAAY,IAAA4C,EAAG,kBAAM,IAAI,EAAAA,EAAAC,EAAAhJ,EACzBuG,iBAAS,IAAAyC,GAAQA,EAAAtE,EAAAE,KAAA,EAEIgB,EAAQ,CAAE5B,OAAMC,SAAQnH,MAAKqJ,eAAcI,cAAa,KAAD,EAAhE,OAARlC,EAAQK,EAAAU,KAAAV,EAAAW,OAAA,SACLhB,GAAQ,wBAAAK,EAAAiB,OAAA,GAAA5B,EAAA,KAChB,gBATYT,GAAA,OAAArD,EAAAyD,MAAA,KAAAC,UAAA,KAWPoP,GAAc,eAAA7J,EAAAtF,YAAAC,cAAAC,MAAG,SAAAiC,EAAOiN,GAAO,OAAAnP,cAAAY,MAAA,SAAA6B,GAAA,cAAAA,EAAA3B,KAAA2B,EAAA1B,MAAA,cAAA0B,EAAA1B,KAAA,EAC7BoO,EAAQ,CAAErE,KAAMnI,GAA2BxC,KAAM,CAAC,IAAK,KAAD,mBAAAsC,EAAAX,OAAA,GAAAI,EAAA,KAC7D,gBAFmBxC,GAAA,OAAA2F,EAAAxF,MAAA,KAAAC,UAAA,KAIpB,SAASsP,GAAYC,GAAgB,IAAb/J,EAAQ+J,EAAR/J,SACtBU,EAA2CC,cAAnC1C,EAAQyC,EAARzC,SAAU2C,EAAUF,EAAVE,WAAYzC,EAAQuC,EAARvC,SAC9B8B,EAAgCC,mBAAS,CAAC,GAAEI,EAAAC,YAAAN,EAAA,GAArC+J,EAAQ1J,EAAA,GAAE2J,EAAW3J,EAAA,GAC5B4J,EAAoChK,mBAAS,CAAEsF,KAAM,GAAI0D,OAAQ,OAAOiB,EAAA5J,YAAA2J,EAAA,GAAjEE,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAChCG,EAAkCpK,mBAAS,CAAEsF,KAAM,GAAI+E,IAAK,CAAC,IAAIC,EAAAjK,YAAA+J,EAAA,GAA1DG,EAASD,EAAA,GAAEE,EAAYF,EAAA,GAC9BG,EAIInB,KAAqBoB,EAAAD,EAHvBnK,gBAAQ,IAAAoK,EAAG,CAAC,EAACA,EACbrF,EAAcoF,EAAdpF,eACA0D,EAAmB0B,EAAnB1B,oBAGI4B,EAAQ,eAAA9I,EAAAtH,YAAAC,cAAAC,MAAG,SAAAqH,EAAOnF,GAAO,IAAAoK,EAAAzB,EAAA0B,EAAArM,EAAAwM,EAAAC,EAAA3T,EAAAoN,EAAA+J,EAAA5P,EAAAqM,EAAAhG,EAAA6E,EAAA2E,EAAArE,EAAAzE,EAAA+I,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAlR,cAAAY,MAAA,SAAAgK,GAAA,cAAAA,EAAA9J,KAAA8J,EAAA7J,MAAA,OAAAwL,EACkCpK,EAAvD2I,YAAI,IAAAyB,EAAG,GAAEA,EAAAC,EAA8CrK,EAA5ChC,YAAI,IAAAqM,EAAG,CAAC,EAACA,EAAAG,EAAmCxK,EAAjCyK,uBAAe,IAAAD,EAAG,kBAAM,IAAI,EAAAA,EACtD1T,EAAM,GACJoN,EAAS,WACfsJ,EAAc,CAAE7E,OAAM0D,OAAQ,OAC9BwB,EAAa,CAAElF,OAAM+E,IAAK,CAAC,IACrBO,EAAQ,WAAUvD,EAEM/G,EAAtBe,WAAG,IAAAgG,EAAG,GAAEA,EAAEnB,EAAY5F,EAAZ4F,QAAO2E,EACI3E,EAArBM,iBAAS,IAAAqE,EAAG,KAAIA,EAAAzF,EAAAnJ,GAChBqJ,EAAIF,EAAA7J,KAAA6J,EAAAnJ,KACLkB,GAA0B,GAAAiI,EAAAnJ,KAuB1BkB,GAAuB,GAAAiI,EAAAnJ,KAsBvBkB,GAAwB,GAAAiI,EAAAnJ,KAoBxBkB,GAA0B,GAAAiI,EAAAnJ,KA+B1BkB,GAAyB,GAAAiI,EAAAnJ,KAqBzBkB,GAAqB,GAAAiI,EAAAnJ,KAmBrBkB,GAAoB,sBAtI+B,OADtD1J,EAAM4J,GAAQF,IACd4L,EAAmBnN,wBAAC,CAAC,EAAI0E,GAAQ,IAAEmB,WAAW,KAAQ2D,EAAA7J,KAAA,GACrC8D,GAAQ,CACvB1E,KAAIiB,wBAAA,GAAOjB,GAAI,IAAE4K,QAASlE,EAAKR,WAC/BjG,OAAQiD,GACRpK,MACAqJ,aAAc,kBAAMgB,GAASC,EAAU2C,EAAYzC,EAAS,EAC5Df,WAAW,IACV,KAAD,GAC2B,GAP7BlC,EAAQoK,EAAArJ,KAORgO,EAAWnO,YAAC,CAAC,EAAIkO,KACb9O,EAASkB,KAAKsJ,QAAQ,CAADJ,EAAA7J,KAAA,gBAAA6J,EAAA7J,KAAA,GACjBmO,GAAerE,GAAgB,KAAD,GACpC8E,EAAavO,wBAAC,CAAC,EAAIsO,GAAU,IAAE5E,OAAM0D,QAAQ,KAC7C5B,IACA2B,EAAoB,CAAEtH,WAAW,IAAS2D,EAAA7J,KAAA,iBAE1CwN,EAAoB,CAAEtH,WAAW,IACjC0I,EAAavO,wBAAC,CAAC,EAAIsO,GAAU,IAAE5E,OAAM0D,QAAQ,KAAS,eAAA5D,EAAApJ,OAAA,qBAMjB,OAAvCvI,EAAM4J,GAAQF,IAAyBiI,EAAA7J,KAAA,GACtB8D,GAAQ,CACvB1E,KAAIiB,wBAAA,GAAOjB,GAAI,IAAE4K,QAASlE,EAAKuJ,QAAO/J,WACtCjG,OAAQiD,GACRpK,MACAqJ,aAAc,kBAAMgB,GAASC,EAAU2C,EAAYzC,EAAS,EAC5Df,WAAW,IACV,KAAD,GAC2B,GAP7BlC,EAAQoK,EAAArJ,KAORgO,EAAWnO,YAAC,CAAC,EAAIkO,KACb9O,EAASkB,KAAKsJ,QAAQ,CAADJ,EAAA7J,KAAA,SAED,OADQwG,EAAR/G,EAAdkB,KAAS4O,QAAL,IAAA/I,EAAG,CAAC,EAACA,GACTgJ,iBAAS,IAAAD,EAAG,GAAEA,EAAA1F,EAAA7J,KAAA,GAChBmO,GAAerE,GAAgB,KAAD,GACpC8E,EAAavO,wBAAC,CAAC,EAAIsO,GAAU,IAAE5E,OAAM0D,QAAQ,KAC7CwB,EAAa,CAAElF,OAAM+E,IAAK,CAAEU,eAC5B3D,IAAkBhC,EAAA7J,KAAA,iBAElB4O,EAAavO,wBAAC,CAAC,EAAIsO,GAAU,IAAE5E,OAAM0D,QAAQ,KAAS,eAAA5D,EAAApJ,OAAA,qBAMT,OAD/CvI,EAAM4J,GAAQF,IACd4M,EAAWnO,wBAAC,CAAC,EAAIkO,GAAQ,IAAE6B,aAAc,CAAC,KAAKvG,EAAA7J,KAAA,GAC9B8D,GAAQ,CACvB1E,KAAIiB,wBAAA,GAAOjB,GAAI,IAAEiR,OAAQvK,EAAKuJ,QAAO/J,WACrCjG,OAAQiD,GACRpK,MACAqJ,aAAc,kBAAMgB,GAASC,EAAU2C,EAAYzC,EAAS,EAC5Df,WAAW,IACV,KAAD,GAOD,OAbDlC,EAAQoK,EAAArJ,MAOKG,KAAKsJ,SAChB2E,EAAavO,wBAAC,CAAC,EAAIsO,GAAU,IAAE5E,OAAM0D,QAAQ,KAC7Ce,EAAWnO,wBAAC,CAAC,EAAIkO,GAAQ,IAAE6B,aAAc3Q,EAASkB,QAClDkL,KAEA+C,EAAavO,wBAAC,CAAC,EAAIsO,GAAU,IAAE5E,OAAM0D,QAAQ,KAC9C5D,EAAApJ,OAAA,qBAOqB,OAFtBvI,EAAM4J,GAAQF,IAA4B8N,EACrBV,EAAbF,IAAQa,QAAL,IAAAD,EAAG,CAAC,EAACA,GACRF,iBAAS,IAAAG,EAAG,GAAEA,EAAA9F,EAAA7J,KAAA,GACK8D,GAAQ,CACjC5L,IAAK4J,GAAQF,IACbxC,KAAM,CAAEiR,OAAQvK,EAAKuJ,QAAO/J,UAC5B/D,aAAc,kBAAMgB,GAASC,EAAU2C,EAAYzC,EAAS,EAC5Df,WAAW,IACV,KAAD,GALgB,GAMF,QANVkO,EAAYhG,EAAArJ,YAMF,IAAZqP,GAAkB,QAANJ,EAAZI,EAAclP,YAAI,IAAA8O,IAAlBA,EAAoBxF,QAAO,CAAAJ,EAAA7J,KAAA,SACb,OADa8P,EACI,OAAZD,QAAY,IAAZA,OAAY,EAAZA,EAAclP,KAAIoP,EAAAD,EAA/BE,WAAG,IAAAD,EAAG,GAAEA,EAAAlG,EAAA7J,KAAA,GACC8D,GAAQ,CACvB1E,KAAIiB,wBAAA,GAAOjB,GAAI,IAAEiR,OAAQvK,EAAKuJ,QAAOG,YAAWQ,MAAK1K,WACrDjG,OAAQiD,GACRpK,MACAqJ,aAAc,kBAAMgB,GAASC,EAAU2C,EAAYzC,EAAS,EAC5Df,WAAW,IACV,KAAD,GANM,KAARlC,EAAQoK,EAAArJ,MAOKG,KAAKsJ,QAAQ,CAADJ,EAAA7J,KAAA,SAC8B,OAArD4O,EAAavO,wBAAC,CAAC,EAAIsO,GAAU,IAAE5E,OAAM0D,QAAQ,KAAQ5D,EAAA7J,KAAA,GAC/CmO,GAAerE,GAAgB,KAAD,GACpC+B,EAAgB,QAAQhC,EAAA7J,KAAA,iBAExB4O,EAAavO,wBAAC,CAAC,EAAIsO,GAAU,IAAE5E,OAAM0D,QAAQ,KAAS,QAI7B,OAA7Be,EAAWnO,YAAC,CAAC,EAAIkO,IAAY1E,EAAApJ,OAAA,qBAMP,OAFtBvI,EAAM4J,GAAQF,IAA2BqO,EACpBjB,EAAbF,IAAQoB,QAAL,IAAAD,EAAG,CAAC,EAACA,GACRT,iBAAS,IAAAU,EAAG,GAAEA,EAAArG,EAAA7J,KAAA,GACL8D,GAAQ,CACvB1E,KAAIiB,wBAAA,GAAOjB,GAAI,IAAE4K,QAASlE,EAAKuJ,QAAOG,YAAWlK,WACjDjG,OAAQiD,GACRpK,MACAqJ,aAAc,kBAAMgB,GAASC,EAAU2C,EAAYzC,EAAS,EAC5Df,WAAW,IACV,KAAD,GANM,KAARlC,EAAQoK,EAAArJ,MAOKG,KAAKsJ,QAAQ,CAADJ,EAAA7J,KAAA,gBAAA6J,EAAA7J,KAAA,GACjBmO,GAAerE,GAAgB,KAAD,GACpC8E,EAAavO,wBAAC,CAAC,EAAIsO,GAAU,IAAE5E,OAAM0D,QAAQ,KAC7C5B,EAAgB,SAAShC,EAAA7J,KAAA,iBAEzB4O,EAAavO,wBAAC,CAAC,EAAIsO,GAAU,IAAE5E,OAAM0D,QAAQ,KAAS,QAElC,OAAtBe,EAAY/O,GAAUoK,EAAApJ,OAAA,qBAIe,OAArCvI,EAAM4J,GAAQF,IAAuBiI,EAAA7J,KAAA,GACpB8D,GAAQ,CACvB1E,KAAIiB,wBAAA,GAAOjB,GAAI,IAAEiR,OAAQvK,EAAKuJ,QAAO/J,WACrCjG,OAAQiD,GACRpK,MACAqJ,aAAc,kBAAMgB,GAASC,EAAU2C,EAAYzC,EAAS,EAC5Df,WAAW,IACV,KAAD,GANM,KAARlC,EAAQoK,EAAArJ,MAOKG,KAAKsJ,QAAQ,CAADJ,EAAA7J,KAAA,iBAAA6J,EAAA7J,KAAA,GACjBmO,GAAerE,GAAgB,KAAD,GACpC8E,EAAavO,wBAAC,CAAC,EAAIsO,GAAU,IAAE5E,OAAM0D,QAAQ,KAC7C5B,IAAkBhC,EAAA7J,KAAA,mBAElB4O,EAAavO,wBAAC,CAAC,EAAIsO,GAAU,IAAE5E,OAAM0D,QAAQ,KAAS,SAElC,OAAtBe,EAAY/O,GAAUoK,EAAApJ,OAAA,sBAIc,OAApCvI,EAAM4J,GAAQF,IAAsBiI,EAAA7J,KAAA,IAC9B8D,GAAQ,CACZ1E,KAAIiB,wBAAA,GACCjB,GAAI,IACPiR,OAAQvK,EACRmF,UAAWA,EACXqF,WAAY,oBACZhL,WAEFjG,OAAQiD,GACRpK,MACAqJ,aAAc,kBAAMgB,GAASC,EAAU2C,EAAYzC,EAAS,EAC5Df,WAAW,IACV,KAAD,oBAAAkI,EAAApJ,OAAA,uCAAAoJ,EAAA9I,OAAA,GAAAwF,EAAA,KAMP,gBAvKa3H,GAAA,OAAA0H,EAAAxH,MAAA,KAAAC,UAAA,KAyKR6O,EAAQ,CAAEW,WAAUI,aAAYS,YACtC,OAAOvB,eAACK,GAAYJ,SAAQ,CAACF,MAAOA,EAAMrJ,SAAEA,GAC9C,CAEA,SAASgM,KACP,IAAMvC,EAAUpK,IAAMqK,WAAWC,IACjC,QAAgBjO,IAAZ+N,EACF,MAAM,IAAItQ,MAAM,kDAElB,OAAOsQ,CACT,CC9MewC,OARf,SAA2BtY,GAAyB,IAApBuY,EAAM1R,UAAAnE,OAAA,QAAAqF,IAAAlB,UAAA,GAAAA,UAAA,GAAG,SACjC2R,EAAIlZ,OAAOmZ,KAAKzY,EAAKuY,GAC3B,SAAKC,GAAKA,EAAEE,QAA2B,oBAAVF,EAAEE,OAIjC,ECCMC,GAAmBjN,IAAMC,gBAEzBC,GAAO,eAAAzI,EAAA2D,YAAAC,cAAAC,MAAG,SAAAC,EAAA/D,GAAA,IAAA2I,EAAA3E,EAAA4E,EAAA9L,EAAA+L,EAAA5E,EAAAC,EAAA4E,EAAA7C,EAAA5B,EAAA,OAAAR,cAAAY,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAKW,OALX+D,EAAA3I,EACdgE,YAAI,IAAA2E,EAAG,CAAC,EAACA,EAAAC,EAAA5I,EACTlD,WAAG,IAAA8L,EAAG,GAAEA,EAAAC,EAAA7I,EACRiE,cAAM,IAAA4E,EAAG3B,GAAe2B,EACxB3E,EAAWlE,EAAXkE,YAAW4E,EAAA9I,EACXiG,yBAAiB,IAAA6C,GAAQA,EAAApE,EAAAE,KAAA,EAEJgB,EAAQ,CAC3B5B,OACAC,SACAnH,MACAoH,cACA+B,sBACC,KAAD,EANU,OAAR5B,EAAQK,EAAAU,KAAAV,EAAAW,OAAA,SAOLhB,GAAQ,wBAAAK,EAAAiB,OAAA,GAAA5B,EAAA,KAChB,gBAfYT,GAAA,OAAArD,EAAAyD,MAAA,KAAAC,UAAA,KAiBb,SAAS+R,GAAiBxM,GAAgB,IAAbC,EAAQD,EAARC,SAC3BC,EAA4CC,mBAAS,CACnDC,SAAS,EACTwB,WAAW,EACX6K,cAAc,IACdlM,EAAAC,YAAAN,EAAA,GAJKwM,EAAcnM,EAAA,GAAEoM,EAAiBpM,EAAA,GAMhC2I,EAAwBO,KAAxBP,oBAEF0D,EAAoB,eAAA5C,EAAAtP,YAAAC,cAAAC,MAAG,SAAAiC,EAAOC,GAAO,IAAA+P,EAAAC,EAAA5F,EAAAzB,EAAA/T,EAAAqb,EAAAC,EAAAC,EAAArZ,EAAAsZ,EAAApS,EAAAqS,EAAAC,EAAAC,EAAAC,EAAAC,EAAAlR,EAAAmR,EAAAxL,EAAAyL,EAAAtE,EAAAuE,EAAAC,EAAAC,EAAAC,EAAA,OAAAlT,cAAAY,MAAA,SAAA6B,GAAA,cAAAA,EAAA3B,KAAA2B,EAAA1B,MAAA,OAAAwL,EACnBpK,EAAd2I,YAAI,IAAAyB,EAAG,GAAEA,EACXxV,GAAqB,QAAZmb,EAAI,OAAHpb,QAAG,IAAHA,OAAG,EAAHA,EAAKC,cAAM,IAAAmb,IAAI,IAAI1G,WAAWpS,cACxCgZ,EAAce,mBAA6C,QAA3BhB,EAACrb,EAAIE,IAAIM,0BAAkB,IAAA6a,IAAI,IAC/DE,EAAYrP,GAAgB,KAAEjM,GAC9Bub,EAAiB,8CACjBrZ,EAAM4J,GAAQiI,GAAKrI,EAAAhB,GACjBqJ,EAAIrI,EAAA1B,KAAA0B,EAAAhB,KACLkB,GAA2B,EAAAF,EAAAhB,KAK3BkB,GAAqB,mBAHoB,OADtC4P,EAAe,cAAAxZ,OAAiBsZ,EAAS,qCAAAtZ,OAAoCqZ,EAAW,yDAAArZ,OAAwDsZ,EAAS,2BAAAtZ,OAA0BuZ,EAAc,mDACvM/Z,OAAOmZ,KAAKzY,EAAMsZ,EAAiB,SAAS9P,EAAAjB,OAAA,oBAY3C,OARDwQ,EAAiB5Q,wBAAC,CAAC,EAAI2Q,GAAc,IAAE9K,WAAW,KAC1C9G,EAASgC,EAAThC,KAAIqS,EAC2CrS,EAA/CsS,YAAI,IAAAD,EAAG,GAAEA,EAAAE,EAAsCvS,EAApCwS,mBAAW,IAAAD,EAAG,KAAIA,EAAAE,EAAkBzS,EAAhB1H,UAAI,IAAAma,EAAG,KAAIA,EAC5ClR,EAAO,CACXtB,OAAQ,OACRC,YAAa,oCACbF,KAAK,QAADpH,OAAU0Z,EAAI,0DAAA1Z,OAAyDsZ,EAAS,wBAAAtZ,OAAuBsZ,EAAS,kBAAAtZ,OAAiBqZ,EAAW,mBAAArZ,OAAkBuZ,GAClKrZ,IAAKA,GACNwJ,EAAA1B,KAAA,GACkB8D,GAAQnD,GAAM,KAAD,GA+B/B,OA/BKmR,EAAIpQ,EAAAlB,KACVyQ,EAAiB5Q,wBAAC,CAAC,EAAI2Q,GAAc,IAAE9K,WAAW,KAG7C4L,GACHb,EAAiB5Q,wBAAC,CAAC,EAAI2Q,GAAc,IAAEtM,SAAS,KAGOqN,GAFxDzL,EAE8CwL,GAAQ,CAAC,GAAhDrE,cAAM,IAAAsE,EAAG,KAAIA,EAAAC,EAAA1L,EAAE3F,KAAMsR,OAAQ,IAAAD,EAAG,CAAC,EAACA,EAC3B,MAAXvE,GACFwD,EAAiB5Q,wBAAC,CAAC,EAAI2Q,GAAc,IAAE9K,WAAW,KAASgM,EACjCD,EAAlBE,SACS,MADTA,OAAQ,IAAAD,EAAG,GAAEA,IACkB,OAAhBN,GAErBpa,OAAOoN,eAAe7I,QAAQ,iBAAiB,GAC/CvE,OAAOI,aAAamE,QAAQ,YAAa,QACzCkV,EAAiB5Q,wBAAC,CAAC,EAAI2Q,GAAc,IAAED,cAAc,KAEhCP,GAAkB,GAADxY,OACjC4Z,EAAW,WAAA5Z,OAAUma,GACxB,WAGA3E,EAAoB,CAAE7I,gBAAgB,IACtCnN,OAAOoN,eAAe7I,QAAQ,kBAAkB,KAGlDkV,EAAiB5Q,wBAAC,CAAC,EAAI2Q,GAAc,IAAEtM,SAAS,MAGlDuM,EAAiB5Q,wBAAC,CAAC,EAAI2Q,GAAc,IAAEtM,SAAS,KACjDhD,EAAAjB,OAAA,2BAAAiB,EAAAjB,OAAA,qCAAAiB,EAAAX,OAAA,GAAAI,EAAA,KAON,gBA7DyBxC,GAAA,OAAA2P,EAAAxP,MAAA,KAAAC,UAAA,KAkEpB6O,EAAQ,CACZsD,uBACAF,iBACAqB,0BANgC,WAAH,IAAI3E,EAAG3O,UAAAnE,OAAA,QAAAqF,IAAAlB,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OACzCkS,GAAkB,SAACtD,GAAY,OAAAtN,wBAAA,GAAWsN,GAAiBD,EAAG,GAAK,GAOrE,OACEG,eAACgD,GAAiB/C,SAAQ,CAACF,MAAOA,EAAMrJ,SACrCA,GAGP,CAEA,SAAS+N,KACP,IAAMtE,EAAUpK,IAAMqK,WAAW4C,IACjC,QAAgB5Q,IAAZ+N,EACF,MAAM,IAAItQ,MAAM,sDAElB,OAAOsQ,CACT,C,gCCpGe,SAASuE,GAAiBC,GAA2B,IAADpX,EAAAqX,EAAb/a,EAAIqH,UAAAnE,OAAA,QAAAqF,IAAAlB,UAAA,GAAAA,UAAA,GAAG,KACvDnD,EAAsD,QAA9CR,EAAO,OAAJ1D,QAAI,IAAJA,IAAQF,OAAOI,aAAaC,QAAQ,eAAO,IAAAuD,IAAI,KAE9D,OADAQ,EAAmB,QAAX6W,EAAG7W,SAAQ,IAAA6W,OAAA,EAARA,EAAUpa,cACd,SAACqa,GAAS,IAADC,EAAAC,EACd,OAAqC,QAArCD,EAAkB,OAAXH,QAAW,IAAXA,GAAuB,QAAZI,EAAXJ,EAAc5W,UAAS,IAAAgX,OAAZ,EAAXA,EAA0BF,UAAI,IAAAC,IAAID,CAC3C,CACF,C,aCZe9U,GAZD,CACZiV,GAAI,CACFC,WAAY,yCACZC,KAAM,QAGRC,GAAI,CACFF,WAAY,iEACZC,KAAM,Y,OCAV,SAASE,GAAQ7X,GAAY,IAAT1D,EAAI0D,EAAJ1D,KACZwb,EAAUC,wBAMVC,EAAYb,GAAiBc,GAAU3b,GAC7C,OACEmW,eAAA,OAAKyF,UAAU,uBAAsB/O,SACjCgP,gBAAA,OAAKD,UAAU,kBAAiB/O,SAAA,CAC9BsJ,eAAA,MAAI2F,MAAM,cAAajP,SAAE6O,EAAU,gBACnCvF,eAAC4F,iBAAa,CACZC,MAAON,EAAU,QACjBO,aAXmB,WAC3BT,EAAQU,KAAK,IAAD5b,OAAKN,EAAI,SACvB,QAcF,CAEAub,GAASY,aAAe,CACtB,EAOaZ,U,oBCzBArV,GAZD,CACZiV,GAAI,CACFiB,gBAAiB,+CACjBC,OAAQ,UAGVf,GAAI,CACFc,gBAAiB,oEACjBC,OAAQ,mB,OCGZ,SAASC,GAAM5Y,GAAY,IAAD6Y,EAAAC,EAARxc,EAAI0D,EAAJ1D,KAChB8M,EAAgCC,oBAAS,GAAKI,EAAAC,YAAAN,EAAA,GAAvC2P,EAAOtP,EAAA,GAAEuP,EAAYvP,EAAA,GAE5BI,GADgBkO,wBACejO,eAAvB1C,EAAQyC,EAARzC,SACFe,EAA0C,QAA7B0Q,EAAc,QAAdC,EADOjP,EAARvC,SACa,UAAE,IAAAwR,OAAA,EAAXA,EAAa3Q,qBAAa,IAAA0Q,IAAI,GACpD/E,EAA+CnB,KACzCvK,GAD8D0L,EAA5DnK,SAAkCmK,EAAnB1B,oBACD,CACpB1K,QAASN,EAASiB,mBAAmBF,KAGvCgC,qBAAU,WACR8O,YAAW,WACTD,GAAa,EACf,GAAG,IACL,GAAG,IAEH,IAYMhB,EAAYb,GAAiBc,GAAU3b,GAC7C,OACEmW,eAAA,OAAKyF,UAAU,qBAAoB/O,SAChC4P,EACCtG,eAACyG,KAAM,CAAC5c,KAAMA,IAEd6b,gBAAA,OAAKD,UAAU,gBAAe/O,SAAA,CAC5BsJ,eAAA,MAAI2F,MAAM,cAAajP,SAAE6O,EAAU,qBACnCvF,eAAC4F,iBAAa,CACZC,MAAON,EAAU,UACjBO,aAtBmB,WAC3B,IAAIY,EAAM,IAAIC,KAEVC,EADOF,EAAIG,UACS,KACxBH,EAAII,QAAQF,GACZ,IAAM3Y,EAAS,QAAQhE,KAAKN,OAAOC,SAASF,MACxC,YACA,cACJiD,SAASC,OAAM,2BAAAzC,OAA8Buc,EAAIK,cAAa,aAAA5c,OAAY8D,EAAM,WAChF0G,EAASkB,eAAeF,EAC1B,QAkBF,CAEAwQ,GAAOH,aAAe,CACpB,EAOaG,U,4MClEFa,GAAU,SAAVA,EAAW5b,EAAGC,GAAwB,IAArB4b,EAAG/V,UAAAnE,OAAA,QAAAqF,IAAAlB,UAAA,GAAAA,UAAA,GAAG,IAAIgW,IACtC,GAAI9b,IAAMC,EAAG,OAAO,EACpB,GAAI4b,EAAIE,IAAI/b,IAAM6b,EAAIjZ,IAAI5C,KAAOC,EAAG,OAAO,EAG3C,GAFA4b,EAAIG,IAAIhc,EAAGC,GAEM,kBAAND,GAA+B,kBAANC,EAAgB,CAClD,IAAMgc,EAASC,OAAOC,KAAKnc,GACrBoc,EAASF,OAAOC,KAAKlc,GAC3B,GAAIgc,EAAOta,SAAWya,EAAOza,OAAQ,OAAO,EAC5C,IAAK,IAAID,EAAI,EAAGA,EAAIua,EAAOta,OAAQD,IAAK,CACtC,GAAIua,EAAOva,KAAO0a,EAAO1a,GAAI,OAAO,EACpC,IAAKka,EAAQ5b,EAAEic,EAAOva,IAAKzB,EAAEmc,EAAO1a,IAAKma,GAAM,OAAO,CACxD,CACA,OAAO,CACT,CACA,OAAO,CACT,ECdaQ,GACN,MAGMC,GAAUvT,YAAA,GACpBsT,GAAiBE,OAAaC,OAAOC,SAAS,qB,qBCkBlCC,OAvBf,SAAyBC,EAAIC,EAAQC,GACnC,IAUMC,EAAmBF,EAErBA,EACFG,KAAOC,UAAUF,EAbN,CACXG,qBAAsB,IACtBnM,KAAM,aACNoM,QAAS,GACTC,OAAQ,EACRC,MAAO,CACLC,KAAM,UACNC,MAAO,aAMgC,SAASC,EAAKte,GACrD,GAAIse,EAAK,MAAMA,EACfZ,EAAGY,EAAKte,EACV,IAEE0d,EAAG,iBAAiB,KAE1B,ECqUea,GA3VE,CACf5D,GAAI,CACF6D,aAAc,eACd1M,QAAS,UACT2M,gBAAiB,aACjBC,eAAgB,YAChBC,kBAAmB,oBACnBC,OAAQ,SACRC,OAAQ,SACRC,qBAAsB,uBACtBC,KAAM,OACNC,oBAAqB,sBACrBC,cAAe,wBACfC,kBAAmB,oBACnBC,UAAW,YACXZ,SAAU,WACVa,0BAA2B,4BAC3BC,kBAAmB,mCACnBC,QAAS,oBACTC,cAAe,oBACfC,eACE,qFACFC,sBAAuB,2BACvBC,4BAA6B,4CAC7BC,4BACE,uIACFC,4BACE,qDACFC,IAAK,MACLC,QAAS,UACTC,wBAAyB,0BACzBC,8BACE,2OACFC,MAAO,qCACPC,YAAa,4DACbC,YACE,0EACFC,MAAO,gBACPC,YAAa,0DACbC,YACE,+EACFC,MAAO,kBACPC,YACE,mEACFC,OAAQ,SACRC,mBAAoB,oCACpBC,yBACE,+GACFC,yBACE,8DACFC,YAAa,eACbC,GAAI,KACJC,aAAc,qBACdC,cAAe,uBACfC,aAAc,eACdtR,MAAO,QACPuR,KAAM,OACNC,MAAO,SACPC,WAAY,aACZC,0BACE,iFACFC,gBAAiB,kBACjBC,sBAAuB,4BACvBC,sBAAuB,iCACvBC,iBAAkB,mBAClBC,QAAS,UACTC,SAAU,WACVC,OAAQ,kBACRC,YAAa,eACbC,YAAa,iBACbC,oBAAqB,0CACrBC,gBAAiB,kBACjBC,oBAAqB,yBACrBC,iBAAkB,mBAClBC,aAAc,eACdC,qBAAsB,uBACtBC,WAAY,wBACZC,iBAAkB,gCAClBC,OAAQ,sBACRC,eAAgB,sBAChBC,KAAM,QACNC,UAAW,oDACXC,OAAQ,SACRC,aAAc,oCACdC,mBAAoB,2BACpBC,sBAAuB,mCACvBC,kBAAmB,+BACnBC,kBAAmB,uCACnBC,WAAY,cACZC,kBAAmB,2CACnBC,mBAAoB,wBACpBC,UAAW,yBACXC,cAAe,6BACfC,aAAc,uBACdC,oBAAqB,kDACrBC,iBAAkB,gDAClBC,qBACE,qFACFC,yBAA0B,2BAC1BC,eAAgB,wBAChBC,uBAAwB,wBACxBC,eAAgB,iBAChBC,uBAAwB,iBACxBC,mBAAoB,iDACpBC,oBAAqB,+CACrBC,aAAc,kCACdC,kBAAmB,gCACnBC,kBAAmB,mDACnBC,mBAAoB,gCACpBC,aAAc,eACdC,eAAgB,iBAChBC,gCAAiC,4BACjCC,YAAa,QACb/R,QAAS,UACTgS,eAAgB,WAChBC,IAAK,OACLC,cAAe,gBACfC,iBAAkB,8BAClBC,kBAAmB,+CACnBC,gBAAiB,6BACjBC,mBAAoB,gCACpBC,UAAW,mBACXC,kBAAmB,mBACnBC,gBAAiB,UACjBC,kBAAmB,wBACnBC,mBAAoB,sBACpBC,6BACE,0EACFC,2BAA4B,6BAC5BC,eAAgB,wBAChBC,yBAA0B,mCAC1BC,WAAY,gBACZC,2CACE,0CACFC,2CACE,uCACFC,UAAW,mBACXC,mBAAoB,qCACpBC,mBAAoB,kCACpBC,sCACE,sCACFC,sCAAuC,kCACvCC,uCACE,6DACFC,qCACE,6DAEFC,iBAAkB,qDAClBC,oBAAqB,sDAErBC,aAAc,sCACdC,YAAa,cACbC,oBAAqB,0CACrBC,6BACE,sDACFC,kBAAmB,oBACnBC,2BACE,uDACFC,mBAAoB,qBACpBC,mBAAoB,qBACpBC,0BAA2B,4BAC3BC,aAAa,sBAGfhM,GAAI,CACF0D,aAAc,0BACd1M,QAAS,mBACT2M,gBAAiB,YACjBC,eAAgB,iBAChBC,kBAAmB,qDACnBC,OAAQ,mBACRC,OAAQ,UACRC,qBAAsB,+BACtB4F,IAAK,QACL3F,KAAM,WACNC,oBAAqB,0CACrBC,cAAe,gEACfC,kBAAmB,qDACnBC,UAAW,sBACXZ,SAAU,iBACVa,0BAA2B,sCAC3BC,kBAAmB,gDACnBC,QAAS,oCACTC,cAAe,gDACfC,eACE,0GACFC,sBAAuB,yCACvBC,4BACE,wDACFC,4BACE,uLACFC,4BACE,wEACFC,IAAK,MACLC,QAAS,sBACTC,wBACE,oDACFC,8BACE,2TACFC,MAAO,4BACPC,YACE,+EACFC,YACE,+FACFC,MAAO,uBACPC,YACE,wEACFC,YACE,sGACFC,MAAO,+BACPC,YACE,8FACFC,OAAQ,cACRC,mBAAoB,mBACpBC,yBACE,yKACFC,yBACE,+EACFC,YAAa,qBACbC,GAAI,MACJC,aAAc,sBACdC,cAAe,qDACfC,aAAc,6BACdtR,MAAO,WACPuR,KAAM,SACNC,MAAO,gBACPC,WAAY,+BACZC,0BACE,4HACFC,gBAAiB,iCACjBC,sBACE,yEACFC,sBAAuB,sCACvBC,iBAAkB,0BAClBC,QAAS,0BACTC,SAAU,eACVC,OAAQ,wBACRC,YAAa,qBACbC,YAAa,oBACbC,oBACE,6DACFC,gBAAiB,gCACjBC,oBAAqB,oCACrBC,iBAAkB,sBAClBC,aAAc,uBACdC,qBAAsB,+BACtBC,WAAY,2BACZC,iBAAkB,uCAClBC,OAAQ,wBACRC,eAAgB,6CAChBC,KAAM,cACNC,UACE,8EACFC,OAAQ,YACRC,aAAc,4DACdC,mBAAoB,0CACpBC,sBACE,yDACFC,kBAAmB,sCACnBE,WAAY,iBACZC,kBAAmB,wEACnBC,mBAAoB,+CACpBC,UAAW,oCACXC,cAAe,qDACfC,aAAc,kCACdC,oBACE,2EACFC,iBACE,iFACFC,qBACE,8HACFC,yBAA0B,6CAC1BC,eAAgB,6CAChBC,uBAAwB,4CACxBC,eAAgB,2DAChBC,uBAAwB,0DACxBC,mBAAoB,2DACpBC,oBACE,gEACFC,aAAc,kCACdC,kBACE,0FACFC,kBACE,oFACFC,mBACE,6DACFC,aAAc,kCACdC,eAAgB,iBAChBC,gCAAiC,sCACjCC,YAAa,qBACb/R,QAAS,kCACTgS,eAAgB,eAChBE,cAAe,mBACfC,iBAAkB,kDAClBC,kBACE,oEACFC,gBAAiB,uDACjBC,mBACE,qEACF/B,kBAAmB,oEACnBgC,UAAW,0BACXC,kBAAmB,sBACnBC,gBAAiB,aACjBC,kBAAmB,8BACnBC,mBAAoB,6BACpBE,2BAA4B,0CAC5BD,6BACE,8GACFE,eAAgB,2BAChBC,yBAAyB,6CACzBC,WAAW,+BACXC,2CACE,+CACFC,2CACE,oDACFC,UAAW,8BACXC,mBAAoB,0DACpBC,mBACE,+DACFC,sCACE,0DACFC,sCACE,6DACFC,uCACE,4GACFC,qCACE,8IAEFC,iBAAkB,qDAClBC,oBAAqB,sDAErBC,aAAc,0DACdC,YAAa,sBACbC,oBACE,gEACFC,6BACE,oFACFC,kBAAmB,0BACnBC,2BACE,8DACFC,mBAAoB,8BACpBC,mBAAoB,8BACpBC,0BAA2B,0CAC1BC,aAAa,gCCrUZC,I,OAAiB,SAAH7jB,GASb,IARL8jB,EAAS9jB,EAAT8jB,UACAC,EAAqB/jB,EAArB+jB,sBACAC,EAAWhkB,EAAXgkB,YACAC,EAAejkB,EAAfikB,gBACAC,EAAUlkB,EAAVkkB,WACAC,EAAwBnkB,EAAxBmkB,yBACAC,EAAQpkB,EAARokB,SACAC,EAAMrkB,EAANqkB,OAEMC,EAAYC,uBAAY,CAAEL,eAEhC9a,EAAoCC,oBAAS,GAAMI,EAAAC,YAAAN,EAAA,GAA5Cob,EAAU/a,EAAA,GAAEgb,EAAahb,EAAA,GAChC4J,EAA0BhK,mBAAS,MAAKiK,EAAA5J,YAAA2J,EAAA,GAAjCqR,EAAKpR,EAAA,GAAEqR,EAAQrR,EAAA,GAEtBnJ,qBAAU,WACR8Z,GACF,GAAG,IAEH,IAAMW,EAAY,SAACxJ,EAAKyJ,GAClBzJ,GACF7Y,QAAQC,MAAM4Y,GAGhBuJ,EAASE,EACX,EAEA1a,qBAAU,YACK,OAATma,QAAS,IAATA,OAAS,EAATA,EAAWJ,cAAeA,GAC5B3J,GAAgBqK,EAAWP,EAAQD,EAEvC,GAAG,CAACF,IAEJ,IAAMY,EAAiBle,YAAA,GACpBsT,GAAiB,IAGd6K,EAAqBC,uBAAY,WACrC,IAAMC,EAAkB,CACtBC,IAAK/K,GAAWD,KAGlB,OAAOE,OAAa+K,MAAMF,EAC5B,GAAG,IAQHG,EAQIC,aAAU,CACZC,cAAeR,EACfS,SAhBe,WACf,IAAQL,EAAQM,EAARN,IACRT,GAAc,GACdT,EAAY,CAAEkB,MAAKjhB,OAAQ,OAC7B,EAaEwhB,iBAAkBV,IAClBW,oBAAoB,EACpBC,iBAAiB,IAZjBH,EAAMJ,EAANI,OACAI,EAAOR,EAAPQ,QACAC,EAAMT,EAANS,OACAC,EAAaV,EAAbU,cACAC,EAAYX,EAAZW,aACAC,EAAOZ,EAAPY,QACAC,EAAeb,EAAfa,gBAaIC,GACHF,GAAWvM,GAAQ+L,EAAQV,KAAuBJ,GAAmB,KAAVA,EACxD1M,EAAYb,GAAiBc,IAEnC,OACEE,gBAACgO,KAAe,CACdC,KAAMtC,EACNuC,QAAStC,EACTuC,SAAS,QACTC,oBAAqB,CACnBjO,MAAOkM,EACLrM,gBAAA,OAAKD,UAAU,iBAAgB/O,SAAA,CAC7BgP,gBAAA,OAAAhP,SAAA,CAAK,IAAE6O,EAAU,kBACjBvF,eAAA,OAAKyF,UAAU,eAGjBF,EAAU,eAEZrJ,KAAM,SACN6X,WAAYN,GAAkB1B,EAC9BjM,aAAcwN,GAEhBU,sBAAuB,CACrBnO,MAAON,EAAU,UACjBrJ,KAAM,SACN4J,aAAcwL,GAEhBzL,MAAON,EAAU,gBACjB0O,GAAG,mBAAkBvd,SAAA,CAErBsJ,eAAA,OAAAtJ,SACEsJ,eAAA,KAAAtJ,SAAI6O,EAAU,qCAGhBG,gBAAA,OAAKD,UAAU,iBAAgB/O,SAAA,CAC7BsJ,eAAA,MAAAtJ,SAAK6O,EAAU,WACfG,gBAAA,KAAAhP,SAAA,CACG6O,EAAU,eAAe,IAACvF,eAAA,SAC1BuF,EAAU,qBAIfG,gBAAA,OAAKD,UAAU,iBAAgB/O,SAAA,CAC7BsJ,eAAA,MAAAtJ,SAAK6O,EAAU,WACfvF,eAAA,KAAAtJ,SAAI6O,EAAU,iBACdG,gBAAA,OAAKD,UAAU,UAAS/O,SAAA,CACrBub,GAASjS,eAAA,OAAKkU,IAAI,oBAAoBC,IAAKlC,KAC1CA,GAASjS,eAAA,OAAKyF,UAAU,eAE5BzF,eAAA,OAAAtJ,SACEsJ,eAAA,KAAAtJ,SAAI6O,EAAU,mBAEfkM,GACC/L,gBAAA,OAAKD,UAAU,qBAAoB/O,SAAA,CACjCsJ,eAACoU,aAAS,CAACL,YAAU,EAAChU,MAAO0R,IAC7BzR,eAAA,OAAAtJ,SACEsJ,eAAC4F,iBAAa,CACZE,aA7DiB,WAC7ByF,KAAKkG,EACP,EA4Dc5L,MAAON,EAAU,QACjBwO,WAA2B,KAAftC,EAAkB/a,SAE9BsJ,eAACqU,kBAAc,cAOzBrU,eAAA,OAAKyF,UAAU,iBAAgB/O,SAC7BgP,gBAAA,QAAMoN,SAAUQ,EAAa5c,SAAA,CAC3BsJ,eAAA,MAAAtJ,SAAK6O,EAAU,WACfvF,eAAA,KAAAtJ,SAAI6O,EAAU,iBAEdvF,eAAA,OAAKyF,UAAU,eAAc/O,SAC3BsJ,eAACoU,aAAS,CACRE,cAAe,SAACvU,GAAK,OAAKsT,EAAc5L,GAAgB1H,EAAM,EAC9DwU,YAAa,kBAAMf,EAAgB/L,IAAgB,EAAK,EACxD+M,aAAa,MACbC,UAAW,GACXC,aACEvB,EAAQ1L,KAAqB2L,EAAO3L,IAChClC,EAAU6N,EAAO3L,KACjB,KAENsM,WAAYrC,EACZllB,KAAMib,GACNwM,GAAIxM,GACJ1H,MAAOgT,EAAOtL,IACdkN,MAAOpP,EAAU,gCAO/B,GAEA6L,GAAepL,aAAe,CAC5BqL,WAAW,EACXuD,UAAW,KACXC,uBAAwB,KACxBnD,yBAA0B,MAebN,UC5MF3J,GACF,UAGEC,GAAUvT,YAAA,GACpBsT,GAAqBE,OACnBC,OACAC,SAAS,uBCRC,SAASiN,GAAelI,GACrC,QACaxa,IAAXwa,GACW,KAAXA,GACW,OAAXA,GACAA,EAAO7f,OAAS,EAChB,CACA,IAAMgoB,EAAS,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjEC,EAAMpI,EAAO7f,OACnB,GAAY,IAARioB,QAAwB5iB,IAAXwa,EACf,IADsC,IAADqI,EAAA,WAEnC,IAAIC,GAAa,EACXC,EAAavI,EAAOjiB,OAAOmC,GAEhB,MAAfqoB,GACc,KAAdA,GACc,KAAdA,GACc,KAAdA,GACc,KAAdA,GAEAJ,EAAOK,SAAQ,SAACnU,EAAKoU,GACP,MAARpU,GAAgBiU,IAClBH,EAAOM,GAASF,EAChBD,GAAa,EAEjB,GAEJ,EAjBSpoB,EAAI,EAAGA,EAAIkoB,EAAKloB,IAAGmoB,IAoB9B,OADsBF,EAAOnY,WAAWvQ,QAAQ,KAAM,GAExD,CACA,MAAO,EACT,C,WClBMipB,GAAc,SAAH/nB,GAOV,IANL8jB,EAAS9jB,EAAT8jB,UACAC,EAAqB/jB,EAArB+jB,sBACAiE,EAA0BhoB,EAA1BgoB,2BACAhE,EAAWhkB,EAAXgkB,YACAiE,EAAQjoB,EAARioB,SACAC,EAASloB,EAATkoB,UAEA9e,EAAoCC,oBAAS,GAAMI,EAAAC,YAAAN,EAAA,GAA5Cob,EAAU/a,EAAA,GAAEgb,EAAahb,EAAA,GAC1BuO,EAAYb,GAAiBc,IAE7B6M,EAAiBle,YAAA,GACpBsT,GAAqB,IAGlB6K,EAAqBC,uBAAY,WACrC,IAAMC,EAAere,YAAA,GAClBsT,GAAqBC,GAAWD,KAGnC,OAAOE,OAAa+K,MAAMF,EAC5B,GAAG,IAEH9a,qBAAU,WACR,IAAMge,EAAalP,YAAW,WAC5B8K,IACAiE,GACF,GAAG,KAEH,OAAOI,cAAcD,EACvB,GAAG,IAEH,IAMA/C,EAQIC,aAAU,CACZC,cAAeR,EACfS,SAhBe,WACf,IAAQ8C,EAAY7C,EAAZ6C,QACR5D,GAAc,GACdT,EAAY,CAAEsE,WAAYJ,EAAWK,SAAUF,GACjD,EAaE5C,iBAAkBV,IAClBW,oBAAoB,EACpBC,iBAAiB,IAZjBH,EAAMJ,EAANI,OACAI,EAAOR,EAAPQ,QACAC,EAAMT,EAANS,OACAC,EAAaV,EAAbU,cACAC,EAAYX,EAAZW,aACAC,EAAOZ,EAAPY,QACAC,EAAeb,EAAfa,gBASIC,GAAkBF,GAAWvM,GAAQ+L,EAAQV,GAEnD,OACE3M,gBAACgO,KAAe,CACdC,KAAMtC,EACNuC,QAAStC,EACTuC,SAAS,QACTC,oBAAqB,CACnBjO,MAAOkM,EACLrM,gBAAA,OAAKD,UAAU,iBAAgB/O,SAAA,CAC7BgP,gBAAA,OAAAhP,SAAA,CAAK,IAAE6O,EAAU,kBACjBvF,eAAA,OAAKyF,UAAU,eAGjBF,EAAU,eAEZrJ,KAAM,SACN6X,WAAYN,GAAkB1B,EAC9BjM,aAAcwN,GAEhBU,sBAAuB,CACrBnO,MAAON,EAAU,UACjBrJ,KAAM,SACN4J,aAAcwL,GAEhBzL,MAEMN,EADU,UAAdkQ,EACc,sBACA,gBAEhBxB,GAAG,mBAAkBvd,SAAA,CAErBgP,gBAAA,KAAAhP,SAAA,IAAAvM,OACMob,EAAU,aAAY,KAAApb,OAAI2qB,GAAeU,GAAS,MAAArrB,OAAKob,EACzD,+BAEFvF,eAAA,SACAA,eAAA,SACAA,eAAA,QAAMyF,UAAU,SAAQ/O,SAAE6O,EAAU,UAAgB,IACnDA,EAAU,mBAGbvF,eAAA,QAAM8S,SAAUQ,EAAa5c,SAC3BsJ,eAACoU,aAAS,CACRE,cAAe,SAACvU,GAAK,OAAKsT,EAAc5L,GAAoB1H,EAAM,EAClEwU,YAAa,kBAAMf,EAAgB/L,IAAoB,EAAK,EAC5D+M,aAAa,MACbC,UAAW,GACXC,aACEvB,EAAQ1L,KAAyB2L,EAAO3L,IACpClC,EAAU6N,EAAO3L,KACjB,KAENjb,KAAMib,GACNwM,GAAIxM,GACJ1H,MAAOgT,EAAOtL,IACdkN,MAAOpP,EAAU,2BAK3B,EAEA+P,GAAYtP,aAAe,CACzBqL,WAAW,GAYEiE,UC9IF7N,GACE,cAGFC,GAAUvT,YAAA,GACpBsT,GAAyBE,OACvBC,OACAmO,IAAI,GAAI,qBACRC,QAVe,wBAUM,qBACrBnO,SAAS,sBCARoO,I,OAAiB,SAAH1oB,GAIb,IAHL8jB,EAAS9jB,EAAT8jB,UACAC,EAAqB/jB,EAArB+jB,sBACA4E,EAAe3oB,EAAf2oB,gBAEAvf,EAAoCC,oBAAS,GAAMI,EAAAC,YAAAN,EAAA,GAA5Cob,EAAU/a,EAAA,GAAEgb,EAAahb,EAAA,GAC1BuO,EAAYb,GAAiBc,IAE7B6M,EAAiBle,YAAA,GACpBsT,GAAyB,IAGtB6K,EAAqBC,uBAAY,WACrC,IAAMC,EAAere,YAAA,GAClBsT,GAAyBC,GAAWD,KAGvC,OAAOE,OAAa+K,MAAMF,EAC5B,GAAG,IAQHG,EAQIC,aAAU,CACZC,cAAeR,EACfS,SAhBe,WACf,IAAQqD,EAAgBpD,EAAhBoD,YACRnE,GAAc,GACdkE,EAAgBC,EAAY9pB,QAAQ,aAAc,IACpD,EAaE2mB,iBAAkBV,IAClBW,oBAAoB,EACpBC,iBAAiB,IAZjBH,EAAMJ,EAANI,OACAI,EAAOR,EAAPQ,QACAC,EAAMT,EAANS,OACAC,EAAaV,EAAbU,cACAC,EAAYX,EAAZW,aACAC,EAAOZ,EAAPY,QACAC,EAAeb,EAAfa,gBASIC,GAAkBF,GAAWvM,GAAQ+L,EAAQV,GAEnD,OACErS,eAAC0T,KAAe,CACdC,KAAMtC,EACNuC,QAAStC,EACTuC,SAAS,QACTC,oBAAqB,CACnBjO,MAAOkM,EACLrM,gBAAA,OAAKD,UAAU,iBAAgB/O,SAAA,CAC7BgP,gBAAA,OAAAhP,SAAA,CAAK,IAAE6O,EAAU,aACjBvF,eAAA,OAAKyF,UAAU,eAGjBF,EAAU,UAEZrJ,KAAM,SACN6X,WAAYN,GAAkB1B,EAC9BjM,aAAcwN,GAEhBU,sBAAuB,CACrBnO,MAAON,EAAU,UACjBrJ,KAAM,SACN4J,aAAcwL,GAEhBzL,MAAON,EAAU,uBACjB0O,GAAG,4BAA2Bvd,SAE9BgP,gBAAA,QAAMoN,SAAUQ,EAAa5c,SAAA,CAC3BsJ,eAAA,KAAAtJ,SAAI6O,EAAU,kCACdvF,eAACoU,aAAS,CACRO,MAAOpP,EAAU,uBACjB6Q,YAAa7Q,EAAU,qBACvB+O,cAAe,SAACvU,GAAK,OACnBsT,EAAc5L,GAAwB1H,EAAM,EAE9CwU,YAAa,kBAAMf,EAAgB/L,IAAwB,EAAK,EAChEgN,UAAW,GACXC,aACEvB,EAAQ1L,KAA6B2L,EAAO3L,IACxClC,EAAU6N,EAAO3L,KACjB,KAENjb,KAAMib,GACNwM,GAAIxM,GACJ1H,MAAOgT,EAAOtL,UAKxB,GAEAwO,GAAejQ,aAAe,CAC5BqL,WAAW,GASE4E,UC3FAI,OAvBf,SAA8BC,GAoB5B,OAnB6B,SAAUC,GACrC,IAAQ5hB,EAAa0C,cAAb1C,SAUR,OACEqL,eAACsW,EAAS9jB,wBAAA,GACJ+jB,GAAK,IACTC,qBAAsB,kBAVxB7hB,EAAS8hB,cAActoB,EAAYI,YAAYxF,gBACxC,IAS2C,EAChD2tB,sBAAuB,kBAPzB/hB,EAAS8hB,cAActoB,EAAYI,YAAYG,0BACxC,IAM+C,IAG1D,CAEF,EClBMioB,GAAc,CAClB,EAAG,UACH,EAAG,WACH,EAAG,QACH,EAAG,QACH,EAAG,MACH,EAAG,OACH,EAAG,OACH,EAAG,SACH,EAAG,YACH,EAAG,UACH,GAAI,WACJ,GAAI,YAEAC,GAAY,CAChB,EAAG,SACH,EAAG,SACH,EAAG,UACH,EAAG,YACH,EAAG,WACH,EAAG,SACH,EAAG,YAGCC,GAAgB,CACpBC,QAAO,SAAC7V,GACN,GAAY,OAARA,QAAwB7O,IAAR6O,GAA6B,KAARA,EAAY,CACnD,IACM8V,EADQ,QAAQ9sB,KAAKgX,GACN,IAAI0F,KAAKqQ,OAAOC,SAAShW,EAAK,KAAO,IAAI0F,KAAK1F,GACnE,GAA4B,iBAAxB8V,EAAKG,eAAmC,MAAO,eACnD,IAAMC,EAAQJ,EAAKK,WACbC,EAAMN,EAAKD,UACXQ,EAAOP,EAAKQ,cAClB,MAAM,GAANptB,OAAUwsB,GAAYQ,GAAOva,WAAU,KAAAzS,OAAIktB,EAAG,MAAAltB,OAAKmtB,EACrD,CACA,MAAO,cACT,EACAE,oBAAmB,SAACvW,GAClB,GAAIA,EAAK,CACP,IAAM8V,EAAO,IAAIpQ,KAAK1F,GACtB,MAA4B,iBAAxB8V,EAAKG,eAA0C,eAC5CO,KAAKC,OAAOX,EAAO,IAAIpQ,MAAM,MACtC,CACA,MAAO,cACT,EACAgR,WAAU,SAACC,EAAUC,GACnB,IAAMC,EAAQ,IAAInR,KAAKiR,GACjBG,EAAQ,IAAIpR,KAAKkR,GACvB,MAC2B,iBAAzBC,EAAMZ,gBACmB,iBAAzBa,EAAMb,eAEC,eACFY,EAAMjR,WAAakR,EAAMlR,UAAYiR,EAAQC,CACtD,EACAC,WAAU,SAACJ,EAAUC,GACnB,IAAMC,EAAQ,IAAInR,KAAKiR,GACjBG,EAAQ,IAAIpR,KAAKkR,GACvB,MAC2B,iBAAzBC,EAAMZ,gBACmB,iBAAzBa,EAAMb,eAEC,eACFY,EAAMjR,WAAakR,EAAMlR,UAAYkR,EAAQD,CACtD,EACAG,aAAY,SAAChX,GACX,IACMoW,EADO,IAAI1Q,KAAK1F,GACLiX,SACjB,OAAOtB,GAAUS,EACnB,EACAc,eAAc,SAAClX,GACb,IACMkW,EADO,IAAIxQ,KAAK1F,GACHmW,WACnB,OAAOT,GAAYQ,EACrB,EACAiB,eAAc,SAACnX,GACb,IAAM6W,EAAQ,IAAInR,KAAK1F,GAEvB,OADa,IAAI0F,MAAOE,UAAYiR,EAAMjR,SAE5C,EAMAA,QAAO,SAAC5F,GAAyB,IAApBoX,EAAUnnB,UAAAnE,OAAA,QAAAqF,IAAAlB,UAAA,GAAAA,UAAA,GAAG,KAClB6lB,EAAO,IAAIpQ,KAAK1F,GAChBqX,EAAYvB,EAAKwB,WACnBC,EAAUzB,EAAK0B,aACfC,EAAU3B,EAAK4B,aACfC,EAAQN,EACRO,EAAO,GAeX,MAbmB,OAAfR,IACFO,EAAQN,EAAY,GAAKA,EAAY,GAAKA,EAC1CO,EAAOP,EAAY,GAAK,KAAO,MAG7BE,GAAW,KACbA,EAAO,IAAAruB,OAAOquB,IAGZE,GAAW,KACbA,EAAO,IAAAvuB,OAAOuuB,IAGT,GAAAvuB,OAAGyuB,EAAK,KAAAzuB,OAAIquB,EAAO,KAAAruB,OAAIuuB,EAAO,KAAAvuB,OACpB,OAAfkuB,EAAsBQ,EAAO,IAC5BjR,MACL,EACAkR,gBAAe,SAACC,GACd,IAAMhC,EAAO,IAAIpQ,KAEjB,OADAoQ,EAAKjQ,QAAQiQ,EAAKlQ,UAAYkS,GACvBhC,EAAKhQ,aACd,GAGa8P,MC3HTmC,I,OAAc,SAACC,GACnBA,EAAEC,iBAEFD,EAAEE,aAAc,CAClB,GAUeC,OARf,SAA2BC,GACD,IAADjsB,EAEhBksB,EAFHD,EACI,QAANjsB,EAAAzD,cAAM,IAAAyD,GAANA,EAAQmsB,iBAAiB,eAAgBP,IAAY,GAE/C,QAANM,EAAA3vB,cAAM,IAAA2vB,GAANA,EAAQE,oBAAoB,eAAgBR,IAAa,EAE7D,ECUMS,GAAW,SAAHlsB,GAiBP,IAADzD,EAAA4vB,EAhBJ7E,EAAsBtnB,EAAtBsnB,uBACAD,EAASrnB,EAATqnB,UACA+E,EAAuBpsB,EAAvBosB,wBACAC,EAAoBrsB,EAApBqsB,qBACAC,EAAoBtsB,EAApBssB,qBACAC,EAA2BvsB,EAA3BusB,4BACAC,EAAUxsB,EAAVwsB,WACAvD,EAAoBjpB,EAApBipB,qBACAE,EAAqBnpB,EAArBmpB,sBACAnV,EAAQhU,EAARgU,SACAmQ,EAAwBnkB,EAAxBmkB,yBACAC,EAAQpkB,EAARokB,SAAQqI,EAAAzsB,EACR0sB,oBAAY,IAAAD,GAAOA,EACnBzX,EAAYhV,EAAZgV,aACA2X,EAAW3sB,EAAX2sB,YACAC,EAAW5sB,EAAX4sB,YAGAxjB,GADU7M,EAAsB,QAAtB4vB,EAAG/vB,OAAOI,oBAAY,IAAA2vB,OAAA,EAAnBA,EAAqB1vB,QAAQ,QACU4M,oBAAS,IAAMI,EAAAC,YAAAN,EAAA,GAA5DyjB,EAAkBpjB,EAAA,GAAEqjB,EAAqBrjB,EAAA,GAChD4J,EAAoChK,mBAAS,IAAGiK,EAAA5J,YAAA2J,EAAA,GAAzC0Z,EAAUzZ,EAAA,GAAE0Z,EAAa1Z,EAAA,GAChCG,EACEpK,oBAAS,GAAMsK,EAAAjK,YAAA+J,EAAA,GADVwZ,EAAwBtZ,EAAA,GAAEuZ,EAA2BvZ,EAAA,GAE5DwZ,EAA8B9jB,oBAAS,GAAM+jB,EAAA1jB,YAAAyjB,EAAA,GAAtCE,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAC1BG,EAAgClkB,mBAAS,IAAGmkB,EAAA9jB,YAAA6jB,EAAA,GAArCtF,EAAQuF,EAAA,GAAEC,EAAWD,EAAA,GACtBxV,EAAYb,GAAiBc,IAE7B8L,EAAwB,WAC5B+I,GAAsB,GACtBQ,GAAW,GACXJ,GAA4B,GAC5BO,EAAY,IACZ5B,IAAkB,EACpB,EAEA1hB,qBAAU,WACJmd,GACFvD,GAEJ,GAAG,IAEH,IAAMO,EAAYC,uBAAY,CAC5B+C,yBACAgF,uBACAC,8BACAF,uBACAG,eAGFriB,qBAAU,WAEgC,QAA7B,OAATma,QAAS,IAATA,OAAS,EAATA,EAAWgD,yBACgB,OAA3BA,GACe,KAAfyF,IAEAD,GAAsB,GACtBI,GAA4B,GAC5BQ,2BAAgB,CACdC,QAASrG,EAAyB,UAAY,SAC9CnlB,QAASmlB,EAAsB,GAAA1qB,OACxBM,EAAsB6vB,GAAW,KAAAnwB,OAClCmwB,IAAe/U,EAAU,eACrBA,EAAU,kBACVA,EAAU,2BAEF,MAAdqP,EACArP,EAAU,yBAAwB,GAAApb,OAEhCmwB,IAAe/U,EAAU,eACrBA,EAAU,kBACVA,EAAU,0BAAyB,KAAApb,OACrCmwB,EAAU,QAKgB,QAA3B,OAATzI,QAAS,IAATA,OAAS,EAATA,EAAWgI,uBACc,OAAzBA,IAEAgB,GAAW,GACPhB,EACFY,EAA4BZ,IAE5BY,GAA4B,GAC5BO,EAAY,IAEZC,2BAAgB,CACdC,QAAS,SACTxrB,QAAS6V,EAAU,0BAMoB,QAAlC,OAATsM,QAAS,IAATA,OAAS,EAATA,EAAWiI,8BACqB,OAAhCA,GACe,KAAfQ,IAEAG,GAA4B,GAE5BQ,2BAAgB,CACdC,QAASpB,EAA8B,UAAY,SACnDpqB,QAASoqB,EAA2B,GAAA3vB,OAC7BM,EAAsB6vB,GAAW,KAAAnwB,OAAIob,EAAU,mBAAiB,GAAApb,OAChEob,EAAU,kBAAiB,KAAApb,OAAImwB,EAAU,QAKxB,QAAjB,OAATzI,QAAS,IAATA,OAAS,EAATA,EAAWkI,aACI,OAAfA,GACe,KAAfO,GAEAW,2BAAgB,CACdC,QAASnB,EAAa,UAAY,SAClCrqB,QAASqqB,EAAU,GAAA5vB,OACZM,EAAsB6vB,GAAW,KAAAnwB,OAAIob,EAAU,mBAAiB,GAAApb,OAChEob,EAAU,kBAAiB,KAAApb,OAAImwB,EAAU,OAKd,QAA3B,OAATzI,QAAS,IAATA,OAAS,EAATA,EAAW+H,uBACc,OAAzBA,GACe,KAAfU,GAEAW,2BAAgB,CACdC,QAAStB,EAAuB,UAAY,SAC5ClqB,QACI6V,EADKqU,EACK,sBACA,qBAGpB,GAAG,CACD/E,EACAD,EACA+E,EACAC,EACAC,EACAC,EACAC,IAGF,IAyBMoB,EAAe,WAAoB,IAAnB3pB,EAAMN,UAAAnE,OAAA,QAAAqF,IAAAlB,UAAA,GAAAA,UAAA,GAAG,KACzBM,IACF+P,EAAS,CACPrF,KAAMnI,GACNxC,KAAM,CAAEskB,WAAYrkB,KAEtB+oB,EAAchV,EAAU/T,IAE5B,EASM4pB,EAAkB,WACtBb,EAAchV,EAAU,UACxB6T,IAAkB,GAClByB,GAAW,EACb,EAkBAQ,EAOInB,EANF9c,iBAAS,IAAAie,EAAG,GAAEA,EAAAC,EAMZpB,EALF/c,iBAAS,IAAAme,EAAG,GAAEA,EAAAC,EAKZrB,EAJF5f,YAAG,IAAAihB,EAAG,CAAC,EAACA,EACRje,GAGE4c,EAHF5c,eACAC,GAEE2c,EAFF3c,WACAC,GACE0c,EADF1c,sBAEIge,GAAsB3E,GAAcC,QAAQxZ,IAC5Cme,GAA4B5E,GAAcC,QAAQtZ,IAIxDke,IAHuB7E,GAAcC,QAAQvZ,IAC5BsZ,GAAcW,oBAAoBja,IAM/CjD,GAHFqhB,sBAAY,IAAAD,GAAG,QAAOA,GAAAE,GAGpBthB,GAFFuhB,sBAAa,IAAAD,IAAQA,GAAAE,GAEnBxhB,GADFyhB,qBAAY,IAAAD,IAAQA,GAGtBE,GAAoCzZ,EAA5BqP,eAAM,IAAAoK,GAAG,GAAEA,GAAEvK,GAAelP,EAAfkP,WAErB,OACE/L,gBAAA,OAAKD,UAAU,qBAAoB/O,SAAA,CACjCgP,gBAAA,OAAKuO,GAAIkG,EAAa1U,UAAU,6BAA4B/O,SAAA,CAC1DsJ,eAAA,OAAKiU,GAAG,QAAQ,iBAAgB1O,EAAU,YAAY7O,SACpDsJ,eAACic,KAAW,CAACpW,MAAON,EAAU,YAAa2W,QAAM,EAAAxlB,SAC/CgP,gBAAA,OAAKD,UAAU,gBAAe/O,SAAA,CAC5BgP,gBAAA,OAAKD,UAAU,sBAAqB/O,SAAA,CAClCsJ,eAAA,OAAKyF,UAAU,gBAAe/O,SAAE6O,EAAU,cAC1CvF,eAAA,OAAKyF,UAAU,gBAAe/O,SAC5BsJ,eAAC4F,iBAAa,CACZC,MAAON,EAAU,UACjB4W,MAAO,CAAEC,SAAU,SACnBtW,aAAc0Q,EACdzC,YAAY,SAIlBrO,gBAAA,OAAKD,UAAU,WAAU/O,SAAA,CACvBgP,gBAAA,OAAKD,UAAU,gBAAe/O,SAAA,CAC3B6O,EAAU,eAAe,eAE5BvF,eAAA,OAAKyF,UAAU,gBAAe/O,SACH,iBAAxB8kB,GACGA,GACA,eA6Bdxb,eAAA,OAAKiU,GAAG,QAAQ,iBAAgB1O,EAAU,gBAAgB7O,SACxDsJ,eAACic,KAAW,CAACpW,MAAON,EAAU,sBAAuB2W,QAAM,EAAAxlB,SACzDgP,gBAAA,OAAKD,UAAU,gBAAe/O,SAAA,CAC5BgP,gBAAA,OAAKD,UAAU,sBAAqB/O,SAAA,CAClCsJ,eAAA,OAAKyF,UAAU,gBAAe/O,SAAE6O,EAAU,wBAC1CvF,eAAA,OAAKyF,UAAU,gBAAe/O,SAC5BsJ,eAAC4F,iBAAa,CACZC,MAAON,EAAU,6BACjB4W,MAAO,CAAEC,SAAU,SACnBtW,aAAc4Q,EACd3C,YAAY,SAIlBrO,gBAAA,OAAKD,UAAU,WAAU/O,SAAA,CACvBgP,gBAAA,OAAKD,UAAU,gBAAe/O,SAAA,CAC3B6O,EAAU,eAAe,eAE5BvF,eAAA,OAAKyF,UAAU,gBAAe/O,SACG,iBAA9B+kB,GACGA,GACA,eAMbxB,GACCja,eAAA,OACEiU,GAAG,QACH,iBAAgB1O,EAAU,6BAA6B7O,SAEvDsJ,eAACic,KAAW,CACVpW,MACEH,gBAAA,OAAKD,UAAU,gCAA+B/O,SAAA,CAC5CsJ,eAAA,OAAAtJ,SAAM6O,EAAU,+BAChBvF,eAACqc,KAAO,CACN3sB,QAAS6V,EAAU,kBACnB+W,aAAc,CACZC,MAAO,QAGP1I,SAAU,WACV2I,WAAY,UACZ9lB,SAEFsJ,eAACyc,kBAAc,CAACF,MAAO,GAAIG,OAAQ,UAIzCR,QAAM,EAAAxlB,SAENgP,gBAAA,OAAKD,UAAU,cAAa/O,SAAA,CAC1BgP,gBAAA,OAAKD,UAAU,mBAAkB/O,SAAA,CAC/BsJ,eAAC2c,eAAW,CACVC,UAA4B,UAAjBjB,GACXrH,cAAe,kBAAM6G,EAAa,QAAQ,EAC1C3uB,KAAK,QACLuT,MAAM,UAGR2F,gBAAA,OAAKD,UAAU,gBAAe/O,SAAA,CAC5BsJ,eAAA,OAAKyF,UAAU,QAAO/O,SAAE6O,EAAU,WAAgB,IAClDvF,eAAA,OAAKyF,UAAU,eAAc/O,SAAE0G,UAIlC2e,IACCrW,gBAAA,OAAKD,UAAU,mBAAkB/O,SAAA,CAC/BsJ,eAAC2c,eAAW,CACVC,UAA4B,SAAjBjB,GACXrH,cAAe,kBAAM6G,EAAa,OAAO,EACzC3uB,KAAK,OACLuT,MAAM,SAGR2F,gBAAA,OAAKD,UAAU,gBAAe/O,SAAA,CAC5BsJ,eAAA,OAAKyF,UAAU,QAAO/O,SACnB6O,EAAU,2BAEbvF,eAAC4F,iBAAa,CACZC,MAAON,EAAU,cACjBO,aAzLE,WACtBvE,EAAS,CACPrF,KAAMnI,GACNxC,KAAM,CAAC,GAEX,WA0LgBwqB,IACArW,gBAAA,OAAKD,UAAU,mBAAkB/O,SAAA,CAC/BsJ,eAAC2c,eAAW,CACVC,UAA4B,SAAjBjB,GACX5H,YAAU,EACVvnB,KAAK,OACLuT,MAAM,SAGR2F,gBAAA,OAAKD,UAAU,gBAAe/O,SAAA,CAC5BgP,gBAAA,OAAKD,UAAU,QAAO/O,SAAA,CACpBsJ,eAAA,OAAAtJ,SAAM6O,EAAU,2BAEhBvF,eAACqc,KAAO,CACN3sB,QAAS6V,EACP,wCAEF+W,aAAc,CACZC,MAAO,QAGP1I,SAAU,WACV2I,WAAY,UACZ9lB,SAEFsJ,eAACyc,kBAAc,CAACF,MAAO,GAAIG,OAAQ,UAGvC1c,eAAC4F,iBAAa,CACZC,MAAON,EAAU,SACjBO,aAzPK,WACzBuU,GAAsB,GACtBjB,IAAkB,GAClBmB,EAAchV,EAAU,iBAC1B,UA2PesW,IACCnW,gBAAA,OAAKD,UAAU,mBAAkB/O,SAAA,CAC/BsJ,eAAC2c,eAAW,CACVC,UAA4B,UAAjBjB,GACXrH,cAAe,kBAAM6G,EAAa,QAAQ,EAC1C3uB,KAAK,QACLuT,MAAM,UAGR2F,gBAAA,OAAKD,UAAU,gBAAe/O,SAAA,CAC5BsJ,eAAA,OAAKyF,UAAU,QAAO/O,SAAE6O,EAAU,kBACjCpI,GAA2B,KAAdA,GACZ6C,eAAA,OAAAtJ,SAAMoe,GAAe3X,KAEvB6C,eAAC4F,iBAAa,CACZC,MAAON,EAAU,QACjBO,aAAcsV,WAMpBS,IACAnW,gBAAA,OAAKD,UAAU,mBAAkB/O,SAAA,CAC/BsJ,eAAC2c,eAAW,CACVC,UAA4B,UAAjBjB,GACX5H,YAAU,EACVvnB,KAAK,QACLuT,MAAM,UAER2F,gBAAA,OAAKD,UAAU,gBAAe/O,SAAA,CAC5BgP,gBAAA,OAAKD,UAAU,QAAO/O,SAAA,CACpBgP,gBAAA,OAAAhP,SAAA,CAAK,IAAE6O,EAAU,mBACjBvF,eAACqc,KAAO,CACN3sB,QAAS6V,EACP,0CAEF+W,aAAc,CACZC,MAAO,QAGP1I,SAAU,WACV2I,WAAY,UACZ9lB,SAEFsJ,eAACyc,kBAAc,CAACF,MAAO,GAAIG,OAAQ,UAGtCvf,GAA2B,KAAdA,GACZ6C,eAAA,OAAAtJ,SAAMoe,GAAe3X,KAEvB6C,eAAC4F,iBAAa,CACZC,MAAON,EAAU,SACjBO,aAAcsV,oBAW/BhB,GACCpa,eAACoR,GAAc,CACbC,UAAW+I,EACX9I,sBAAuBA,EACvBE,gBA7TgB,WACtBjQ,EAAS,CAAErF,KAAMnI,GAA0BxC,KAAM,CAAC,GACpD,EA4TQqgB,OAAQA,GACRH,WAAYA,GACZC,yBAA0BA,EAC1BH,YA7TY,SAAH/jB,GAAyB,IAAnBilB,EAAGjlB,EAAHilB,IAAWjlB,EAANgE,OAC1B+P,EAAS,CACPrF,KAAMnI,GACNxC,KAAM,CAAEsrB,SAAUpK,GAClBzU,gBAAiBmd,GAErB,EAwTQtG,uBAAwBA,EACxBD,UAAWA,EACXjD,SAAUA,IAIbiJ,GACC5a,eAACiW,GAAc,CACb5E,UAAWuJ,EACXtJ,sBAAuBA,EACvB4E,gBAjSgB,SAAC4G,GACvBvb,EAAS,CACPrF,KAAMnI,GACNxC,KAAM,CAAEmd,aAAcoO,EAAOtb,MAAO,YAAaqU,WAAY,WAE/DmF,EAAY8B,EACd,IA+RKtC,GACCxa,eAACsV,GAAW,CACVjE,UAAWmJ,EACXlJ,sBAAuBA,EACvBkE,SAAUA,EACVC,UAAU,QACVlE,YAnTmB,SAAChe,GAC1BgO,EAAS,CACPrF,KAAMnI,GACNxC,KAAIiB,YAAA,GAAOe,GACXyK,gBAAiBmd,GAErB,EA8SQtG,uBAAwBA,EACxBU,2BArW2B,WACjC0F,2BAAgB,CACdC,QAAS,SACTxrB,QAAS6V,EAAU,uBAEvB,MAqWF,EAEAkU,GAASzT,aAAe,CACtB6O,uBAAwB,KACxBkI,qBAAsB,KACtBlD,qBAAsB,KACtBD,qBAAsB,KACtBhF,UAAW,KACXlD,yBAA0B,KAC1BiI,wBAAyB,MA2BZtD,I,GAAAA,MAAqBoD,I,wDCxhBpC,SAAS3E,GAAelI,GACtB,QACaxa,IAAXwa,GACW,KAAXA,GACW,OAAXA,GACAA,EAAO7f,OAAS,EAChB,CACA,IAAMgoB,EAAS,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjEC,EAAMpI,EAAO7f,OACnB,GAAY,IAARioB,QAAwB5iB,IAAXwa,EACf,IADsC,IAADqI,EAAA,WAEnC,IAAIC,GAAa,EACXC,EAAavI,EAAOjiB,OAAOmC,GAEhB,MAAfqoB,GACc,KAAdA,GACc,KAAdA,GACc,KAAdA,GACc,KAAdA,GAEAJ,EAAOK,SAAQ,SAACnU,EAAKoU,GACP,MAARpU,GAAgBiU,IAClBH,EAAOM,GAASF,EAChBD,GAAa,EAEjB,GAEJ,EAjBSpoB,EAAI,EAAGA,EAAIkoB,EAAKloB,IAAGmoB,IAoB9B,OADsBF,EAAOnY,WAAWvQ,QAAQ,KAAM,GAExD,CACA,MAAO,EACT,CC1DA,IAEM2wB,GAAe,gBAERvV,GACA,YADAA,GAED,WAFCA,GAGE,cAHFA,GAIK,iBAGLC,IAAUuV,GAAA,GAAA9oB,YAAA8oB,GACpBxV,GAAuBE,OACrBC,OACAC,SAAS,oBACTmO,QAAQgH,GAAc,sBAAoB7oB,YAAA8oB,GAC5CxV,GAAsBE,OACpBC,OACAC,SAAS,mBACTmO,QAAQgH,GAAc,sBAAoB7oB,YAAA8oB,GAC5CxV,GAAyBE,OACvBC,OACAmO,IAAI,GAAI,qBACRC,QAvBe,wBAuBM,sBAAoB7hB,YAAA8oB,GAC3CxV,GAA4BE,OAC1BC,OACAoO,QAzBwB,QAyBM,cAAYiH,ICdzCC,I,OAAuB,SAAH3vB,GAQnB,IAAD4vB,EAAAC,EAPJrgB,EAASxP,EAATwP,UACAC,EAAQzP,EAARyP,SACAmZ,EAAW5oB,EAAX4oB,YACAkH,EAAc9vB,EAAd8vB,eACAC,EAAiB/vB,EAAjB+vB,kBACAjM,EAAS9jB,EAAT8jB,UACAC,EAAqB/jB,EAArB+jB,sBAEA3a,EAAoCC,oBAAS,GAAMI,EAAAC,YAAAN,EAAA,GAA5Cob,EAAU/a,EAAA,GAAEgb,EAAahb,EAAA,GAC1BuO,EAAYb,GAAiBc,IAE7B6M,GAAiB+K,EAAA,GAAAjpB,YAAAipB,EACpB3V,GAAgC,OAAT1K,QAAS,IAATA,IAAa,IAAE5I,YAAAipB,EACtC3V,GAA8B,OAARzK,QAAQ,IAARA,IAAY,IAAE7I,YAAAipB,EACpC3V,GAAoD,QAA9B0V,EAAGrI,GAAeqB,UAAY,IAAAgH,IAAI,IAAEhpB,YAAAipB,EAC1D3V,GAA0C,OAAd4V,QAAc,IAAdA,IAAkB,IAAED,GAG7C9K,EAAqBC,uBAAY,WAAO,IAADgL,EACrC/K,GAAe+K,EAAA,GAAAppB,YAAAopB,EAClB9V,GAAuBC,GAAWD,KAAqBtT,YAAAopB,EACvD9V,GAAsBC,GAAWD,KAAoBtT,YAAAopB,EACrD9V,GAAyBC,GAAWD,KAAuBtT,YAAAopB,EAC3D9V,GAA4BC,GAAWD,KAA0B8V,GAGpE,OAAO5V,OAAa+K,MAAMF,EAC5B,GAAG,IAcHG,EAQIC,aAAU,CACZC,cAAeR,EACfS,SAtBe,WACf,IAAQ/V,EAAqDgW,EAArDhW,UAAWC,EAA0C+V,EAA1C/V,SAAUmZ,EAAgCpD,EAAhCoD,YACvBqH,EAAiB,CACrB5iB,kBAF2DmY,EAAnBsK,eAGxC3jB,WAAYqD,EACZnD,UAAWoD,EACXtC,cAAeyb,EAAY9pB,QAAQ,aAAc,KAEnDixB,EAAkBE,GAClBxL,GAAc,EAChB,EAaEgB,iBAAkBV,IAClBW,oBAAoB,EACpBC,iBAAiB,IAZjBH,EAAMJ,EAANI,OACAI,EAAOR,EAAPQ,QACAC,EAAMT,EAANS,OACAC,EAAaV,EAAbU,cACAC,EAAYX,EAAZW,aACAC,EAAOZ,EAAPY,QACAC,EAAeb,EAAfa,gBASIC,GAAkBF,GAAWvM,GAAQ+L,EAAQV,GAE7CoL,EAAY,CAChB,CACE5Y,IAAK4C,GACL2O,YAAa,WACbvQ,MAAO,mBAET,CACEhB,IAAK4C,GACL2O,YAAa,YACbvQ,MAAO,kBAET,CACEhB,IAAK4C,GACL2O,YAAa,oBACbvQ,MAAO,uBACP4O,UAAW,IAEb,CACE5P,IAAK4C,GACL5B,MAAO,MACP4O,UAAW,EACXV,WAA+C,KAAnChB,EAAOtL,MAIvB,OACEzH,eAAC0T,KAAe,CACdC,KAAMtC,EACNuC,QAAStC,EACTuC,SAAS,QACTC,oBAAqB,CACnBjO,MAAOkM,EACLrM,gBAAA,OAAKD,UAAU,iBAAgB/O,SAAA,CAC7BgP,gBAAA,OAAAhP,SAAA,CAAK,IAAE6O,EAAU,aACjBvF,eAAA,OAAKyF,UAAU,eAGjBF,EAAU,UAEZrJ,KAAM,SACN6X,WAAYN,EACZ3N,aAAcwN,GAEhBU,sBAAuB,CACrBnO,MAAON,EAAU,UACjBrJ,KAAM,SACN4J,aAAcwL,GAEhBzL,MAAON,EAAU,gBACjB0O,GAAG,0BAAyBvd,SAE5BsJ,eAAA,QAAM8S,SAAUQ,EAAa5c,SAC1B+mB,EAAUxW,KAAI,SAAAzZ,GAAA,IAAGqY,EAAKrY,EAALqY,MAAOhB,EAAGrX,EAAHqX,IAAKuR,EAAW5oB,EAAX4oB,YAAa3B,EAASjnB,EAATinB,UAAWV,EAAUvmB,EAAVumB,WAAU,OAC9D/T,eAAA,OAAeyF,UAAU,YAAW/O,SAClCsJ,eAACoU,aAAS,CACR5nB,KAAMqY,EACNoP,GAAIpP,EACJ9E,MAAOgT,EAAOlO,GACdyP,cAAe,SAACvU,GAAK,OAAKsT,EAAcxO,EAAK9E,EAAM,EACnDwU,YAAa,kBAAMf,EAAgB3O,GAAK,EAAK,EAC7CuR,YACyB,kBAAhBA,EACH7Q,EAAU6Q,QACVhkB,EAENsiB,aACEvB,EAAQtO,IAAUuO,EAAOvO,GAAOU,EAAU6N,EAAOvO,IAAQ,KAE3D8P,MAAOpP,EAAUM,GACjB4O,UAAWA,EACXV,aAAcA,KAjBRlP,EAmBJ,OAKhB,GAEAqY,GAAqBlX,aAAe,CAClCqL,WAAW,EACXuD,UAAW,MAcEsI,UCtKTQ,GAAa,SAAHnwB,GAAA,IAAMgvB,EAAKhvB,EAALgvB,MAAOG,EAAMnvB,EAANmvB,OAAQlU,EAAKjb,EAALib,MAAK,OACxC9C,gBAAA,OACE6W,MAAOA,EACPG,OAAQA,EACRiB,QAAQ,YACRC,KAAK,OACLC,MAAM,6BAA4BnnB,SAAA,CAElCgP,gBAAA,KAAG,YAAU,uBAAsBhP,SAAA,CACjCsJ,eAAA,QACE,YAAU,UACV,YAAU,UACV8d,EAAE,6qCACFF,KAAMpV,IAERxI,eAAA,QACE,YAAU,UACV,YAAU,UACV8d,EAAE,gPACFF,KAAMpV,IAERxI,eAAA,QACE,YAAU,UACV,YAAU,UACV8d,EAAE,kPACFF,KAAMpV,IAERxI,eAAA,QACE,YAAU,UACV,YAAU,UACV8d,EAAE,iPACFF,KAAMpV,OAGVxI,eAAA,QAAAtJ,SACEsJ,eAAA,YAAUiU,GAAG,iBAAgBvd,SAC3BsJ,eAAA,QAAMuc,MAAM,KAAKG,OAAO,KAAKkB,KAAK,gBAGlC,EASRF,GAAW1X,aAAe,CACxBuW,MAAO,KACPG,OAAQ,KACRlU,MAAO,WAGMkV,UCzCTK,I,OAAW,SAAAC,GAAAC,aAAAF,EAAAC,GAAA,IAAAE,EAAAC,aAAAJ,GAGf,SAAAA,EAAYxH,GAAQ,IAAD6H,EASf,OATeC,aAAA,KAAAN,IACjBK,EAAAF,EAAAI,KAAA,KAAM/H,IAHRhR,UAAYb,GAAiBc,IAAS4Y,EActCG,mBAAqB,SAAC1M,GACpB,IAAA2M,EAKIJ,EAAK7H,MAJP1B,EAAsB2J,EAAtB3J,uBACA4J,EAA2BD,EAA3BC,4BACAC,EAAcF,EAAdE,eACAC,EAAaH,EAAbG,cAGMrE,EAAe8D,EAAKQ,MAApBtE,WAG+B,OAArCzI,EAAUgD,wBACiB,OAA3BA,IAEAuJ,EAAKS,SAAS,CACZC,6BAA6B,IAE/BV,EAAK9M,yBAIqC,OAA1CO,EAAU4M,6BACsB,OAAhCA,GACe,KAAfnE,IAEAW,2BAAgB,CACdC,QAASuD,EAA8B,UAAY,SACnD/uB,QAAS+uB,EAA2B,GAAAt0B,OAC7BM,EAAsB6vB,GAAW,KAAAnwB,OAAIi0B,EAAK7Y,UAAU,2BACzC,MAAdqP,UACAwJ,EAAK7Y,UAAU,yBAAwB,GAAApb,OACpCi0B,EAAK7Y,UAAU,0BAAyB,KAAApb,OAAImwB,EAAU,OAE/D8D,EAAKS,SAAS,CAAEE,uBAAuB,MAGpClN,EAAU8M,eAAiBA,IAC9BP,EAAK9M,wBACLoN,IAEJ,EAACN,EAED7I,2BAA6B,WAC3B6I,EAAKS,SAAS,CACZG,6BAA6B,GAEjC,EAACZ,EAED9M,sBAAwB,WACtB8H,IAAkB,GAClBgF,EAAKS,SAAS,CACZE,uBAAuB,EACvBE,eAAe,GAEnB,EAACb,EAEDd,kBAAoB,SAACE,IAEnBjc,EADqB6c,EAAK7H,MAAlBhV,UACC,CACPrF,KAAMnI,GACNxC,KAAIiB,YAAA,GAAOgrB,IAEf,EAACY,EAEDc,iBAAmB,WACjBd,EAAKS,SAAS,CACZC,6BAA6B,EAC7BK,yBAAyB,EACzBH,6BAA6B,GAEjC,EAACZ,EAEDgB,4BAA8B,SAACC,GAC7BA,EAAMC,kBACNlB,EAAKS,SAAS,CACZE,uBAAuB,EACvBzE,WAAY8D,EAAK7Y,UAAU,aAE7B6T,IAAkB,EACpB,EAACgF,EAEDmB,sBAAwB,SAACF,GACvBA,EAAMC,kBACNlB,EAAKS,SAAS,CACZI,eAAe,EACf3E,WAAY8D,EAAK7Y,UAAU,iBAE7B6T,IAAkB,EACpB,EAlGEgF,EAAKQ,MAAQ,CACXG,uBAAuB,EACvBS,+BAA+B,EAC/BP,eAAe,EACf3E,WAAY,GACZwE,6BAA6B,EAC7BE,6BAA6B,GAC7BZ,CACJ,CA2QC,OA3QAqB,aAAA1B,EAAA,EAAAlZ,IAAA,SAAA9E,MA4FD,WACE,IACEgf,EAOEW,KAAKd,MAPPG,sBAQFY,EASID,KAAKnJ,MARPkI,EAA2BkB,EAA3BlB,4BACAvE,EAAWyF,EAAXzF,YACAC,EAAWwF,EAAXxF,YAQMpd,EACNmd,EADMnd,UAAWC,EACjBkd,EADiBld,SAAUE,EAC3Bgd,EAD2Bhd,cAAeE,EAC1C8c,EAD0C9c,UAAWC,EACrD6c,EADqD7c,kBAGjDuiB,EAAuB9K,GAAe5X,GAC5C,OACEwI,gBAAA,OAAKD,UAAU,yBAAwB/O,SAAA,CACrCgP,gBAAA,OAAKD,UAAU,iCAAiCwO,GAAIkG,EAAYzjB,SAAA,CAC9DsJ,eAAA,OAAKiU,GAAG,QAAQ,iBAAgByL,KAAKna,UAAU,gBAAgB7O,SAC7DsJ,eAACic,KAAW,CACVpW,MACEH,gBAAA,OAAKD,UAAU,qBAAoB/O,SAAA,CACjCsJ,eAAA,QAAAtJ,SAAOgpB,KAAKna,UAAU,kBACtBG,gBAAA,UACED,UAAW,sBACXoa,QAASH,KAAKN,4BAA4B1oB,SAAA,CAE1CsJ,eAAC0d,GAAU,IACX1d,eAAA,QAAAtJ,SAAOgpB,KAAKna,UAAU,gBAI5B2W,QAAM,EAAAxlB,SAENsJ,eAAA,OAAKyF,UAAU,8BAA6B/O,SAC1CgP,gBAAA,OAAAhP,SAAA,CACEgP,gBAAA,OAAKD,UAAU,WAAU/O,SAAA,CACvBsJ,eAAA,OAAKyF,UAAU,gBAAe/O,SAC3BgpB,KAAKna,UAAU,qBAElBvF,eAAA,OAAKyF,UAAU,oBAAmB/O,SAChCsJ,eAAA,QAAAtJ,SAAOqG,SAGX2I,gBAAA,OAAKD,UAAU,WAAU/O,SAAA,CACvBsJ,eAAA,OAAKyF,UAAU,gBAAe/O,SAC3BgpB,KAAKna,UAAU,oBAElBvF,eAAA,OAAKyF,UAAU,oBAAmB/O,SAChCsJ,eAAA,QAAAtJ,SAAOsG,SAGX0I,gBAAA,OAAKD,UAAU,WAAU/O,SAAA,CACvBsJ,eAAA,OAAKyF,UAAU,gBAAe/O,SAC3BgpB,KAAKna,UAAU,0BAElBvF,eAAA,OAAKyF,UAAU,sBAAqB/O,SAClCsJ,eAAA,QACEyF,UAAoC,KAAzBma,EAA8B,SAAW,GAAGlpB,SAEtDkpB,SAIPla,gBAAA,OAAKD,UAAU,WAAU/O,SAAA,CACvBsJ,eAAA,OAAKyF,UAAU,gBAAe/O,SAAEgpB,KAAKna,UAAU,SAC/CvF,eAAA,OAAKyF,UAAU,sBAAqB/O,SAClCsJ,eAAA,QAAAtJ,SAAO2G,kBAOnB2C,eAAA,OAAKiU,GAAG,QAAQ,iBAAgByL,KAAKna,UAAU,iBAAiB7O,SAC9DsJ,eAACic,KAAW,CACVpW,MACEH,gBAAA,OAAKD,UAAU,qBAAoB/O,SAAA,CACjCsJ,eAAA,QAAAtJ,SAAOgpB,KAAKna,UAAU,mBACtBG,gBAAA,UACED,UAAWqa,KAAW,sBAAuB,YAC7CD,QAASH,KAAKH,sBACdQ,UAAQ,EAAArpB,SAAA,CAERsJ,eAAC0d,GAAU,CAAClV,MAAM,YAClBxI,eAAA,QAAAtJ,SAAOgpB,KAAKna,UAAU,gBAI5B2W,QAAM,EAAAxlB,SAENsJ,eAAA,OAAKyF,UAAU,8BAA6B/O,SAC1CsJ,eAAA,OAAAtJ,SACEgP,gBAAA,OAAKD,UAAU,WAAU/O,SAAA,CACvBsJ,eAAA,OAAKyF,UAAU,gBAAe/O,SAC3BgpB,KAAKna,UAAU,mBAElBvF,eAAA,OAAKyF,UAAU,gBAAe/O,SAC5BsJ,eAAA,OAAK6F,MAAOzI,EAAU1G,SAAE0G,oBAQtC4C,eAACggB,gBAAY,CACXC,cAAe,EACfC,SAAU,IACV/D,MAAO,CAAEgE,IAAK,UA6BfpB,GACC/e,eAACkd,GAAoB,CACnB7L,UAAW0N,EACXzN,sBAAuBoO,KAAKpO,sBAC5BgM,kBAAmBoC,KAAKpC,kBACxBvgB,UAAWA,EACXC,SAAUA,EACVmZ,YAAajZ,EACbmgB,eAAgBhgB,EAChBohB,4BAA6BA,MAkBvC,KAACV,CAAA,CAxRc,CAAShoB,IAAMugB,YA2RhCyH,GAAY/X,aAAe,CACzBoa,wCAAyC,KACzCvL,uBAAwB,KACxBwL,uBAAwB,KACxBC,kCAAmC,kBAAM,IAAI,EAC7CC,6CAA8C,KAC9CC,wCAAyC,KACzCC,2BAA4B,EAC5BC,wBAAwB,EACxBC,iCAAiC,EACjCC,QAAS,EACT7D,qBAAsB,KACtBnI,UAAW,KACX6J,4BAA6B,KAC7BoC,4BAA4B,EAC5BC,qBAAsB,KACtBC,kBAAmB,GACnBC,eAAgB,kBAAM,IAAI,EAC1BC,iCAAiC,EACjCC,gCAAgC,EAChCxC,eAAgB,kBAAM,IAAI,EAC1BC,eAAe,EACfwC,6BAA8B,kBAAM,IAAI,GA4D3BpD,UC7XT71B,GACC,MADDA,GAEA,KAFAA,GAGE,OAGFk5B,GAAe,CACnBC,IAAK,CACH/sB,IAAK,oCACLC,GAAI,8BACJC,KAAM,6BAyBK8sB,GArBM,SAACC,GAAgB,IAADl0B,EAAAD,EAAAo0B,EAC7BC,EAAkBna,OAAOoa,UAAUC,eAAerD,KACtD8C,GACAG,GAEEH,GAAaG,GACbH,GAAaC,IAE2BO,GAAN,QAAtCv0B,EAA4B,QAA5BD,EAAsBzD,cAAM,IAAAyD,OAAA,EAANA,EAAQxD,gBAAQ,IAAAyD,IAAI,CAAC,GAAnC3D,YAAI,IAAAk4B,EAAG,GAAEA,EAUjB,OAAuC,QAAvCJ,EAAOC,EARH,MAAMx3B,KAAKP,IAAS,YAAYO,KAAKP,GACrBxB,GACT,MAAM+B,KAAKP,GACFxB,GAEAA,WAGmB,IAAAs5B,IAAI,EAC7C,EChBehc,GAjBE,CACfR,GAAI,CACF6c,aAAc,eACdjZ,SAAU,WACVkZ,QAAS,UACTC,aAAc,gBACdC,qBAAsB,wBAExB7c,GAAI,CACF0c,aAAc,4BACdjZ,SAAU,iBACVkZ,QAAS,SACTC,aAAc,4BACdC,qBAAsB,kCCKpBC,I,OAAiB,CACrBC,aAAc,kCACdzI,SAAU,gCA2GG0I,OAxGf,SAAgB50B,GAAY,IAAD60B,EAAAh1B,EAAAC,EAAAkM,EAAA8oB,EAAAC,EAAAC,EAAR14B,EAAI0D,EAAJ1D,KACjB24B,EAAqD9f,KAAiB+f,EAAAD,EAA9D9hB,gBAAQ,IAAA+hB,EAAG,CAAC,EAACA,EAAElhB,EAAQihB,EAARjhB,SAAQmhB,EAAAF,EAAE1hB,kBAAU,IAAA4hB,EAAG,CAAC,EAACA,EACDphB,EAArBpB,KAAlBhJ,gBAAQ,IAAAoK,EAAG,CAAC,EAACA,EACf+D,EAAUC,wBAChBqd,EAAyBzrB,EAAjB4F,eAAO,IAAA6lB,EAAG,CAAC,EAACA,EACpBC,EAA8BliB,EAAtB6B,oBAAY,IAAAqgB,EAAG,CAAC,EAACA,EACzBC,EAAqC/hB,EAA7BlB,cAAM,IAAAijB,EAAG,KAAIA,EAAAC,EAAgBhiB,EAAd5E,YAAI,IAAA4mB,EAAG,GAAEA,EAC1Bvd,EAAYb,GAAiBc,GAAU3b,GACvC4D,EAAe,IAAIC,gBAAwC,QAAzB00B,EAAO,QAAPh1B,EAACzD,cAAM,IAAAyD,GAAU,QAAVC,EAAND,EAAQxD,gBAAQ,IAAAyD,OAAV,EAANA,EAAkBM,cAAM,IAAAy0B,IAAI,IAC/DW,EAAuC,QAA9BxpB,EAAe,OAAZ9L,QAAY,IAAZA,OAAY,EAAZA,EAAcO,IAAI,iBAAS,IAAAuL,IAAI,eAC3CgoB,EAA4C,QAAlCc,EAAe,OAAZ50B,QAAY,IAAZA,OAAY,EAAZA,EAAcO,IAAI,qBAAa,IAAAq0B,IAAI,GAChDW,EAAgC,QAA5BV,EAAe,OAAZ70B,QAAY,IAAZA,OAAY,EAAZA,EAAcO,IAAI,eAAO,IAAAs0B,IAAI,GAC1C3rB,EAAsCC,mBAASqrB,GAAec,IAAW/rB,EAAAC,YAAAN,EAAA,GAAlEwjB,EAAWnjB,EAAA,GAAEisB,EAAcjsB,EAAA,GAC5B+M,EAA8C,QAAnCwe,EAAe,OAAZ90B,QAAY,IAAZA,OAAY,EAAZA,EAAcO,IAAI,sBAAc,IAAAu0B,IAAI,KAclDW,EACe,kBAAZpmB,GAAwBwK,OAAOC,KAAKzK,GAAS/P,OAAS,EAEzDo2B,EAAY,CAChBjB,aAAc,CACZrc,MAAON,EAAU,gBACjB6d,KACEpjB,eAAC+d,GAAW,CACV7D,YAAapd,EACbyE,SAAUA,EACVkd,4BACEviB,IAASnI,GAA6B6L,EAAS,KAEjDia,qBACE3d,IAASnI,GAA0B6L,EAAS,KAE9CiV,uBACE3Y,IAASnI,GAA4B6L,EAAS,KAEhDua,YAAa8H,GAAeC,gBAIlCzI,SAAU,CACR5T,MAAON,EAAU,YAEjB6d,KACEpjB,eAACyZ,GAAQ,CACPlX,aAAcA,EACdhB,SAAUA,EACV2Y,YAAapd,EACb+c,qBACE3d,IAASnI,GAA0B6L,EAAS,KAE9CiV,uBACE3Y,IAASnI,GAA6B6L,EAAS,KAEjDka,4BACE5d,IAASnI,GAA4B6L,EAAS,KAEhDma,WAAY7d,IAASnI,GAA6B6L,EAAS,KAC3Dua,YAAa8H,GAAexI,SAC5BG,qBAAsB1d,IAASnI,GAAwB6L,EAAS,SAMxE,OACE8F,gBAAA,OAAKuO,GAAG,oBAAmBvd,SAAA,CACxBwsB,GACCxd,gBAAA2d,YAAA,CAAA3sB,SAAA,CACEsJ,eAAA,OAAKyF,UAAU,aAAY/O,SACzBsJ,eAACsjB,KAAU,CACTzd,MAAON,EAAU,gBACjBge,UAAQ,EACRC,cApEU,WACD,KAAfjC,GAAqBxd,EACvBpa,OAAOC,SAAS65B,KAAO1f,GACR,GAAA5Z,OACRm3B,GAAaC,GAAW,KAAAp3B,OAAIN,GAAIM,OAAG64B,GAE1C3d,EAAQU,KAAK,IAAD5b,OAAKN,EAAI,SAEzB,EA6DY65B,cAAc,QACdC,YAAape,EAAU,4BAG3BG,gBAAA,OAAKD,UAAU,aAAY/O,SAAA,CACzBsJ,eAAC4jB,KAAmB,CAACzJ,YAAaA,IAClCna,eAAC6jB,KAAa,CACZC,QAASX,EACTJ,UAAWA,EACXgB,kBApEc,SAACC,GAAG,OAAKf,EAAehB,GAAe+B,GAAM,WAyEjEd,GAAiBljB,eAACyG,KAAM,CAAC5c,KAAMA,IACjCmW,eAACggB,gBAAY,CAACC,cAAe,EAAGC,SAAU,IAAM/D,MAAO,CAAEgE,IAAK,YAGpE,ECrFe8D,GAxCgB,CAC7B5C,IAAK,CACH6C,KAAM,4BACNC,KAAM,CACJ,qCACA,2BACA,mCAEFC,QAAS,yCAEXC,GAAI,CACFH,KAAM,4BACNC,KAAM,CACJ,qCACA,2BACA,mCAEFC,QAAS,yCAEX/vB,KAAM,CACJ6vB,KAAM,sBACNC,KAAM,CACJ,wBACA,wBACA,yBAEFC,QAAS,qCAEXE,IAAK,CACHJ,KAAM,4BACNC,KAAM,CACJ,8BACA,8BACA,8BACA,+BAEFC,QAAS,mCCgTE5e,GApVE,CACfR,GAAI,CACFuf,0BAA2B,gCAE3BC,UAAW,YACXC,gCACE,2FACFC,OAAQ,SACRC,mBAAoB,qBACpBC,cAAe,gBACfC,OAAQ,SACRC,OAAQ,SACRC,OAAQ,SACRC,WAAY,aACZC,gBAAiB,kBACjBC,UAAW,YACXC,KAAM,OACNC,cAAe,gBACfC,0BAA2B,4BAC3BC,OAAQ,SACRC,MAAO,QACPC,gBAAiB,kBACjBC,MAAO,QACPC,OAAQ,SACRC,YAAa,cACb,MAAO,MACPC,iCAAkC,oCAClCC,UAAW,YACXC,MAAO,QACPC,uBAAwB,yBACxBC,MAAO,QAEPC,yBACE,oDACFC,sBACE,2EACFC,kCACE,sFACFC,6BACE,8FACFC,sBACE,oFACFC,sBACE,2EACFC,sBACE,2EACFC,0BACE,2DACFC,+BACE,2DACFC,yBACE,oDACFC,oBACE,kFACFC,6BACE,iEACFC,yCACE,4FACFC,sBACE,4FACFC,qBAAsB,iDACtBC,+BACE,iDACFC,qBAAsB,iDACtBC,sBACE,uEACFC,2BACE,qEACF,qBACE,iEACFC,yBACE,gEACFC,qBACE,sFACFC,sCACE,4EACFC,qBACE,6DAEFC,WAAY,aACZC,OAAQ,SAERC,qCACE,0EACFC,4CACE,4EACFC,yCACE,0EACFC,yBAA0B,2BAE1BC,4CACE,wEACFC,sBACE,+DACFC,2BAA4B,6CAC5BC,2CACE,6CAEFC,0BACE,oGACFC,mCAAoC,qCACpCC,yBAA0B,2BAC1BC,gCAAiC,kCAEjCC,sDACE,yDACFC,kDACE,oDACFC,6BAA8B,+BAC9BC,mDACE,qDAEFC,YAAa,cACbC,WAAY,aACZC,4CACE,iDACFC,YAAa,gBACbC,SAAU,aACVC,UAAW,YACXC,gBAAiB,kBACjBC,gBAAiB,kBACjBC,oBAAqB,sBACrBC,oCAAqC,sCACrCC,aAAc,iBACdC,kBAAmB,wBAEnBC,gCAAiC,mCACjCC,kCACE,mFACFC,sCACE,yCACFC,wCACE,6DACFC,0CACE,wDACFC,4CACE,iEAEFC,8BAA+B,kCAC/BC,oCACE,yCACFC,sCACE,8DACFC,wCACE,6CACFC,0BACE,6FACFC,4BAA6B,4CAC7BC,4BACE,wDACFC,4BAA6B,uCAC7BC,4BACE,uEACFC,+BACE,+DACFC,oBACE,8FACFC,sBACE,gGACFC,sBACE,2EACFC,sBAAuB,4BACvBC,SAAU,YAEZvlB,GAAI,CACFof,0BAA2B,4BAE3BC,UAAW,qBACXC,gCACE,4IACFC,OAAQ,kBACRC,mBAAoB,0CACpBC,cAAe,wDACfC,OAAQ,qBACRC,OAAQ,kBACRC,OAAQ,kBACRC,WAAY,sBACZC,gBAAiB,2BACjBC,UAAW,qBACXC,KAAM,mBACNC,cAAe,gBACfC,0BAA2B,wCAC3BC,OAAQ,kBACRC,MAAO,iBACPC,gBAAiB,uCACjBC,MAAO,iBACPC,OAAQ,kBACRC,YAAa,uBACb,MAAO,eACPC,iCACE,kDACFC,UAAW,iBACXC,MAAO,QACPC,uBAAwB,2BACxBC,MAAO,gBAEPC,yBACE,+DACFC,sBACE,2EACFC,kCACE,sFACFC,6BACE,8FACFC,sBACE,oFACFC,sBACE,2EACFC,sBACE,2EACFC,0BACE,8DACFC,+BACE,sEACFC,yBACE,+DACFC,oBACE,kFACFC,6BACE,iEACFC,yCACE,kGACFC,sBACE,+FACFC,qBACE,4DACFC,+BACE,4DACFC,qBACE,4DACFC,sBACE,2GACFC,2BACE,2GACF,qBACE,iEACFC,yBACE,gEACFC,qBACE,sFACFC,sCACE,4EACFC,qBACE,qEAEFC,WAAY,2BACZC,OAAQ,SAERC,qCACE,kGACFC,4CACE,+GACFC,yCACE,4HACFC,yBACE,8DAEFC,4CACE,wGACFC,sBACE,0DACFC,2BACE,6DACFC,2CACE,qDAEFC,0BACE,+FACFC,mCACE,gEACFC,yBAA0B,8CAC1BC,gCACE,8DAEFC,sDACE,mEACFC,k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","file":"static/js/main.4520a8a5.chunk.js","sourcesContent":["const {\r\n REACT_APP_ENV,\r\n REACT_APP_SSO_B2C_TENANT,\r\n REACT_APP_SSO_APP_CLIENT_ID,\r\n REACT_APP_SSO_POLICY_SIGNIN,\r\n REACT_APP_SSO_POLICY_FORGOT_PSWD,\r\n REACT_APP_SSO_POLICY_EDIT_PROFILE,\r\n REACT_APP_SSO_WEB_APP,\r\n REACT_APP_SSO_WEB_STORAGE,\r\n REACT_APP_SSO_SET_SECURITY_QUESTIONS,\r\n REACT_APP_SSO_MDLITEUSER_REDIRECT,\r\n REACT_APP_SSO_B2C_TENANTDOMAIN,\r\n REACT_AUTH_CLIENT_REDIRECT,\r\n REACT_AUTH_CLIENT_DOMAIN,\r\n REACT_AUTH_TOKEN_URL,\r\n REACT_APP_SSO_RESET_PASSWORD,\r\n REACT_APP_SSO_SELF_SERVE_SET_SECURITY_QUESTIONS,\r\n REACT_APP_SSO_POLICY_ACTIVATE_MD2,\r\n REACT_APP_SSO_POLICY_ACTIVATE_MGO,\r\n} = process.env;\r\n\r\nexport const env = {\r\n appEnv: REACT_APP_ENV,\r\n sso: {\r\n b2cTenantUrl: REACT_APP_SSO_B2C_TENANT,\r\n b2cTenantDomain: REACT_APP_SSO_B2C_TENANTDOMAIN,\r\n appClientId: REACT_APP_SSO_APP_CLIENT_ID,\r\n webApp: REACT_APP_SSO_WEB_APP,\r\n webStorage: REACT_APP_SSO_WEB_STORAGE,\r\n authClientRedirect: REACT_AUTH_CLIENT_REDIRECT,\r\n authClientDomain: REACT_AUTH_CLIENT_DOMAIN,\r\n authTokenDomain: REACT_AUTH_TOKEN_URL,\r\n policy: {\r\n signIn: REACT_APP_SSO_POLICY_SIGNIN,\r\n forgotPassword: REACT_APP_SSO_POLICY_FORGOT_PSWD,\r\n editProfile: REACT_APP_SSO_POLICY_EDIT_PROFILE,\r\n setSecurityQuestion: REACT_APP_SSO_SET_SECURITY_QUESTIONS,\r\n resetPassword: REACT_APP_SSO_RESET_PASSWORD,\r\n activateTileMd2: REACT_APP_SSO_POLICY_ACTIVATE_MD2,\r\n activateTileMgo: REACT_APP_SSO_POLICY_ACTIVATE_MGO,\r\n selfServeSetSecurityQuestion:\r\n REACT_APP_SSO_SELF_SERVE_SET_SECURITY_QUESTIONS,\r\n },\r\n mdliteUser: {\r\n redirect: REACT_APP_SSO_MDLITEUSER_REDIRECT,\r\n },\r\n },\r\n};\r\n\r\n// TODO: change pipelines? for proper env vars injections into react app / containers\r\n// TEMP SOLUTION to power both DEV and QA using the same sources\r\nlet host = window.location.host;\r\nconst lang = window.localStorage.getItem(\"lang\") ?? \"en\";\r\nif (/mss-02-dev/.test(host) || /login-dev/.test(host)) {\r\n env.appEnv = \"DEV\";\r\n env.sso.b2cTenantUrl = \"mss-dev.moneris.com\";\r\n env.sso.b2cTenantDomain = \"moneris365devsso\";\r\n env.sso.appClientId = \"e634b45d-d178-4c74-b10b-4d94af6a7b70\";\r\n env.sso.policy.signIn = \"B2C_1A_SIGNUP_SIGNIN\";\r\n env.sso.policy.forgotPassword = \"B2C_1A_PasswordReset\";\r\n env.sso.policy.editProfile = \"B2C_1A_PROFILEEDIT\";\r\n env.sso.webApp = \"login-dev.moneris.com\";\r\n // env.sso.webStorage = \"moneris365devstmssdvcc\";\r\n env.sso.functionDomain = \"moneris365dev-func-mss-02-dv-cc.azurewebsites.net\";\r\n env.sso.policy.setSecurityQuestion = \"B2C_1A_SecurityQuestions_DE\";\r\n env.sso.policy.selfServeSetSecurityQuestion =\r\n \"B2C_1A_SecurityQuestions_Profile\";\r\n env.sso.mdliteUser.redirect =\r\n \"https://www1-dev.corp.moneris.com/{lang}/onboarding/account/setup\";\r\n env.sso.authClientRedirect = `https://login-dev.moneris.com/${lang}/launch`;\r\n env.sso.authClientDomain =\r\n \"mss-dev.moneris.com/moneris365devsso.onmicrosoft.com\";\r\n env.sso.authTokenDomain = \"moneris365dev-func-mss-02-dv-cc.azurewebsites.net\";\r\n env.sso.policy.resetPassword = \"B2C_1A_PasswordResetTemp\";\r\n env.sso.policy.activateTileMd2 = \"B2C_1A_Sales_App_Activation_MD2\";\r\n env.sso.policy.activateTileMgo = \"B2C_1A_Sales_App_Activation_MOGO\";\r\n} else if (\r\n /-qa-cc/.test(host) ||\r\n /-qa-ce/.test(host) ||\r\n /login-qa/.test(host)\r\n) {\r\n env.appEnv = \"QA\";\r\n env.sso.b2cTenantUrl = \"mss-qa.moneris.com\";\r\n env.sso.b2cTenantDomain = \"moneris365mssqa\";\r\n env.sso.appClientId = \"e89a258a-da52-43b6-8848-750abeaa22b7\";\r\n env.sso.policy.signIn = \"B2C_1A_SIGNUP_SIGNIN\";\r\n env.sso.policy.forgotPassword = \"B2C_1A_PasswordReset\";\r\n env.sso.policy.editProfile = \"B2C_1A_PROFILEEDIT\";\r\n env.sso.webApp = \"login-qa.moneris.com\";\r\n // env.sso.webStorage = \"moneris365devstmssdvcc\";\r\n env.sso.functionDomain = \"login-qa.moneris.com\";\r\n env.sso.policy.setSecurityQuestion = \"B2C_1A_SecurityQuestions_DE\";\r\n env.sso.policy.selfServeSetSecurityQuestion =\r\n \"B2C_1A_SecurityQuestions_Profile\";\r\n env.sso.mdliteUser.redirect =\r\n \"https://www1-qa.moneris.com/{lang}/onboarding/account/setup\";\r\n env.sso.authClientRedirect = `https://login-qa.moneris.com/${lang}/launch`;\r\n env.sso.authClientDomain =\r\n \"mss-qa.moneris.com/moneris365mssqa.onmicrosoft.com\";\r\n env.sso.authTokenDomain = \"moneris365-app-mss-03-qa-cc.azurewebsites.net\";\r\n env.sso.policy.resetPassword = \"B2C_1A_PasswordResetTemp\";\r\n env.sso.policy.activateTileMd2 = \"B2C_1A_Sales_App_Activation_MD2\";\r\n env.sso.policy.activateTileMgo = \"B2C_1A_Sales_App_Activation_MOGO\";\r\n} else if (/local/.test(host)) {\r\n env.appEnv = \"QA\";\r\n env.sso.b2cTenantUrl = \"mss-qa.moneris.com\";\r\n env.sso.b2cTenantDomain = \"moneris365mssqa\";\r\n env.sso.appClientId = \"e89a258a-da52-43b6-8848-750abeaa22b7\";\r\n env.sso.policy.signIn = \"B2C_1A_SIGNUP_SIGNIN\";\r\n env.sso.policy.forgotPassword = \"B2C_1A_PasswordReset\";\r\n env.sso.policy.editProfile = \"B2C_1A_PROFILEEDIT\";\r\n env.sso.webApp = \"login-qa.moneris.com\";\r\n // env.sso.webStorage = \"moneris365devstmssdvcc\";\r\n env.sso.functionDomain = \"login-qa.moneris.com\";\r\n // env.sso.functionDomain = \"moneris365-func-mss-02-qa-cc.azurewebsites.net\";\r\n env.sso.policy.setSecurityQuestion = \"B2C_1A_SecurityQuestions_DE\";\r\n env.sso.policy.selfServeSetSecurityQuestion =\r\n \"B2C_1A_SecurityQuestions_Profile\";\r\n env.sso.mdliteUser.redirect =\r\n \"https://www1-qa.moneris.com/{lang}/onboarding/account/setup\";\r\n env.sso.authClientRedirect = `http://localhost:3000/${lang}/launch`;\r\n env.sso.authClientDomain =\r\n \"mss-qa.moneris.com/moneris365mssqa.onmicrosoft.com\";\r\n env.sso.authTokenDomain = \"moneris365-app-mss-03-qa-cc.azurewebsites.net\";\r\n env.sso.policy.resetPassword = \"B2C_1A_PasswordResetTemp\";\r\n env.sso.policy.activateTileMd2 = \"B2C_1A_Sales_App_Activation_MD2\";\r\n env.sso.policy.activateTileMgo = \"B2C_1A_Sales_App_Activation_MOGO\";\r\n} else if (/-sp-ce/.test(host) || /login/.test(host) || /-sp-cc/.test(host)) {\r\n env.appEnv = \"PROD\";\r\n env.sso.b2cTenantUrl = \"mss.moneris.com\";\r\n env.sso.b2cTenantDomain = \"monerisportal\";\r\n env.sso.appClientId = \"452f9235-f1ff-4a52-82bf-64357c41ca31\";\r\n env.sso.policy.signIn = \"B2C_1A_SIGNUP_SIGNIN\";\r\n env.sso.policy.forgotPassword = \"B2C_1A_PasswordReset\";\r\n env.sso.policy.editProfile = \"B2C_1A_PROFILEEDIT\";\r\n env.sso.webApp = \"login.moneris.com\";\r\n // env.sso.webStorage = \"moneris365devstmssdvcc\";\r\n env.sso.functionDomain = \"login.moneris.com\";\r\n env.sso.policy.setSecurityQuestion = \"B2C_1A_SecurityQuestions_DE\";\r\n env.sso.policy.selfServeSetSecurityQuestion =\r\n \"B2C_1A_SecurityQuestions_Profile\";\r\n env.sso.mdliteUser.redirect =\r\n \"https://www2.moneris.com/{lang}/onboarding/account/setup\";\r\n env.sso.authClientRedirect = `https://login.moneris.com/${lang}/launch`;\r\n env.sso.authClientDomain = \"mss.moneris.com/monerisportal.onmicrosoft.com\";\r\n env.sso.authTokenDomain = \"login.moneris.com\"; //\"moneris365-app-mss-03-sp-cc.azurewebsites.net\";\r\n env.sso.policy.resetPassword = \"B2C_1A_PasswordResetTemp\";\r\n env.sso.policy.activateTileMd2 = \"B2C_1A_Sales_App_Activation_MD2\";\r\n env.sso.policy.activateTileMgo = \"B2C_1A_Sales_App_Activation_MOGO\";\r\n}\r\n","/**\r\n * Attempt to remove /en|/fr from the front of the string if exists\r\n * @param {String} url\r\n * @returns {String}\r\n */\r\nconst removeLanguageFromUrl = (url) => {\r\n const match = url.match(/(?:\\/(?:en|fr))([\\w\\-/\\d?_]+)/i);\r\n return match?.[1] ?? url;\r\n};\r\n\r\nconst extractLanguageFromPathname = (url) => {\r\n const match = url.match(/^\\/(en|fr)(?=\\/[\\w\\-/\\d]+)?/i);\r\n return match?.[1]?.toLowerCase();\r\n};\r\n\r\nconst capitaliseFirstLetter = (string) => {\r\n return string.charAt(0).toUpperCase() + string.slice(1);\r\n};\r\n\r\nconst sortObjectByValue = (arr) => {\r\n // index value defines priority level\r\n if (Array.isArray(arr)) {\r\n const appCodeList = [\"mogo\", \"md2\"];\r\n return arr.sort(function (a, b) {\r\n const val1 = a?.app_code?.toLowerCase() ?? \"\";\r\n const val2 = b?.app_code?.toLowerCase() ?? \"\";\r\n const val_a_activated = a?.is_activated ?? true;\r\n const val_b_activated = b?.is_activated ?? true;\r\n if (\r\n appCodeList.indexOf(val1) === -1 &&\r\n appCodeList.indexOf(val2) === -1\r\n ) {\r\n if (val1 < val2) {\r\n if (\r\n (val_a_activated && val_b_activated) ||\r\n (!val_a_activated && !val_b_activated)\r\n )\r\n return -1;\r\n\r\n if (!val_a_activated && val_b_activated) return 1;\r\n if (val_a_activated && !val_b_activated) return -1;\r\n }\r\n if (val1 > val2) {\r\n if (\r\n (val_a_activated && val_b_activated) ||\r\n (!val_a_activated && !val_b_activated)\r\n )\r\n return 1;\r\n\r\n if (!val_a_activated && val_b_activated) return 1;\r\n if (val_a_activated && !val_b_activated) return -1;\r\n }\r\n return 0;\r\n } else {\r\n if (appCodeList?.indexOf(val1) < appCodeList?.indexOf(val2)) {\r\n if (\r\n (val_a_activated && val_b_activated) ||\r\n (!val_a_activated && !val_b_activated)\r\n )\r\n return 1;\r\n\r\n if (!val_a_activated && val_b_activated) return 1;\r\n if (val_a_activated && !val_b_activated) return -1;\r\n }\r\n if (appCodeList?.indexOf(val1) > appCodeList?.indexOf(val2)) {\r\n if (\r\n (val_a_activated && val_b_activated) ||\r\n (!val_a_activated && !val_b_activated)\r\n )\r\n return -1;\r\n\r\n if (!val_a_activated && val_b_activated) return 1;\r\n if (val_a_activated && !val_b_activated) return -1;\r\n }\r\n return 0;\r\n }\r\n });\r\n } else {\r\n return arr;\r\n }\r\n};\r\n\r\n// hash algo SHA256\r\nfunction hashSha256(string) {\r\n const utf8 = new TextEncoder().encode(string);\r\n return crypto.subtle.digest(\"SHA-256\", utf8).then((hashBuffer) => {\r\n const hashArray = Array.from(new Uint8Array(hashBuffer));\r\n const hashHex = hashArray\r\n .map((bytes) => bytes.toString(16).padStart(2, \"0\"))\r\n .join(\"\");\r\n return hashHex;\r\n });\r\n}\r\n\r\nfunction delay(delay) {\r\n return new Promise((res) => setTimeout(res, delay));\r\n}\r\n\r\n// strip html caharacters from string\r\nfunction stripHtmlTags(raw) {\r\n return raw ? raw.replace(/<[^>]*>/g, \"\") : \"\";\r\n}\r\n\r\nexport {\r\n removeLanguageFromUrl,\r\n extractLanguageFromPathname,\r\n capitaliseFirstLetter,\r\n sortObjectByValue,\r\n hashSha256,\r\n delay,\r\n stripHtmlTags,\r\n};\r\n","function getCookie(cname) {\r\n let name = cname + \"=\";\r\n let decodedCookie = decodeURIComponent(document.cookie);\r\n let ca = decodedCookie.split(';');\r\n for(let i = 0; i {\r\n if (containsPii) {\r\n return;\r\n }\r\n switch (level) {\r\n case LogLevel.Error:\r\n console.error(message);\r\n return;\r\n case LogLevel.Info:\r\n console.info(message);\r\n return;\r\n case LogLevel.Verbose:\r\n console.debug(message);\r\n return;\r\n case LogLevel.Warning:\r\n console.warn(message);\r\n return;\r\n }\r\n },\r\n },\r\n },\r\n};\r\n\r\n/**\r\n * Add here the endpoints and scopes when obtaining an access token for protected web APIs. For more information, see:\r\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/resources-and-scopes.md\r\n */\r\nexport const protectedResources = {\r\n apiHello: {\r\n endpoint: \"http://localhost:5000/hello\",\r\n scopes: [`https://${env.sso.b2cTenantDomain}.onmicrosoft.com/sso/auth`], // e.g. api://xxxxxx/access_as_user\r\n },\r\n};\r\n\r\n/**\r\n * Scopes you add here will be prompted for user consent during sign-in.\r\n * By default, MSAL.js will add OIDC scopes (openid, profile, email) to any login request.\r\n * For more information about OIDC scopes, visit:\r\n * https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#openid-connect-scopes\r\n */\r\nexport const loginRequest = {\r\n scopes: [...protectedResources.apiHello.scopes],\r\n};\r\n","/* eslint-disable */\r\n\r\nimport axios from \"axios\";\r\nimport { env } from \"../cfg/env\";\r\n\r\nasync function CallApi(\r\n body,\r\n url,\r\n method,\r\n contentType = \"application/json\",\r\n IsWithCredentials = true,\r\n token = null\r\n) {\r\n if (method && method.toUpperCase() === \"POST\") {\r\n try {\r\n const response = await axios.post(url, body, {\r\n headers: {\r\n \"Content-Type\": contentType,\r\n ...(token && { Authorization: `Bearer ${token}` }),\r\n },\r\n withCredentials: IsWithCredentials,\r\n });\r\n return response;\r\n } catch (e) {\r\n return e.response;\r\n }\r\n } else if (method && method.toUpperCase() === \"GET\") {\r\n try {\r\n const response = await axios.get(url, {\r\n withCredentials: IsWithCredentials,\r\n \"Content-Type\": contentType,\r\n ...(token && { Authorization: `Bearer ${token}` }),\r\n data: {},\r\n });\r\n return response;\r\n } catch (e) {\r\n return e.response;\r\n }\r\n } else if (method && method.toUpperCase() === \"PUT\") {\r\n try {\r\n const response = await axios.put(url, body, {\r\n headers: {\r\n \"Content-Type\": contentType,\r\n },\r\n withCredentials: IsWithCredentials,\r\n });\r\n return response;\r\n } catch (e) {\r\n return e.response;\r\n }\r\n } else {\r\n return \"error\";\r\n }\r\n}\r\n\r\nfunction validateStatus(status) {\r\n return status >= 200 && status < 300; // Success on response between 200 and 300\r\n}\r\n\r\n// Authenticated parameter is strictly for all api which are authenticated\r\nexport default async function authApi(payload, isAuthenticated = false) {\r\n const {\r\n body,\r\n url,\r\n method,\r\n contentType,\r\n isWithCredentials,\r\n tokenhandler = () => null,\r\n isSecured = false,\r\n } = payload;\r\n const token = isSecured ? await tokenhandler() : null;\r\n const response = await CallApi(\r\n body,\r\n url,\r\n method,\r\n contentType,\r\n isWithCredentials,\r\n token\r\n );\r\n return response;\r\n}\r\n","import { env } from \"../cfg/env\";\r\n\r\nconst authClientDomain = env.sso.authClientDomain;\r\n\r\nconst userActions = {\r\n fetchUserInfo: \"fetchUserInfo\",\r\n updateUserInfo: \"updateUserInfo\",\r\n sendMfaCode: \"sendMfaCode\",\r\n sendTotpInfo: \"sendTotpInfo\",\r\n verifyMfaCode: \"verifyMfaCode\",\r\n getAppIds: \"getAppIds\",\r\n totpInitCall: \"totpInitCall\",\r\n verifyTotpCode: \"verifyTotpCode\",\r\n resetTotp: \"resetTotp\",\r\n auditLog: \"auditLog\",\r\n isMd2Lite: \"isMd2Lite\",\r\n isObSetup: \"isObSetup\",\r\n authorizeClient: \"authorizeClient\",\r\n authToken: \"authToken\",\r\n middlewareLogout: \"middlewareLogout\",\r\n ssoSessionCheck: \"ssoSessionCheck\"\r\n};\r\n\r\nconst funcName = `${env.sso.functionDomain}`;\r\nconst authTokenDomain = `${env.sso.authTokenDomain}`;\r\n\r\nconst apiList = {\r\n [userActions.fetchUserInfo]: `https://${funcName}/auth/api/b2c-user-info`,\r\n [userActions.updateUserInfo]: `https://${funcName}/auth/api/b2c-user-info-update`,\r\n [userActions.sendMfaCode]: `https://${funcName}/auth/api/b2c-mfa-code-send`,\r\n [userActions.sendTotpInfo]: `https://${funcName}/auth/api/b2c-mfa-totp-setup`,\r\n [userActions.verifyTotpCode]: `https://${funcName}/auth/api/b2c-mfa-totp-verify`,\r\n [userActions.totpInitCall]: `https://${funcName}/auth/api/b2c-mfa-totp-init`,\r\n [userActions.verifyMfaCode]: `https://${funcName}/auth/api/b2c-mfa-code-verify`,\r\n [userActions.resetTotp]: `https://${funcName}/auth/api/b2c-mfa-totp-reset`,\r\n [userActions.auditLog]: `https://${funcName}/auth/api/b2c-log-audit-event`,\r\n [userActions.isMd2Lite]: `https://${funcName}/auth/api/md2-is-applicant`,\r\n [userActions.isObSetup]: `https://${funcName}/auth/api/md2-redirect-eligibility`,\r\n [userActions.ssoSessionCheck]: `https://${funcName}/auth/portal/check`,\r\n [userActions.authorizeClient]: `https://${authClientDomain}/B2C_1A_SIGNUP_SIGNIN/oauth2/v2.0/authorize`,\r\n [userActions.authToken]: `https://${funcName}/auth/token`,\r\n [userActions.middlewareLogout]: `https://${funcName}/auth/logout`,\r\n};\r\n\r\nconst clinetIds = {\r\n mogo: {\r\n dev: \"77192686-ed8b-47b9-9682-066ff527ca74\",\r\n qa: \"02042f00-525c-4336-b232-e4a10d333ffb\",\r\n prod: \"c0e17c8f-73d9-4d5f-b308-424fee35143d\",\r\n },\r\n};\r\n\r\nconst methodType = {\r\n get: \"GET\",\r\n post: \"POST\",\r\n patch: \"PATCH\",\r\n delete: \"DELETE\",\r\n};\r\n\r\nexport { userActions, apiList, methodType, clinetIds };\r\n","import { InteractionRequiredAuthError } from \"@azure/msal-browser\";\r\nimport { env } from \"../cfg/env\";\r\nimport clearMemory from \"./storageHandler\";\r\n\r\nconst getToken = async(\r\n instance,\r\n inProgress = \"\",\r\n accounts = [],\r\n setError = () => null\r\n) => {\r\n const accountList = instance.getAllAccounts() ?? [];\r\n if (accountList.length) {\r\n const accessTokenRequest = {\r\n scopes: [`https://${env.sso.b2cTenantDomain}.onmicrosoft.com/sso/auth`],\r\n account: accounts[0],\r\n };\r\n return instance\r\n ?.acquireTokenSilent(accessTokenRequest)\r\n .then((accessTokenResponse) => {\r\n // Acquire token silent success\r\n const idToken = accessTokenResponse.idToken ?? \"\";\r\n return idToken;\r\n })\r\n .catch((error) => {\r\n // removing logic for acquiring token using popup\r\n // if (error instanceof InteractionRequiredAuthError) {\r\n // instance\r\n // ?.acquireTokenPopup(accessTokenRequest)\r\n // .then(function (accessTokenResponse) {\r\n // // Acquire token interactive success\r\n // let accessToken = accessTokenResponse.idToken;\r\n // return accessToken;\r\n // })\r\n // .catch(function (e) {\r\n // // Acquire token interactive failure\r\n // console.log(e);\r\n // setError(true);\r\n // });\r\n // }\r\n if (error instanceof InteractionRequiredAuthError) {\r\n console.log(\"error is:\", error);\r\n if (accounts.length > 0) {\r\n const currentAccount = accounts[0];\r\n const homeAccountId = currentAccount.homeAccountId;\r\n console.log(homeAccountId);\r\n const logoutRequest = {\r\n account: instance.getAccountByHomeId(homeAccountId),\r\n };\r\n instance.logoutRedirect(logoutRequest);\r\n // Use homeAccountId as needed\r\n } else {\r\n // Handle the case where no user is signed in\r\n console.log(\"No user is currently signed in.\");\r\n }\r\n }\r\n setError(true);\r\n console.log(error);\r\n return null;\r\n });\r\n }else{\r\n instance.logoutRedirect();\r\n }\r\n return null;\r\n};\r\n\r\nexport default getToken;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useIsAuthenticated, useMsal } from \"@azure/msal-react\";\r\nimport authApi from \"./auth-api\";\r\nimport { userActions, apiList, methodType } from \"./constant\";\r\nimport getToken from \"../util/tokenGenerator\";\r\nimport { stripHtmlTags } from \"../util/helper\";\r\n\r\nconst AppStateContext = React.createContext();\r\n\r\nconst getData = async ({\r\n body = {},\r\n url = \"\",\r\n method = methodType.post,\r\n isWithCredentials = true,\r\n tokenhandler = () => null,\r\n isSecured = false,\r\n}) => {\r\n let response = await authApi({\r\n body,\r\n method,\r\n url,\r\n isWithCredentials,\r\n tokenhandler,\r\n isSecured,\r\n });\r\n return response;\r\n};\r\n\r\nfunction AppStateProvider({ children }) {\r\n const [appState, setAppState] = useState({\r\n isError: false,\r\n isPopUpBlocked: window.sessionStorage.getItem(\"isPopUpBlocked\") === \"true\",\r\n });\r\n const { instance, inProgress, accounts } = useMsal();\r\n const isAuthenticated = useIsAuthenticated();\r\n const origin = \"settings\";\r\n\r\n useEffect(async () => {\r\n if (isAuthenticated) {\r\n const myAccounts = instance.getAllAccounts();\r\n const accountObj = myAccounts[0] ?? {};\r\n const { idTokenClaims = {} } = accountObj;\r\n // todo enable after integeration\r\n const { uid = \"\", env = \"qa\", isMigrationFlow = false } = idTokenClaims;\r\n setAppState({\r\n ...appState,\r\n uid: uid,\r\n env: env,\r\n isMigrationFlow: isMigrationFlow,\r\n isLoading: true,\r\n isError: false,\r\n isMd2Lite: false,\r\n isObSetup: false,\r\n });\r\n if (uid) {\r\n await getUserData(uid);\r\n }\r\n }\r\n }, [isAuthenticated]);\r\n\r\n const getUserData = async (uid) => {\r\n //sync existing app lang\r\n const lang = window.localStorage.getItem(\"lang\");\r\n await updateAppState({\r\n body: { preferred_language: lang },\r\n type: userActions.updateUserInfo,\r\n uid,\r\n });\r\n const url = apiList[userActions.fetchUserInfo];\r\n const response = await getData({\r\n body: { user_id: uid, origin },\r\n method: methodType.post,\r\n url,\r\n tokenhandler: () => getToken(instance, inProgress, accounts),\r\n isSecured: true,\r\n });\r\n\r\n const { user = \"\", success = false } = response?.data ?? {};\r\n if (success) {\r\n const {\r\n apps,\r\n first_name = \"\",\r\n last_name = \"\",\r\n mobile_phone = \"\",\r\n email = \"\",\r\n display_name = \"\",\r\n first_sign_in: firstSignIn = false,\r\n mfa = {},\r\n preferred_language = \"en\",\r\n contact_phone = \"\",\r\n contact_phone_ext = \"\",\r\n password_last_change_date = null,\r\n password_exp_date = null,\r\n questions_last_change_date = null,\r\n hasPartnerRole = null,\r\n hasSharedCashRole = null,\r\n } = user;\r\n window.localStorage.setItem(\r\n \"lang\",\r\n String(preferred_language).toLowerCase()\r\n );\r\n\r\n const isMd2LiteUserResponse = await getData({\r\n body: { user_id: uid, email: email },\r\n method: methodType.post,\r\n url: apiList[userActions.isMd2Lite],\r\n tokenhandler: () => getToken(instance, inProgress, accounts),\r\n isSecured: true,\r\n });\r\n\r\n const isObSetupResponse = await getData({\r\n body: { user_id: uid, email },\r\n method: methodType.post,\r\n url: apiList[userActions.isObSetup],\r\n tokenhandler: () => getToken(instance, inProgress, accounts),\r\n isSecured: true,\r\n });\r\n\r\n const isMd2LiteUser = isMd2LiteUserResponse?.data?.success ?? false;\r\n const isObSetupUser =\r\n (isObSetupResponse?.data?.success ?? false) &&\r\n (isObSetupResponse?.data?.isEligible ?? false);\r\n const hasMd2Tile = apps.reduce((prevVal, currentVal) => {\r\n const { app_code = \"\" } = currentVal;\r\n return prevVal || app_code?.toString().toLowerCase() === \"md2\";\r\n }, false);\r\n const { app_code = \"\" } = apps[0] ?? {};\r\n const searchParams = new URLSearchParams(window?.location?.search) ?? \"\";\r\n const logoutAction = searchParams?.get(\"logout\") ?? \"\";\r\n // isRedirect is to determine uis user is landing on sso page\r\n // true means no sso landing page to show\r\n const isRedirect =\r\n isMd2LiteUser ||\r\n hasPartnerRole ||\r\n hasSharedCashRole ||\r\n (apps.length === 1 && app_code?.toString().toLowerCase() === \"de\") ||\r\n (isObSetupUser && hasMd2Tile) ||\r\n logoutAction === \"true\";\r\n\r\n setAppState({\r\n ...appState,\r\n uid: uid,\r\n isLoading: isRedirect,\r\n preferred_language,\r\n isMd2Lite: isMd2LiteUser,\r\n isObSetup: isObSetupUser,\r\n profile: {\r\n firstName: stripHtmlTags(first_name),\r\n lastName: stripHtmlTags(last_name),\r\n displayName: display_name,\r\n businessPhone: contact_phone,\r\n userPhone: mobile_phone,\r\n userEmail: email,\r\n businessExtension: contact_phone_ext,\r\n firstSignIn,\r\n mfa: mfa,\r\n passLastChange: password_last_change_date,\r\n passExpiry: password_exp_date,\r\n secQuestionlastUpdate: questions_last_change_date,\r\n },\r\n apps,\r\n hasPartnerRole,\r\n hasSharedCashRole,\r\n });\r\n } else {\r\n setAppState({\r\n ...appState,\r\n uid: uid,\r\n isLoading: isRedirect,\r\n });\r\n }\r\n };\r\n\r\n const updateAppState = async (payload) => {\r\n const {\r\n type = \"\",\r\n body = {},\r\n uid: uidNew = \"\",\r\n postCallHandler = () => null,\r\n } = payload;\r\n const { uid = uidNew } = appState;\r\n let url = \"\";\r\n let response = {};\r\n switch (type) {\r\n case userActions.fetchUserInfo: {\r\n url = apiList[userActions.fetchUserInfo];\r\n response = await getData({\r\n body: { ...body, user_id: uid, origin },\r\n method: methodType.post,\r\n url,\r\n tokenhandler: () => getToken(instance, inProgress, accounts),\r\n isSecured: true,\r\n });\r\n const { user = \"\", success = false } = response?.data ?? {};\r\n if (success) {\r\n const {\r\n first_name = \"\",\r\n last_name = \"\",\r\n mobile_phone = \"\",\r\n email = \"\",\r\n display_name = \"\",\r\n mfa = {},\r\n preferred_language = \"en\",\r\n contact_phone = \"\",\r\n contact_phone_ext = \"\",\r\n password_last_change_date = null,\r\n password_exp_date = null,\r\n questions_last_change_date = null,\r\n hasPartnerRole,\r\n hasSharedCashRole\r\n } = user;\r\n window.localStorage.setItem(\r\n \"lang\",\r\n String(preferred_language).toLowerCase()\r\n );\r\n setAppState({\r\n ...appState,\r\n preferred_language,\r\n isLoading: false,\r\n hasPartnerRole,\r\n hasSharedCashRole,\r\n profile: {\r\n firstName: stripHtmlTags(first_name),\r\n lastName: stripHtmlTags(last_name),\r\n displayName: display_name,\r\n businessPhone: contact_phone,\r\n userPhone: mobile_phone,\r\n userEmail: email,\r\n businessExtension: contact_phone_ext,\r\n mfa: mfa,\r\n passLastChange: password_last_change_date,\r\n passExpiry: password_exp_date,\r\n secQuestionlastUpdate: questions_last_change_date,\r\n },\r\n });\r\n } else {\r\n setAppState({\r\n ...appState,\r\n isLoading: false,\r\n });\r\n }\r\n break;\r\n }\r\n case userActions.getAppIds: {\r\n const myAccounts = instance.getAllAccounts() ?? [];\r\n const accountObj = myAccounts[0] ?? {};\r\n const { name = \"\" } = accountObj;\r\n setAppState({ ...appState, firstName: stripHtmlTags(name) });\r\n break;\r\n }\r\n case userActions.updateUserInfo: {\r\n url = apiList[userActions.updateUserInfo];\r\n updateAppStateLocal({ ...appState, isLoading: true });\r\n response = await getData({\r\n body: { ...body, user_id: uid, origin },\r\n method: methodType.post,\r\n url,\r\n tokenhandler: () => getToken(instance, inProgress, accounts),\r\n isSecured: true,\r\n });\r\n if (response.data.success) {\r\n console.log(\"lang synced successful\");\r\n } else {\r\n console.log(\"lang sync unsuccessful\");\r\n }\r\n\r\n break;\r\n }\r\n case userActions.middlewareLogout: {\r\n const url = apiList[userActions.middlewareLogout];\r\n const { email = \"\" } = body;\r\n setAppState({\r\n ...appState,\r\n isLoading: true,\r\n });\r\n response = await getData({\r\n body: {},\r\n method: methodType.get,\r\n url: `${url}?email=${email}`,\r\n isWithCredentials: false,\r\n });\r\n if (response.status === 200) {\r\n console.log(\"logout successful\");\r\n postCallHandler();\r\n setAppState({\r\n ...appState,\r\n isLoading: false,\r\n });\r\n } else {\r\n console.log(\"error logging out user\");\r\n postCallHandler();\r\n setAppState({\r\n ...appState,\r\n isLoading: false,\r\n });\r\n }\r\n\r\n break;\r\n }\r\n case userActions.ssoSessionCheck: {\r\n const url = apiList[userActions.ssoSessionCheck];\r\n const { email = \"\" } = body;\r\n setAppState({\r\n ...appState,\r\n isLoading: true,\r\n });\r\n response = await getData({\r\n body: {},\r\n method: methodType.get,\r\n url: `${url}?email=${email}&action=clear`,\r\n isWithCredentials: false,\r\n });\r\n if (response.status === 200) {\r\n console.log(\"sso logout successful\");\r\n postCallHandler();\r\n setAppState({\r\n ...appState,\r\n isLoading: false,\r\n });\r\n } else {\r\n console.log(\"error logging out sso user\");\r\n setAppState({\r\n ...appState,\r\n isLoading: false,\r\n });\r\n }\r\n\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const updateAppStateLocal = (obj = null) =>\r\n setAppState((prevAppState) => ({ ...prevAppState, ...obj }));\r\n\r\n const value = { appState, updateAppState, updateAppStateLocal, getUserData };\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nfunction useAppStateProvider() {\r\n const context = React.useContext(AppStateContext);\r\n if (context === undefined) {\r\n throw new Error(\"appContext must be used within a AppStateProvider\");\r\n }\r\n return context;\r\n}\r\n\r\nexport { AppStateProvider, AppStateContext, useAppStateProvider };\r\n","import React, { useState } from \"react\";\r\nimport authApi from \"./auth-api\";\r\nimport { userActions, apiList, methodType } from \"./constant\";\r\nimport { useAppStateProvider } from \"./AppStateProvider\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\nimport getToken from \"../util/tokenGenerator\";\r\n\r\nconst InfoContext = React.createContext();\r\n\r\nconst getData = async ({\r\n body = {},\r\n url = \"\",\r\n method = methodType.post,\r\n tokenhandler = () => null,\r\n isSecured = false,\r\n}) => {\r\n let response = await authApi({ body, method, url, tokenhandler, isSecured });\r\n return response;\r\n};\r\n\r\nconst handleAppState = async (handler) => {\r\n await handler({ type: userActions.fetchUserInfo, body: {} });\r\n};\r\n\r\nfunction InfoProvider({ children }) {\r\n const { instance, inProgress, accounts } = useMsal();\r\n const [userInfo, setUserInfo] = useState({});\r\n const [callStatus, setCallStatus] = useState({ type: \"\", status: null });\r\n const [apiStatus, setApiStatus] = useState({ type: \"\", val: {} });\r\n const {\r\n appState = {},\r\n updateAppState,\r\n updateAppStateLocal,\r\n } = useAppStateProvider();\r\n\r\n const dispatch = async (payload) => {\r\n const { type = \"\", body = {}, postCallHandler = () => null } = payload;\r\n let url = \"\";\r\n const origin = \"settings\";\r\n setCallStatus({ type, status: null });\r\n setApiStatus({ type, val: {} });\r\n const nonce = \"abcd1234\";\r\n let response;\r\n const { uid = \"\", profile } = appState;\r\n const { userEmail = null } = profile;\r\n switch (type) {\r\n case userActions.updateUserInfo: {\r\n url = apiList[userActions.updateUserInfo];\r\n updateAppStateLocal({ ...appState, isLoading: true });\r\n response = await getData({\r\n body: { ...body, user_id: uid, origin },\r\n method: methodType.post,\r\n url,\r\n tokenhandler: () => getToken(instance, inProgress, accounts),\r\n isSecured: true,\r\n });\r\n setUserInfo({ ...userInfo });\r\n if (response.data.success) {\r\n await handleAppState(updateAppState);\r\n setCallStatus({ ...callStatus, type, status: true });\r\n postCallHandler();\r\n updateAppStateLocal({ isLoading: false });\r\n } else {\r\n updateAppStateLocal({ isLoading: false });\r\n setCallStatus({ ...callStatus, type, status: false });\r\n }\r\n\r\n break;\r\n }\r\n case userActions.sendMfaCode: {\r\n url = apiList[userActions.sendMfaCode];\r\n response = await getData({\r\n body: { ...body, user_id: uid, nonce, origin },\r\n method: methodType.post,\r\n url,\r\n tokenhandler: () => getToken(instance, inProgress, accounts),\r\n isSecured: true,\r\n });\r\n setUserInfo({ ...userInfo });\r\n if (response.data.success) {\r\n const { data = {} } = response;\r\n const { mfa_token = \"\" } = data;\r\n await handleAppState(updateAppState);\r\n setCallStatus({ ...callStatus, type, status: true });\r\n setApiStatus({ type, val: { mfa_token } });\r\n postCallHandler();\r\n } else {\r\n setCallStatus({ ...callStatus, type, status: false });\r\n }\r\n break;\r\n }\r\n case userActions.sendTotpInfo: {\r\n url = apiList[userActions.sendTotpInfo];\r\n setUserInfo({ ...userInfo, securityInfo: {} });\r\n response = await getData({\r\n body: { ...body, userId: uid, nonce, origin },\r\n method: methodType.post,\r\n url,\r\n tokenhandler: () => getToken(instance, inProgress, accounts),\r\n isSecured: true,\r\n });\r\n if (response.data.success) {\r\n setCallStatus({ ...callStatus, type, status: true });\r\n setUserInfo({ ...userInfo, securityInfo: response.data });\r\n postCallHandler();\r\n } else {\r\n setCallStatus({ ...callStatus, type, status: false });\r\n }\r\n\r\n break;\r\n }\r\n case userActions.verifyTotpCode: {\r\n url = apiList[userActions.verifyTotpCode];\r\n const { val = {} } = apiStatus;\r\n const { mfa_token = \"\" } = val;\r\n const initResponse = await getData({\r\n url: apiList[userActions.totpInitCall],\r\n body: { userId: uid, nonce, origin },\r\n tokenhandler: () => getToken(instance, inProgress, accounts),\r\n isSecured: true,\r\n });\r\n if (initResponse?.data?.success) {\r\n const { tag = \"\" } = initResponse?.data;\r\n response = await getData({\r\n body: { ...body, userId: uid, nonce, mfa_token, tag, origin },\r\n method: methodType.post,\r\n url,\r\n tokenhandler: () => getToken(instance, inProgress, accounts),\r\n isSecured: true,\r\n });\r\n if (response.data.success) {\r\n setCallStatus({ ...callStatus, type, status: true });\r\n await handleAppState(updateAppState);\r\n postCallHandler(\"totp\");\r\n } else {\r\n setCallStatus({ ...callStatus, type, status: false });\r\n }\r\n }\r\n\r\n setUserInfo({ ...userInfo });\r\n break;\r\n }\r\n case userActions.verifyMfaCode: {\r\n url = apiList[userActions.verifyMfaCode];\r\n const { val = {} } = apiStatus;\r\n const { mfa_token = \"\" } = val;\r\n response = await getData({\r\n body: { ...body, user_id: uid, nonce, mfa_token, origin },\r\n method: methodType.post,\r\n url,\r\n tokenhandler: () => getToken(instance, inProgress, accounts),\r\n isSecured: true,\r\n });\r\n if (response.data.success) {\r\n await handleAppState(updateAppState);\r\n setCallStatus({ ...callStatus, type, status: true });\r\n postCallHandler(\"phone\");\r\n } else {\r\n setCallStatus({ ...callStatus, type, status: false });\r\n }\r\n setUserInfo(response);\r\n break;\r\n }\r\n case userActions.resetTotp: {\r\n url = apiList[userActions.resetTotp];\r\n response = await getData({\r\n body: { ...body, userId: uid, nonce, origin },\r\n method: methodType.post,\r\n url,\r\n tokenhandler: () => getToken(instance, inProgress, accounts),\r\n isSecured: true,\r\n });\r\n if (response.data.success) {\r\n await handleAppState(updateAppState);\r\n setCallStatus({ ...callStatus, type, status: true });\r\n postCallHandler();\r\n } else {\r\n setCallStatus({ ...callStatus, type, status: false });\r\n }\r\n setUserInfo(response);\r\n break;\r\n }\r\n case userActions.auditLog: {\r\n url = apiList[userActions.auditLog];\r\n await getData({\r\n body: {\r\n ...body,\r\n userId: uid,\r\n userEmail: userEmail,\r\n auditEvent: \"landingPageAccess\",\r\n origin,\r\n },\r\n method: methodType.post,\r\n url,\r\n tokenhandler: () => getToken(instance, inProgress, accounts),\r\n isSecured: true,\r\n });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const value = { userInfo, callStatus, dispatch };\r\n return {children};\r\n}\r\n\r\nfunction useInfoProvider() {\r\n const context = React.useContext(InfoContext);\r\n if (context === undefined) {\r\n throw new Error(\"InfoContext must be used within a InfoProvider\");\r\n }\r\n return context;\r\n}\r\n\r\nexport { InfoProvider, InfoContext, useInfoProvider };\r\n","function handleWindowPopUp(url, target = \"_blank\") {\r\n const n = window.open(url, target);\r\n if (!n || n.closed || typeof n.closed=='undefined') {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nexport default handleWindowPopUp;\r\n","import React, { useState } from \"react\";\r\nimport { useAppStateProvider } from \"./AppStateProvider\";\r\nimport authApi from \"./auth-api\";\r\nimport { userActions, apiList, methodType, clinetIds } from \"./constant\";\r\nimport { env } from \"../cfg/env\";\r\nimport handleWindowPopUp from \"../util/handleWindowPopup\";\r\n\r\nconst AppLaunchContext = React.createContext();\r\n\r\nconst getData = async ({\r\n body = {},\r\n url = \"\",\r\n method = methodType.post,\r\n contentType,\r\n isWithCredentials = false,\r\n}) => {\r\n let response = await authApi({\r\n body,\r\n method,\r\n url,\r\n contentType,\r\n isWithCredentials,\r\n });\r\n return response;\r\n};\r\n\r\nfunction AppLaunchProvider({ children }) {\r\n const [appLaunchState, setAppLaunchState] = useState({\r\n isError: false,\r\n isLoading: false,\r\n isRedirected: false,\r\n });\r\n\r\n const { updateAppStateLocal } = useAppStateProvider();\r\n\r\n const updateAppLaunchState = async (payload) => {\r\n const { type = \"\" } = payload;\r\n const appEnv = (env?.appEnv ?? \"\").toString().toLowerCase();\r\n const appRedirect = encodeURIComponent(env.sso.authClientRedirect ?? \"\");\r\n const client_id = clinetIds[\"mogo\"][appEnv];\r\n const code_challenge = \"4Y-TkN3wGIruLHPrtUjvn8pYRys80BlLdgTiipyNmhs\";\r\n const url = apiList[type];\r\n switch (type) {\r\n case userActions.authorizeClient: {\r\n const queryParameters = `?client_id=${client_id}&response_type=code&redirect_uri=${appRedirect}&response_mode=query&state=MOGO&scope=offline_access ${client_id} openid&code_challenge=${code_challenge}&code_challenge_method=plain&nonce=defaultNonce`;\r\n window.open(url + queryParameters, \"_self\");\r\n break;\r\n }\r\n case userActions.authToken: {\r\n setAppLaunchState({ ...appLaunchState, isLoading: true });\r\n const { body } = payload;\r\n const { code = \"\", redirectUrl = null, lang = \"en\" } = body;\r\n const data = {\r\n method: \"POST\",\r\n contentType: \"application/x-www-form-urlencoded\",\r\n body: `code=${code}&grant_type=authorization_code&scope=offline_access%20${client_id}%20openid&client_id=${client_id}&redirect_uri=${appRedirect}&code_verifier=${code_challenge}`,\r\n url: url,\r\n };\r\n const resp = await getData(data);\r\n setAppLaunchState({ ...appLaunchState, isLoading: false });\r\n\r\n // incase cors issue, resp is undefined\r\n if (!resp) {\r\n setAppLaunchState({ ...appLaunchState, isError: true });\r\n }\r\n\r\n const { status = null, data: respData = {} } = resp || {};\r\n if (status === 200) {\r\n setAppLaunchState({ ...appLaunchState, isLoading: false });\r\n const { id_token = \"\" } = respData;\r\n if (id_token !== \"\" && redirectUrl !== null) {\r\n // session tracking for moneris go\r\n window.sessionStorage.setItem(\"activeSession\", true);\r\n window.localStorage.setItem(\"activeApp\", \"mogo\");\r\n setAppLaunchState({ ...appLaunchState, isRedirected: true });\r\n // removing lang MS-471\r\n const isRedirected = handleWindowPopUp(\r\n `${redirectUrl}?token=${id_token}`,\r\n \"_self\"\r\n );\r\n if (!isRedirected) {\r\n updateAppStateLocal({ isPopUpBlocked: true });\r\n window.sessionStorage.setItem(\"isPopUpBlocked\", true);\r\n }\r\n } else {\r\n setAppLaunchState({ ...appLaunchState, isError: true });\r\n }\r\n } else {\r\n setAppLaunchState({ ...appLaunchState, isError: true });\r\n }\r\n\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const updateAppLaunchStateLocal = (obj = {}) =>\r\n setAppLaunchState((prevAppState) => ({ ...prevAppState, ...obj }));\r\n\r\n const value = {\r\n updateAppLaunchState,\r\n appLaunchState,\r\n updateAppLaunchStateLocal,\r\n };\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nfunction useAppLaunchProvider() {\r\n const context = React.useContext(AppLaunchContext);\r\n if (context === undefined) {\r\n throw new Error(\"appContext must be used within a AppLaunchProvider\");\r\n }\r\n return context;\r\n}\r\n\r\nexport { AppLaunchProvider, AppLaunchContext, useAppLaunchProvider };\r\n","/**\r\n * @typedef {{\r\n * en: Object.,\r\n * fr: Object.\r\n * }} Translation\r\n */\r\n\r\n/**\r\n * Returns partial function that attempts to find the key in the ebject(s) passed to return\r\n * the tranlated value with respect to user lang in redux.\r\n * If unable to find, checks default message library.\r\n * If still unable to find the matching key, returns the key\r\n * @param {Translation} translateFiles\r\n * @returns {Function} Partial function\r\n * // Second function\r\n * @param {String} key\r\n * @returns {String} Translated string with regards to language\r\n */\r\n\r\nexport default function createTranslator(translation, lang = null) {\r\n let language = lang ?? window.localStorage.getItem(\"lang\") ?? \"en\";\r\n language = language?.toLowerCase();\r\n return (key) => {\r\n return translation?.[language]?.[key] ?? key;\r\n };\r\n}\r\n","/*eslint-disable*/\r\nconst error = {\r\n en: {\r\n page_moved: 'Sorry, looks like this page has moved.',\r\n home: 'Home'\r\n },\r\n\r\n fr: {\r\n page_moved: \"Une erreur s'est produite. La page a été déplacée.\",\r\n home: 'Accueil'\r\n }\r\n};\r\n\r\nexport default error;\r\n","/* eslint-disable */\r\nimport React from \"react\";\r\nimport createTranslator from \"../../util/translationHelper\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { PrimaryButton } from \"@moneris-portal/button\";\r\nimport messages from \"./Translations/messages\";\r\n\r\nimport \"./index.scss\";\r\n\r\nfunction NotFound({ lang }) {\r\n const history = useHistory();\r\n\r\n const handleHomeNavigation = () => {\r\n history.push(`/${lang}/home`);\r\n };\r\n\r\n const translate = createTranslator(messages, lang);\r\n return (\r\n
\r\n
\r\n

{translate(\"page_moved\")}

\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nNotFound.defaultProps = {\r\n // message: null\r\n};\r\n\r\nNotFound.propTypes = {\r\n // message: PropTypes.any\r\n};\r\n\r\nexport default NotFound;\r\n","/*eslint-disable*/\r\nconst error = {\r\n en: {\r\n sign_up_message: 'Please Logout before creating a new account.',\r\n logout: 'Logout'\r\n },\r\n\r\n fr: {\r\n sign_up_message: 'Veuillez vous déconnecter avant de créer un nouveau compte.',\r\n logout: 'Déconnexion'\r\n }\r\n};\r\n\r\nexport default error;\r\n","/* eslint-disable */\r\nimport React, { useEffect, useState } from \"react\";\r\nimport createTranslator from \"../../util/translationHelper\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { PrimaryButton } from \"@moneris-portal/button\";\r\nimport { useAppStateProvider } from \"../../contextProviders/AppStateProvider\";\r\nimport Loader from \"@moneris-portal/loader\";\r\nimport messages from \"./Translations/messages\";\r\n\r\nimport \"./index.scss\";\r\n\r\nfunction SignUp({ lang }) {\r\n const [loading, resetLoading] = useState(true);\r\n const history = useHistory();\r\n const { instance, accounts } = useMsal();\r\n const homeAccountId = accounts[0]?.homeAccountId ?? \"\";\r\n const { appState = {}, updateAppStateLocal } = useAppStateProvider();\r\n const logoutRequest = {\r\n account: instance.getAccountByHomeId(homeAccountId),\r\n };\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n resetLoading(false);\r\n }, 3000);\r\n }, []);\r\n\r\n const handleHomeNavigation = () => {\r\n var now = new Date();\r\n var time = now.getTime();\r\n var expireTime = time + 1000 * 120;\r\n now.setTime(expireTime);\r\n const domain = /local/.test(window.location.host)\r\n ? \"localhost\"\r\n : \"moneris.com\";\r\n document.cookie = `action=signUp; expires=+${now.toUTCString()}+;domain=${domain};path=/`;\r\n instance.logoutRedirect(logoutRequest);\r\n };\r\n\r\n const translate = createTranslator(messages, lang);\r\n return (\r\n
\r\n {loading ? (\r\n \r\n ) : (\r\n
\r\n

{translate(\"sign_up_message\")}

\r\n \r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nSignUp.defaultProps = {\r\n // message: null\r\n};\r\n\r\nSignUp.propTypes = {\r\n // message: PropTypes.any\r\n};\r\n\r\nexport default SignUp;\r\n","export const isEqual = (a, b, map = new Map()) => {\r\n if (a === b) return true;\r\n if (map.has(a) && map.get(a) === b) return true;\r\n map.set(a, b);\r\n\r\n if (typeof a === \"object\" && typeof b === \"object\") {\r\n const a_keys = Object.keys(a);\r\n const b_keys = Object.keys(b);\r\n if (a_keys.length !== b_keys.length) return false;\r\n for (let i = 0; i < a_keys.length; i++) {\r\n if (a_keys[i] !== b_keys[i]) return false;\r\n if (!isEqual(a[a_keys[i]], b[b_keys[i]], map)) return false;\r\n }\r\n return true;\r\n }\r\n return false;\r\n};\r\n","import * as Yup from \"yup\";\r\n\r\nexport const FIELD_ENUM = {\r\n pin: \"pin\",\r\n};\r\n\r\nexport const validation = {\r\n [FIELD_ENUM.pin]: Yup.string().trim().required(\"error_code_match\"),\r\n};\r\n","import QRCode from 'qrcode';\r\n\r\nfunction QrCodeGenerator(cb, secret, username) {\r\n const opts = {\r\n errorCorrectionLevel: 'H',\r\n type: 'image/jpeg',\r\n quality: 0.3,\r\n margin: 1,\r\n color: {\r\n dark: '#051D33',\r\n light: '#ffffff'\r\n }\r\n };\r\n const formattedMessage = secret;\r\n\r\n if (secret)\r\n QRCode.toDataURL(formattedMessage, opts, function(err, url) {\r\n if (err) throw err;\r\n cb(err, url);\r\n });\r\n else{\r\n cb('missing secret',null)\r\n }\r\n}\r\n\r\nexport default QrCodeGenerator;\r\n","/*eslint-disable*/\r\nconst security = {\r\n en: {\r\n user_profile: \"User profile\",\r\n user_id: \"User ID\",\r\n user_first_name: \"First name\",\r\n user_last_name: \"Last name\",\r\n user_phone_number: \"User phone number\",\r\n update: \"Update\",\r\n cancel: \"Cancel\",\r\n contact_phone_number: \"Contact phone number\",\r\n edit: \"Edit\",\r\n mobile_phone_number: \"Mobile phone number\",\r\n confirm_email: \"Confirm email address\",\r\n add_mobile_number: \"Add mobile number\",\r\n add_email: \"Add Email\",\r\n security: \"Security\",\r\n two_factor_authentication: \"Two-factor authentication\",\r\n enable_two_factor: \"Enable two-factor authentication\",\r\n methods: \"Select 2FA method\",\r\n authenticator: \"Authenticator App\",\r\n enable_tooltip:\r\n \"Enable two-factor authentication to increase the security of your Moneris account.\",\r\n set_authenticator_app: \"Set-up Authenticator App\",\r\n set_authenticator_app_line1: \"Two-factor authentication is now enabled.\",\r\n set_authenticator_app_line2:\r\n \"Moneris recommends you set up an authenticator app. If you do not want to use an app, you can still authenticate using SMS or email.\",\r\n set_authenticator_app_line3:\r\n \"Would you like to set-up an authenticator app now?\",\r\n yes: \"Yes\",\r\n not_now: \"Not Now\",\r\n authenticator_app_setup: \"Authenticator App Setup\",\r\n authenticator_app_setup_line1:\r\n \"Two-factor authentication increases the security of your Moneris account. Setting up an authenticator app is the recommended method to authenticate. If you do not want to set-up an app, you can still authenticate using SMS or email.\",\r\n step1: \"Step 1 - Install Authenticator App\",\r\n step1_text1: \"Install an authenticator app compatible with your device.\",\r\n step1_text2:\r\n \"Suggested Authenticator Apps: Google, LastPass, Microsoft, Entrust, ...\",\r\n step2: \"Step 2 - Scan\",\r\n step2_text1: \"Scan the following QR Code with your authenticator app.\",\r\n step2_text2:\r\n \"If you cannot scan the QR Code, enter this code into your authenticator app.\",\r\n step3: \"Step 3 - Verify\",\r\n step3_text1:\r\n \"Enter the verification code generated by your authenticator app.\",\r\n verify: \"Verify\",\r\n disable_two_factor: \"Disable Two-Factor Authentication\",\r\n disable_two_factor_text1:\r\n \"Disabling two-factor authentication will remove the authenticator app currently linked to your user account.\",\r\n disable_two_factor_text2:\r\n \"Are you sure you want to disable two-factor authentication?\",\r\n yes_disable: \"Yes, Disable\",\r\n no: \"No\",\r\n text_message: \"Text message (SMS)\",\r\n change_mobile: \"Change Mobile Number\",\r\n change_email: \"Change Email\",\r\n email: \"Email\",\r\n copy: \"Copy\",\r\n setup: \"Set-up\",\r\n remove_app: \"Remove app\",\r\n authenticator_app_tooltip:\r\n \"Set-up an authenticator app on your mobile phone to authenticate your identity\",\r\n unsaved_changes: \"Unsaved Changes\",\r\n unsaved_changes_body1: \"You have unsaved changes.\",\r\n unsaved_changes_body2: \"How would you like to proceed?\",\r\n continue_editing: \"Continue editing\",\r\n discard: \"Discard\",\r\n password: \"Password\",\r\n change: \"Change password\",\r\n last_change: \"Last changed\",\r\n date_expiry: \"Date of expiry\",\r\n date_expiry_tooltip: \"Your password will expire every 90 days\",\r\n update_password: \"Update Password\",\r\n create_new_password: \"Create a new password.\",\r\n current_password: \"Current password\",\r\n new_password: \"New password\",\r\n confirm_new_password: \"Confirm new password\",\r\n characters: \"10 or more characters\",\r\n upper_characters: \"Upper & lower case characters\",\r\n number: \"At least one number\",\r\n password_match: \"New passwords match\",\r\n note: \"Note:\",\r\n last_four: \"You cannot reuse one of your last four passwords.\",\r\n submit: \"Submit\",\r\n empty_check1: \"Current password cannot be empty.\",\r\n error_invalid_code: \"Invalid code, try again.\",\r\n error_something_wrong: \"Something went wrong, try again.\",\r\n error_valid_email: \"Enter a valid email address.\",\r\n error_valid_phone: \"Enter a valid 10 digit phone number.\",\r\n yes_remove: \"Yes, Remove\",\r\n error_phone_taken: \"Phone has already been taken, try again.\",\r\n error_phone_update: \"Error updating phone.\",\r\n sent_code: \"We have sent a code to\",\r\n verify_mobile: \"Verify Mobile Phone Number\",\r\n verify_email: \"Verify Email Address\",\r\n error_unable_qrcode: \"Unable to retrive the QR code and security key.\",\r\n error_code_match: \"Code doesn’t match our files, try again.\",\r\n remove_authenticator:\r\n \"Are you sure you want to remove the authenticator app linked to your user account?\",\r\n remove_authenticator_app: \"Remove Authenticator App\",\r\n success_update: \"successfully updated.\",\r\n success_update_profile: \"successfully updated.\",\r\n error_updating: \"Error updating\",\r\n error_updating_profile: \"Error updating\",\r\n error_code_exipred: \"Your verification code has expired, try again.\",\r\n code_update_profile: \"Enter the code below to update your profile.\",\r\n code_expires: \"The code expires in 10 minutes.\",\r\n error_email_match: \"Email addresses do not match.\",\r\n error_email_taken: \"Email address has already been taken, try again.\",\r\n error_email_update: \"Error updating email address.\",\r\n phone_number: \"phone number\",\r\n days_remaining: \"days remaining\",\r\n error_two_factor_authentication: \"Two-factor authentication\",\r\n error_email: \"email\",\r\n profile: \"profile\",\r\n error_password: \"password\",\r\n ext: \"Ext.\",\r\n email_address: \"Email address\",\r\n error_first_name: \"First name cannot be empty.\",\r\n error_name_format: \"Digits and special characters are not valid.\",\r\n error_last_name: \"Last name cannot be empty.\",\r\n error_phone_number: \"Phone number cannot be empty.\",\r\n error_ext: \"Enter valid Ext.\",\r\n phone_placeholder: \"eg. 999-999-9999\",\r\n ext_placeholder: \"eg. 123\",\r\n email_placeholder: \"eg. email@example.com\",\r\n email_notification: \"Email notifications\",\r\n dispute_notification_tooltip:\r\n \"Notify me when I receive cardholder disputes that require my attention.\",\r\n notification_email_address: \"Notification email address\",\r\n preferred_lang: \"Notification language\",\r\n crd_dispute_notification: \"Cardholder dispute notifications\",\r\n chargeback: \"Chargeback(s)\",\r\n self_serve_banking_eligibility_success_msg:\r\n \"Update bank account successfully update\",\r\n self_serve_banking_eligibility_failure_msg:\r\n \"Unable to update update bank account\",\r\n copy_rqst: \"Copy request(s) \",\r\n refund_success_msg: \"Process refund successfully update\",\r\n refund_failure_msg: \"Unable to update Process refund\",\r\n self_serve_contact_update_success_msg:\r\n \"Update profile successfully updated\",\r\n self_serve_contact_update_failure_msg: \"Unable to update update profile\",\r\n tooltip_message_info_radiobutton_phone:\r\n \"You must click the set-up button before 2FA can be enabled\",\r\n tooltip_message_info_radiobutton_2fa:\r\n \"You must click the set-up button before 2FA can be enabled\",\r\n\r\n totp_failure_msg: \"Unable to remove the authenticator app, try again.\",\r\n totp_successful_msg: \"The authenticator app has been successfully removed\",\r\n\r\n two_fa_setup: \"Two Factor Authenticator App Set-up\",\r\n verify_code: \"Verify Code\",\r\n mobile_two_fa_setup: \"Mobile Two Factor Authentication Set-up\",\r\n use_your_mobile_phone_number:\r\n \"Use your mobile phone number to verify this device.\",\r\n verification_code: \"Verification Code\",\r\n copy_the_verification_code:\r\n \"Copy the verification code into the input box below.\",\r\n sec_question_title: \"Security questions\",\r\n sec_question_label: \"Security questions\",\r\n sec_question_button_label: \"Change security questions\",\r\n sec_question:\"Security questions\"\r\n },\r\n\r\n fr: {\r\n user_profile: \"Profil de l'utilisateur\",\r\n user_id: \"ID d'utilisateur\",\r\n user_first_name: \"Prénom\",\r\n user_last_name: \"Nom de famille\",\r\n user_phone_number: \"Numéro de téléphone de l’utilisateur\",\r\n update: \"Mettre à jour\",\r\n cancel: \"Annuler\",\r\n contact_phone_number: \"Numéro de téléphone\",\r\n ext: \"Poste\",\r\n edit: \"Modifier\",\r\n mobile_phone_number: \"Numéro de téléphone cellulaire\",\r\n confirm_email: \"Confirmation de l’adresse courriel de l’utilisateur\",\r\n add_mobile_number: \"Ajouter un numéro de téléphone cellulaire\",\r\n add_email: \"Ajoutez le courriel\",\r\n security: \"Sécurité\",\r\n two_factor_authentication: \"Authentification à deux facteurs\",\r\n enable_two_factor: \"Activer l'authentification à deux facteurs\",\r\n methods: \"Sélectionnez la méthode 2FA\",\r\n authenticator: \"de l’application d’authentification\",\r\n enable_tooltip:\r\n \"Activez l'authentification à deux facteurs pour augmenter la sécurité de votre compte Moneris.\",\r\n set_authenticator_app: \"Configurer l'application Authenticator\",\r\n set_authenticator_app_line1:\r\n \"L'authentification à deux facteurs est activée.\",\r\n set_authenticator_app_line2:\r\n \"Moneris vous recommande de configurer une application d'authentification. Si vous ne souhaitez pas utiliser une application, vous pouvez vous authentifier par SMS ou par courriel.\",\r\n set_authenticator_app_line3:\r\n \"Voulez-vous configurer une application d'authentification maintenant?\",\r\n yes: \"Oui\",\r\n not_now: \"Non, pas maintenant\",\r\n authenticator_app_setup:\r\n \"Configuration de l'application d'authentification\",\r\n authenticator_app_setup_line1:\r\n \"L'authentification à deux facteurs augmente la sécurité de votre compte Moneris. La configuration d'une application d'authentification est la méthode recommandée pour s'authentifier. Si vous ne souhaitez pas configurer d'application, vous pouvez toujours vous authentifier par SMS ou par courriel.\",\r\n step1: \"Étape 1 - Installation\",\r\n step1_text1:\r\n \"Installez une application d'authentification compatible avec votre appareil.\",\r\n step1_text2:\r\n \"Applications d'authentification recommandées : Google, LastPass, Microsoft, Entrust, etc.\",\r\n step2: \"Étape 2 - Scannez\",\r\n step2_text1:\r\n \"Scannez le code QR suivant avec votre application d'authentification.\",\r\n step2_text2:\r\n \"Si vous ne pouvez pas scanner le code QR, entrez ce code dans votre application d'authentification.\",\r\n step3: \"Étape 3 - Vérification\",\r\n step3_text1:\r\n \"Entrez le code de vérification généré par votre application d'authentification.\",\r\n verify: \"Vérifier\",\r\n disable_two_factor: \"Désactivation\",\r\n disable_two_factor_text1:\r\n \"La désactivation de l'authentification à deux facteurs supprimera l'application d'authentification qui est actuellement liée à votre compte d'utilisateur.\",\r\n disable_two_factor_text2:\r\n \"Souhaitez-vous vraiment désactiver l'authentification à deux facteurs?\",\r\n yes_disable: \"Oui, désactiver\",\r\n no: \"Non\",\r\n text_message: \"Message texte (SMS)\",\r\n change_mobile: \"Changer le numéro de téléphone cellulaire\",\r\n change_email: \"Changer l'adresse courriel\",\r\n email: \"Courriel\",\r\n copy: \"Copier\",\r\n setup: \"Configuration\",\r\n remove_app: \"Supprimer l’application\",\r\n authenticator_app_tooltip:\r\n \"Configurez une application d’authentification sur votre téléphone cellulaire pour confirmer votre identité.\",\r\n unsaved_changes: \"Changements non sauvegardés\",\r\n unsaved_changes_body1:\r\n \"Vous avez apporté des changements qui ne seront pas sauvegardés.\",\r\n unsaved_changes_body2: \"Comment souhaitez-vous procéder?\",\r\n continue_editing: \"Continuer à modifier\",\r\n discard: \"Ignorer les changements\",\r\n password: \"Mot de passe\",\r\n change: \"Modifier mot de passe\",\r\n last_change: \"Dernier changement\",\r\n date_expiry: \"Date d'expiration\",\r\n date_expiry_tooltip:\r\n \"Vous devrez modifier votre mot de passe tous les 90 jours.\",\r\n update_password: \"Modification du mot de passe \",\r\n create_new_password: \"Créez un nouveau mot de passe.\",\r\n current_password: \"Mot de passe actuel\",\r\n new_password: \"Nouveau mot de passe\",\r\n confirm_new_password: \"Confirmation du mot de passe\",\r\n characters: \"10 caractères ou plus\",\r\n upper_characters: \"Lettre majuscule et lettre minuscule\",\r\n number: \"Au moins un numéro\",\r\n password_match: \"Les nouveaux mots de passe sont identiques\",\r\n note: \"Remarque : \",\r\n last_four:\r\n \"Vous ne pouvez pas réutiliser l'un de vos quatre derniers mots de passe.\",\r\n submit: \"Soumettre\",\r\n empty_check1: \"Le champ du mot de passe actuel ne peut pas être vide.\",\r\n error_invalid_code: \"Code non valide. Veuillez réessayer.\",\r\n error_something_wrong:\r\n \"Une erreur c'est produit. Veuillez essayer de nouveau.\",\r\n error_valid_email: \"Veuillez entrer un courriel valide.\",\r\n yes_remove: \"Oui, supprimer\",\r\n error_phone_taken: \"Le téléphone a déjà été pris, essayez à nouveau.\",\r\n error_phone_update: \"Erreur de mise à jour du téléphone.\",\r\n sent_code: \"Nous avons envoyé un code à\",\r\n verify_mobile: \"Vérifier le numéro de téléphone mobile\",\r\n verify_email: \"Vérifier adresse de courriel\",\r\n error_unable_qrcode:\r\n \"Impossible de récupérer le code QR et la clé de sécurité.\",\r\n error_code_match:\r\n \"Le code ne correspond pas à celui dans nos dossiers. Veuillez réessayer.\",\r\n remove_authenticator:\r\n \"Êtes-vous sûr de vouloir supprimer l’application d’authentification liée à votre compte utilisateur ?\",\r\n remove_authenticator_app: \"Supprimer l’application Authenticator\",\r\n success_update: \"a été mise à jour avec succès.\",\r\n success_update_profile: \"a été mis à jour avec succès.\",\r\n error_updating: \"Une erreur s’est produite lors de la mise à jour\",\r\n error_updating_profile: \"Une erreur s’est produite lors de la mis à jour\",\r\n error_code_exipred: \"Votre code de vérification a expiré, réessayez.\",\r\n code_update_profile:\r\n \"Entrez le code ci-dessous pour mettre à jour votre profil.\",\r\n code_expires: \"Le code expire dans 10 minutes.\",\r\n error_email_match:\r\n \"L’adresse courriel ne correspond pas à celle que vous avez entrée plus haut.\",\r\n error_email_taken:\r\n \"Cette adresse courriel a déjà été utilisée. Veuillez réessayer.\",\r\n error_email_update:\r\n \"Erreur lors de la mise à jour de l'adresse de courriel.\",\r\n phone_number: \"le numéro de téléphone\",\r\n days_remaining: \"jours restants\",\r\n error_two_factor_authentication: \"authentification à deux facteurs\",\r\n error_email: \"l'adresse courriel\",\r\n profile: \"le profil de l’utilisateur\",\r\n error_password: \"mot de passe\",\r\n email_address: \"Adresse courriel\",\r\n error_first_name: \"Le champ du prénom ne peut pas être vide.\",\r\n error_name_format:\r\n \"Les chiffres et les caractères spéciaux ne sont pas valides\",\r\n error_last_name: \"Le champ du nom de famille ne peut pas être vide.\",\r\n error_phone_number:\r\n \"Le champ du numéro de téléphone ne peut pas être vide.\",\r\n error_valid_phone: \"Veuillez entrer un numéro de téléphone à 10 chiffres.\",\r\n error_ext: \"Entrez un poste valide.\",\r\n phone_placeholder: \"p. ex. 999 999-9999\",\r\n ext_placeholder: \"p. ex. 123\",\r\n email_placeholder: \"p. ex. courriel@exemple.com\",\r\n email_notification: \"Notifications par courriel\",\r\n notification_email_address: \"Adresse courriel pour les notifications\",\r\n dispute_notification_tooltip:\r\n \"Informez-moi lorsque je reçois des différends du titulaire de carte qui nécessitent mon attention.\",\r\n preferred_lang: \"Langue des notifications\",\r\n crd_dispute_notification: `Avis de différend du titulaire de carte`,\r\n chargeback: `Débit(s) compensatoire(s)`,\r\n self_serve_banking_eligibility_success_msg:\r\n \"Mise à jour du compte bancaire réussie\",\r\n self_serve_banking_eligibility_failure_msg:\r\n \"Impossible de mettre à jour le compte bancaire\",\r\n copy_rqst: \"Demande(s) de documentation\",\r\n refund_success_msg: \"Processus de remboursement mis à jour avec succès\",\r\n refund_failure_msg:\r\n \"Impossible de mettre à jour le processus du remboursement\",\r\n self_serve_contact_update_success_msg:\r\n \"Mettre à jour le profil mis à jour avec succès\",\r\n self_serve_contact_update_failure_msg:\r\n \"Impossible de mettre à jour le profil de mise à jour\",\r\n tooltip_message_info_radiobutton_phone:\r\n \"Vous devez cliquer sur le bouton modifier avant d'activer la fonction authentification à deux facteurs\",\r\n tooltip_message_info_radiobutton_2fa:\r\n \"Vous devez cliquer sur le bouton de configuration avant que l'option authentification à deux facteurs puisse être être activée.\",\r\n\r\n totp_failure_msg: \"Unable to remove the authenticator app, try again.\",\r\n totp_successful_msg: \"The authenticator app has been successfully removed\",\r\n\r\n two_fa_setup: \"Configuration de l'application Two Factor Authenticator\",\r\n verify_code: \"Vérifier le code\",\r\n mobile_two_fa_setup:\r\n \"Configuration de l'authentification mobile à deux facteurs\",\r\n use_your_mobile_phone_number:\r\n \"Utilisez votre numéro de téléphone mobile pour vérifier cet appareil.\",\r\n verification_code: \"Code de vérification\",\r\n copy_the_verification_code:\r\n \"Copiez le code de vérification dans le champ ci-dessous.\",\r\n sec_question_title: \"Questions de sécurité\",\r\n sec_question_label: \"Questions de sécurité\",\r\n sec_question_button_label: \"Changer les questions de sécurité\",\r\n sec_question:\"Questions de sécurité\"\r\n },\r\n};\r\n\r\nexport default security;\r\n","import React, { useCallback, useEffect, useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { useFormik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport copy from \"copy-to-clipboard\";\r\nimport { usePrevious } from \"@moneris-portal/package-helpers\";\r\nimport { PrimaryButton } from \"@moneris-portal/button\";\r\nimport ResponsiveModal from \"@moneris-portal/responsive-modal\";\r\nimport { TextInput } from \"@moneris-portal/input\";\r\nimport { SmoothCopyIcon } from \"@moneris-portal/svg-components\";\r\nimport { isEqual } from \"../../../../../util/object-parser\";\r\nimport { validation, FIELD_ENUM } from \"./utils\";\r\nimport QrCodeGenerator from \"../../../../Library/QrCodeGenerator\";\r\n\r\nimport createTranslator from \"../../../../../util/translationHelper\";\r\nimport messages from \"../../Translations/messages\";\r\n\r\nimport \"./index.scss\";\r\n\r\nconst AuthSetUpModal = ({\r\n showModal,\r\n handleModalVisibility,\r\n validatePin,\r\n fetchTotpSecret,\r\n totpSecret,\r\n totpSecretFetchErrorFlag,\r\n userName,\r\n otpUri,\r\n}) => {\r\n const prevProps = usePrevious({ totpSecret });\r\n\r\n const [submitting, setSubmitting] = useState(false);\r\n const [qrUrl, setQrUrl] = useState(null);\r\n\r\n useEffect(() => {\r\n fetchTotpSecret();\r\n }, []);\r\n\r\n const getQrCode = (err, urlArg) => {\r\n if (err) {\r\n console.error(err);\r\n }\r\n\r\n setQrUrl(urlArg);\r\n };\r\n\r\n useEffect(() => {\r\n if (prevProps?.totpSecret !== totpSecret) {\r\n QrCodeGenerator(getQrCode, otpUri, userName);\r\n }\r\n }, [totpSecret]);\r\n\r\n const initialFormValues = {\r\n [FIELD_ENUM.pin]: \"\",\r\n };\r\n\r\n const getValidationShape = useCallback(() => {\r\n const validationShape = {\r\n pin: validation[FIELD_ENUM.pin],\r\n };\r\n\r\n return Yup.object().shape(validationShape);\r\n }, []);\r\n\r\n const onSubmit = () => {\r\n const { pin } = values;\r\n setSubmitting(true);\r\n validatePin({ pin, method: \"app\" });\r\n };\r\n\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n setFieldValue,\r\n handleSubmit,\r\n isValid,\r\n setFieldTouched,\r\n } = useFormik({\r\n initialValues: initialFormValues,\r\n onSubmit,\r\n validationSchema: getValidationShape(),\r\n enableReinitialize: true,\r\n validateOnMount: true,\r\n });\r\n\r\n const copyToClipBoardHandler = () => {\r\n copy(totpSecret);\r\n };\r\n\r\n const isFormDisabled =\r\n !isValid || isEqual(values, initialFormValues) || !qrUrl || qrUrl === \"\";\r\n const translate = createTranslator(messages);\r\n\r\n return (\r\n \r\n
{translate(\"verify_code\")}
\r\n
\r\n
\r\n ) : (\r\n translate(\"verify_code\")\r\n ),\r\n type: \"submit\",\r\n isDisabled: isFormDisabled || submitting,\r\n clickHandler: handleSubmit,\r\n }}\r\n secondaryButtonConfig={{\r\n title: translate(\"cancel\"),\r\n type: \"button\",\r\n clickHandler: handleModalVisibility,\r\n }}\r\n title={translate(\"two_fa_setup\")}\r\n id=\"auth_setup_modal\"\r\n >\r\n
\r\n

{translate(\"authenticator_app_setup_line1\")}

\r\n
\r\n\r\n
\r\n
{translate(\"step1\")}
\r\n

\r\n {translate(\"step1_text1\")}
\r\n {translate(\"step1_text2\")}\r\n

\r\n
\r\n\r\n
\r\n
{translate(\"step2\")}
\r\n

{translate(\"step2_text1\")}

\r\n
\r\n {qrUrl && \"Scan}\r\n {!qrUrl &&
}\r\n
\r\n
\r\n

{translate(\"step2_text2\")}

\r\n
\r\n {totpSecret && (\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
{translate(\"step3\")}
\r\n

{translate(\"step3_text1\")}

\r\n\r\n
\r\n setFieldValue(FIELD_ENUM.pin, value)}\r\n blurHandler={() => setFieldTouched(FIELD_ENUM.pin, true)}\r\n autocomplete=\"off\"\r\n maxLength={15}\r\n errorMessage={\r\n touched[FIELD_ENUM.pin] && !!errors[FIELD_ENUM.pin]\r\n ? translate(errors[FIELD_ENUM.pin])\r\n : null\r\n }\r\n isDisabled={totpSecretFetchErrorFlag}\r\n name={FIELD_ENUM.pin}\r\n id={FIELD_ENUM.pin}\r\n value={values[FIELD_ENUM.pin]}\r\n label={translate(\"verification_code\")}\r\n />\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nAuthSetUpModal.defaultProps = {\r\n showModal: false,\r\n errorCode: null,\r\n validatePinSuccessFlag: null,\r\n totpSecretFetchErrorFlag: null,\r\n};\r\n\r\nAuthSetUpModal.propTypes = {\r\n showModal: PropTypes.bool,\r\n handleModalVisibility: PropTypes.func.isRequired,\r\n totpSecret: PropTypes.string.isRequired,\r\n validatePinSuccessFlag: PropTypes.oneOf([null, true, false]),\r\n validatePin: PropTypes.func.isRequired,\r\n totpSecretFetchErrorFlag: PropTypes.oneOf([null, true, false]),\r\n errorCode: PropTypes.any,\r\n user_name: PropTypes.string.isRequired,\r\n fetchTotpSecret: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default AuthSetUpModal;\r\n","import * as Yup from \"yup\";\r\n\r\nexport const FIELD_ENUM = {\r\n mfaCode: \"mfaCode\",\r\n};\r\n\r\nexport const validation = {\r\n [FIELD_ENUM.mfaCode]: Yup.string()\r\n .trim()\r\n .required(\"error_invalid_code\"),\r\n};\r\n","/*eslint-disable */\r\nexport default function PhoneValidator(number) {\r\n if (\r\n number !== undefined &&\r\n number !== \"\" &&\r\n number !== null &&\r\n number.length > 9\r\n ) {\r\n const format = [\"_\", \"_\", \"_\", \"-\", \"_\", \"_\", \"_\", \"-\", \"_\", \"_\", \"_\", \"_\"];\r\n const len = number.length;\r\n if (len !== 0 && number !== undefined) {\r\n for (let i = 0; i < len; i++) {\r\n let break_loop = false;\r\n const char_value = number.charAt(i);\r\n if (\r\n char_value !== \" \" &&\r\n char_value != \"(\" &&\r\n char_value != \")\" &&\r\n char_value != \"-\" &&\r\n char_value != \"_\"\r\n ) {\r\n format.forEach((val, index) => {\r\n if (val === \"_\" && !break_loop) {\r\n format[index] = char_value;\r\n break_loop = true;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n const masked_number = format.toString().replace(/,/g, \"\");\r\n return masked_number;\r\n }\r\n return \"\";\r\n}\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { useFormik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport PropTypes from \"prop-types\";\r\nimport ResponsiveModal from \"@moneris-portal/responsive-modal\";\r\nimport { TextInput } from \"@moneris-portal/input\";\r\n\r\nimport { isEqual } from \"../../../../../util/object-parser\";\r\nimport { validation, FIELD_ENUM } from \"./utils\";\r\nimport PhoneValidator from \"../../../../../util/phoneValidator\";\r\n\r\nimport createTranslator from \"../../../../../util/translationHelper\";\r\nimport messages from \"../../Translations/messages\";\r\n\r\nimport \"./index.scss\";\r\n\r\nconst VerifyModal = ({\r\n showModal,\r\n handleModalVisibility,\r\n setExpiredCodeNotification,\r\n validatePin,\r\n smsPhone,\r\n mfaMethod,\r\n}) => {\r\n const [submitting, setSubmitting] = useState(false);\r\n const translate = createTranslator(messages);\r\n\r\n const initialFormValues = {\r\n [FIELD_ENUM.mfaCode]: \"\",\r\n };\r\n\r\n const getValidationShape = useCallback(() => {\r\n const validationShape = {\r\n [FIELD_ENUM.mfaCode]: validation[FIELD_ENUM.mfaCode],\r\n };\r\n\r\n return Yup.object().shape(validationShape);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const expireFunc = setTimeout(() => {\r\n handleModalVisibility();\r\n setExpiredCodeNotification();\r\n }, 600000);\r\n\r\n return clearInterval(expireFunc);\r\n }, []);\r\n\r\n const onSubmit = () => {\r\n const { mfaCode } = values;\r\n setSubmitting(true);\r\n validatePin({ mfa_method: mfaMethod, mfa_code: mfaCode });\r\n };\r\n\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n setFieldValue,\r\n handleSubmit,\r\n isValid,\r\n setFieldTouched,\r\n } = useFormik({\r\n initialValues: initialFormValues,\r\n onSubmit,\r\n validationSchema: getValidationShape(),\r\n enableReinitialize: true,\r\n validateOnMount: true,\r\n });\r\n\r\n const isFormDisabled = !isValid || isEqual(values, initialFormValues);\r\n\r\n return (\r\n \r\n
{translate(\"verify_code\")}
\r\n
\r\n
\r\n ) : (\r\n translate(\"verify_code\")\r\n ),\r\n type: \"submit\",\r\n isDisabled: isFormDisabled || submitting,\r\n clickHandler: handleSubmit,\r\n }}\r\n secondaryButtonConfig={{\r\n title: translate(\"cancel\"),\r\n type: \"button\",\r\n clickHandler: handleModalVisibility,\r\n }}\r\n title={\r\n mfaMethod === \"phone\"\r\n ? translate(\"mobile_two_fa_setup\")\r\n : translate(\"verify_email\")\r\n }\r\n id=\"verify_container\"\r\n >\r\n

\r\n {`${translate(\"sent_code\")} ${PhoneValidator(smsPhone)}. ${translate(\r\n \"copy_the_verification_code\"\r\n )}`}\r\n
\r\n
\r\n {translate(\"note\")}{\" \"}\r\n {translate(\"code_expires\")}\r\n

\r\n\r\n
\r\n setFieldValue(FIELD_ENUM.mfaCode, value)}\r\n blurHandler={() => setFieldTouched(FIELD_ENUM.mfaCode, true)}\r\n autocomplete=\"off\"\r\n maxLength={15}\r\n errorMessage={\r\n touched[FIELD_ENUM.mfaCode] && !!errors[FIELD_ENUM.mfaCode]\r\n ? translate(errors[FIELD_ENUM.mfaCode])\r\n : null\r\n }\r\n name={FIELD_ENUM.mfaCode}\r\n id={FIELD_ENUM.mfaCode}\r\n value={values[FIELD_ENUM.mfaCode]}\r\n label={translate(\"verification_code\")}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nVerifyModal.defaultProps = {\r\n showModal: false,\r\n};\r\n\r\nVerifyModal.propTypes = {\r\n showModal: PropTypes.bool,\r\n handleModalVisibility: PropTypes.func.isRequired,\r\n smsPhone: PropTypes.string.isRequired,\r\n validatePin: PropTypes.func.isRequired,\r\n setExpiredCodeNotification: PropTypes.func.isRequired,\r\n mfaMethod: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default VerifyModal;\r\n","import * as Yup from \"yup\";\r\n\r\nconst phoneRegExp = /^\\d{3}-?\\d{3}-?\\d{4}$/;\r\n\r\nexport const FIELD_ENUM = {\r\n phoneNumber: \"phoneNumber\",\r\n};\r\n\r\nexport const validation = {\r\n [FIELD_ENUM.phoneNumber]: Yup.string()\r\n .trim()\r\n .min(10, \"error_valid_phone\")\r\n .matches(phoneRegExp, \"error_valid_phone\")\r\n .required(\"error_valid_phone\"),\r\n};\r\n","import React, { useCallback, useState } from \"react\";\r\nimport { useFormik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport ResponsiveModal from \"@moneris-portal/responsive-modal\";\r\nimport PropTypes from \"prop-types\";\r\nimport { TextInput } from \"@moneris-portal/input\";\r\nimport { isEqual } from \"../../../../../util/object-parser\";\r\nimport { validation, FIELD_ENUM } from \"./utils\";\r\nimport createTranslator from \"../../../../../util/translationHelper\";\r\nimport messages from \"../../Translations/messages\";\r\n\r\nimport \"./index.scss\";\r\n\r\nconst EditModalPhone = ({\r\n showModal,\r\n handleModalVisibility,\r\n updateUserPhone,\r\n}) => {\r\n const [submitting, setSubmitting] = useState(false);\r\n const translate = createTranslator(messages);\r\n\r\n const initialFormValues = {\r\n [FIELD_ENUM.phoneNumber]: \"\",\r\n };\r\n\r\n const getValidationShape = useCallback(() => {\r\n const validationShape = {\r\n [FIELD_ENUM.phoneNumber]: validation[FIELD_ENUM.phoneNumber],\r\n };\r\n\r\n return Yup.object().shape(validationShape);\r\n }, []);\r\n\r\n const onSubmit = () => {\r\n const { phoneNumber } = values;\r\n setSubmitting(true);\r\n updateUserPhone(phoneNumber.replace(/[-().+ ]/gi, \"\"));\r\n };\r\n\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n setFieldValue,\r\n handleSubmit,\r\n isValid,\r\n setFieldTouched,\r\n } = useFormik({\r\n initialValues: initialFormValues,\r\n onSubmit,\r\n validationSchema: getValidationShape(),\r\n enableReinitialize: true,\r\n validateOnMount: true,\r\n });\r\n\r\n const isFormDisabled = !isValid || isEqual(values, initialFormValues);\r\n\r\n return (\r\n \r\n
{translate(\"update\")}
\r\n
\r\n
\r\n ) : (\r\n translate(\"update\")\r\n ),\r\n type: \"submit\",\r\n isDisabled: isFormDisabled || submitting,\r\n clickHandler: handleSubmit,\r\n }}\r\n secondaryButtonConfig={{\r\n title: translate(\"cancel\"),\r\n type: \"button\",\r\n clickHandler: handleModalVisibility,\r\n }}\r\n title={translate(\"mobile_two_fa_setup\")}\r\n id=\"user_phone_edit_container\"\r\n >\r\n
\r\n

{translate(\"use_your_mobile_phone_number\")}

\r\n \r\n setFieldValue(FIELD_ENUM.phoneNumber, value)\r\n }\r\n blurHandler={() => setFieldTouched(FIELD_ENUM.phoneNumber, true)}\r\n maxLength={12}\r\n errorMessage={\r\n touched[FIELD_ENUM.phoneNumber] && !!errors[FIELD_ENUM.phoneNumber]\r\n ? translate(errors[FIELD_ENUM.phoneNumber])\r\n : null\r\n }\r\n name={FIELD_ENUM.phoneNumber}\r\n id={FIELD_ENUM.phoneNumber}\r\n value={values[FIELD_ENUM.phoneNumber]}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nEditModalPhone.defaultProps = {\r\n showModal: false,\r\n};\r\n\r\nEditModalPhone.propTypes = {\r\n showModal: PropTypes.bool,\r\n handleModalVisibility: PropTypes.func.isRequired,\r\n updateUserPhone: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default EditModalPhone;\r\n","import { useMsal } from \"@azure/msal-react\";\r\nimport { b2cPolicies } from \"../authConfig\";\r\n\r\nfunction injectClassComponent(Component) {\r\n const InjectClassComponent = function (props) {\r\n const { instance } = useMsal();\r\n\r\n const handleEditPassword = () => {\r\n instance.loginRedirect(b2cPolicies.authorities.forgotPassword);\r\n return null;\r\n };\r\n const handleEditSecQuestion = () => {\r\n instance.loginRedirect(b2cPolicies.authorities.editSelfServeSecQuestion);\r\n return null;\r\n };\r\n return (\r\n handleEditPassword()}\r\n handleEditSecQuestion={() => handleEditSecQuestion()}\r\n />\r\n );\r\n };\r\n return InjectClassComponent;\r\n}\r\n\r\nexport default injectClassComponent;\r\n","/**\r\n * Author: Davinder Sandhu\r\n * Last edit: Brian Yang\r\n * Edit date: Dec 2, 2020\r\n */\r\n\r\nconst monthmatrix = {\r\n 0: \"January\",\r\n 1: \"Feburary\",\r\n 2: \"March\",\r\n 3: \"April\",\r\n 4: \"May\",\r\n 5: \"June\",\r\n 6: \"July\",\r\n 7: \"August\",\r\n 8: \"September\",\r\n 9: \"October\",\r\n 10: \"November\",\r\n 11: \"December\",\r\n};\r\nconst daymatrix = {\r\n 0: \"Sunday\",\r\n 1: \"Monday\",\r\n 2: \"Tuesday\",\r\n 3: \"Wednesday\",\r\n 4: \"Thursday\",\r\n 5: \"Friday\",\r\n 6: \"Saturday\",\r\n};\r\n\r\nconst DateFormatter = {\r\n getDate(val) {\r\n if (val !== null && val !== undefined && val !== \"\") {\r\n const isNum = /^\\d+$/.test(val);\r\n const date = isNum ? new Date(Number.parseInt(val, 10)) : new Date(val);\r\n if (date.toDateString() === \"Invalid Date\") return \"Invalid Date\";\r\n const month = date.getMonth();\r\n const day = date.getDate();\r\n const year = date.getFullYear();\r\n return `${monthmatrix[month].toString()} ${day}, ${year}`;\r\n }\r\n return \"Invalid Date\";\r\n },\r\n getDaysBetweenDates(val) {\r\n if (val) {\r\n const date = new Date(val);\r\n if (date.toDateString() === \"Invalid Date\") return \"Invalid Date\";\r\n return Math.round((date - new Date()) / (1000 * 60 * 60 * 24));\r\n }\r\n return \"Invalid Date\";\r\n },\r\n getMaxDate(date1str, date2str) {\r\n const date1 = new Date(date1str);\r\n const date2 = new Date(date2str);\r\n if (\r\n date1.toDateString() === \"Invalid Date\" ||\r\n date2.toDateString() === \"Invalid Date\"\r\n )\r\n return \"Invalid Date\";\r\n return date1.getTime() >= date2.getTime() ? date1 : date2;\r\n },\r\n getMinDate(date1str, date2str) {\r\n const date1 = new Date(date1str);\r\n const date2 = new Date(date2str);\r\n if (\r\n date1.toDateString() === \"Invalid Date\" ||\r\n date2.toDateString() === \"Invalid Date\"\r\n )\r\n return \"Invalid Date\";\r\n return date1.getTime() >= date2.getTime() ? date2 : date1;\r\n },\r\n getDayString(val) {\r\n const date = new Date(val);\r\n const day = date.getDay();\r\n return daymatrix[day];\r\n },\r\n getMonthString(val) {\r\n const date = new Date(val);\r\n const month = date.getMonth();\r\n return monthmatrix[month];\r\n },\r\n getSecondsdiff(val) {\r\n const date1 = new Date(val);\r\n const diff = new Date().getTime() - date1.getTime();\r\n return diff;\r\n },\r\n /**\r\n * @param {string} val Full date string\r\n * @param {('24'|'12')} hourFormat - default 24 hours\r\n * @returns {('hh:mm:ss'|'hh:mm:ss (am|pm)')}\r\n */\r\n getTime(val, hourFormat = \"24\") {\r\n const date = new Date(val);\r\n const hoursFull = date.getHours();\r\n let minutes = date.getMinutes();\r\n let seconds = date.getSeconds();\r\n let hours = hoursFull;\r\n let ampm = \"\";\r\n\r\n if (hourFormat === \"12\") {\r\n hours = hoursFull > 12 ? hoursFull - 12 : hoursFull;\r\n ampm = hoursFull > 12 ? \"pm\" : \"am\";\r\n }\r\n\r\n if (minutes <= 10) {\r\n minutes = `0${minutes}`;\r\n }\r\n\r\n if (seconds <= 10) {\r\n seconds = `0${seconds}`;\r\n }\r\n\r\n return `${hours}:${minutes}:${seconds} ${\r\n hourFormat === \"12\" ? ampm : \"\"\r\n }`.trim();\r\n },\r\n getDateinFuture(milliseconds){\r\n const date = new Date();\r\n date.setTime(date.getTime() + milliseconds /*days*/); \r\n return date.toUTCString();\r\n }\r\n};\r\n\r\nexport default DateFormatter;\r\n","const handleEvent = (e) => {\r\n e.preventDefault();\r\n // Included for legacy support, e.g. Chrome/Edge < 119\r\n e.returnValue = true;\r\n};\r\n\r\nfunction handleWindowClose(isTabCloseTracked) {\r\n if (isTabCloseTracked) {\r\n window?.addEventListener(\"beforeunload\", handleEvent,true);\r\n } else {\r\n window?.removeEventListener(\"beforeunload\", handleEvent, true);\r\n }\r\n}\r\n\r\nexport default handleWindowClose;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport ToolTip from \"@moneris-portal/tooltip\";\r\nimport PropTypes from \"prop-types\";\r\nimport { SmoothInfoIcon } from \"@moneris-portal/svg-components\";\r\nimport { usePrevious } from \"@moneris-portal/package-helpers\";\r\nimport Collapsible from \"@moneris-portal/collapsible\";\r\nimport { ToastMessage, addToastMessage } from \"@moneris-portal/toastmessage\";\r\nimport { PrimaryButton } from \"@moneris-portal/button\";\r\nimport { RadioButton } from \"@moneris-portal/input\";\r\nimport { userActions } from \"../../../../contextProviders/constant\";\r\nimport AuthSetUpModal from \"./AuthSetUpModal\";\r\nimport VerifyModal from \"../commonComponents/VerifyModal\";\r\nimport EditModalPhone from \"../commonComponents/EditModalPhone\";\r\nimport injectClassComponent from \"../../../../util/hookHoc\";\r\nimport DateFormatter from \"../../../../util/dateFormatter\";\r\nimport createTranslator from \"../../../../util/translationHelper\";\r\nimport { capitaliseFirstLetter } from \"../../../../util/helper\";\r\nimport messages from \"../Translations/messages\";\r\nimport \"./index.scss\";\r\nimport PhoneValidator from \"../../../../util/phoneValidator\";\r\nimport handleWindowClose from \"../../../..//util/windowClose\";\r\n\r\nconst Security = ({\r\n validatePinSuccessFlag,\r\n errorCode,\r\n userPasswordUpdatedFlag,\r\n resetTotpSuccessFlag,\r\n userPhoneUpdatedFlag,\r\n validatePinSuccessPhoneFlag,\r\n isTwoFaSet,\r\n handlePasswordChange,\r\n handleEditSecQuestion,\r\n dispatch,\r\n totpSecretFetchErrorFlag,\r\n userName,\r\n twofaEnabled = true,\r\n securityInfo,\r\n accountInfo,\r\n containerId,\r\n}) => {\r\n const lang = window.localStorage?.getItem(\"lang\") ?? \"en\";\r\n const [showAuthSetupModal, setShowAuthSetupModal] = useState(false);\r\n const [activeItem, setActiveItem] = useState(\"\");\r\n const [showSmsVerificationModal, setShowSmsVerificationModal] =\r\n useState(false);\r\n const [editSms, setEditSms] = useState(false);\r\n const [smsPhone, setSmsPhone] = useState(\"\");\r\n const translate = createTranslator(messages);\r\n\r\n const handleModalVisibility = () => {\r\n setShowAuthSetupModal(false);\r\n setEditSms(false);\r\n setShowSmsVerificationModal(false);\r\n setSmsPhone(\"\");\r\n handleWindowClose(false);\r\n };\r\n\r\n useEffect(() => {\r\n if (validatePinSuccessFlag) {\r\n handleModalVisibility();\r\n }\r\n }, []);\r\n\r\n const prevProps = usePrevious({\r\n validatePinSuccessFlag,\r\n userPhoneUpdatedFlag,\r\n validatePinSuccessPhoneFlag,\r\n resetTotpSuccessFlag,\r\n isTwoFaSet,\r\n });\r\n\r\n useEffect(() => {\r\n if (\r\n prevProps?.validatePinSuccessFlag === null &&\r\n validatePinSuccessFlag !== null &&\r\n activeItem !== \"\"\r\n ) {\r\n setShowAuthSetupModal(false);\r\n setShowSmsVerificationModal(false);\r\n addToastMessage({\r\n variant: validatePinSuccessFlag ? \"success\" : \"danger\",\r\n message: validatePinSuccessFlag\r\n ? `${capitaliseFirstLetter(activeItem)} ${\r\n activeItem === translate(\"error_email\")\r\n ? translate(\"success_update\")\r\n : translate(\"success_update_profile\")\r\n }`\r\n : errorCode === 500\r\n ? translate(\"error_something_wrong\")\r\n : `${\r\n activeItem === translate(\"error_email\")\r\n ? translate(\"error_updating\")\r\n : translate(\"error_updating_profile\")\r\n } ${activeItem}.`,\r\n });\r\n }\r\n\r\n if (\r\n prevProps?.userPhoneUpdatedFlag === null &&\r\n userPhoneUpdatedFlag !== null\r\n ) {\r\n setEditSms(false);\r\n if (userPhoneUpdatedFlag) {\r\n setShowSmsVerificationModal(userPhoneUpdatedFlag);\r\n } else {\r\n setShowSmsVerificationModal(false);\r\n setSmsPhone(\"\");\r\n\r\n addToastMessage({\r\n variant: \"danger\",\r\n message: translate(\"error_phone_update\"),\r\n });\r\n }\r\n }\r\n\r\n if (\r\n prevProps?.validatePinSuccessPhoneFlag === null &&\r\n validatePinSuccessPhoneFlag !== null &&\r\n activeItem !== \"\"\r\n ) {\r\n setShowSmsVerificationModal(false);\r\n\r\n addToastMessage({\r\n variant: validatePinSuccessPhoneFlag ? \"success\" : \"danger\",\r\n message: validatePinSuccessPhoneFlag\r\n ? `${capitaliseFirstLetter(activeItem)} ${translate(\"success_update\")}`\r\n : `${translate(\"error_updating\")} ${activeItem}.`,\r\n });\r\n }\r\n\r\n if (\r\n prevProps?.isTwoFaSet === null &&\r\n isTwoFaSet !== null &&\r\n activeItem !== \"\"\r\n ) {\r\n addToastMessage({\r\n variant: isTwoFaSet ? \"success\" : \"danger\",\r\n message: isTwoFaSet\r\n ? `${capitaliseFirstLetter(activeItem)} ${translate(\"success_update\")}`\r\n : `${translate(\"error_updating\")} ${activeItem}.`,\r\n });\r\n }\r\n\r\n if (\r\n prevProps?.resetTotpSuccessFlag === null &&\r\n resetTotpSuccessFlag !== null &&\r\n activeItem !== \"\"\r\n ) {\r\n addToastMessage({\r\n variant: resetTotpSuccessFlag ? \"success\" : \"danger\",\r\n message: resetTotpSuccessFlag\r\n ? translate(\"totp_successful_msg\")\r\n : translate(\"totp_failure_msg\"),\r\n });\r\n }\r\n }, [\r\n validatePinSuccessFlag,\r\n errorCode,\r\n userPasswordUpdatedFlag,\r\n resetTotpSuccessFlag,\r\n userPhoneUpdatedFlag,\r\n validatePinSuccessPhoneFlag,\r\n isTwoFaSet,\r\n ]);\r\n\r\n const setExpiredCodeNotification = () => {\r\n addToastMessage({\r\n variant: \"danger\",\r\n message: translate(\"error_code_exipred\"),\r\n });\r\n };\r\n\r\n const handleAuthAppSetup = () => {\r\n setShowAuthSetupModal(true);\r\n handleWindowClose(true);\r\n setActiveItem(translate(\"authenticator\"));\r\n };\r\n\r\n const fetchTotpSecret = () => {\r\n dispatch({ type: userActions.sendTotpInfo, body: {} });\r\n };\r\n\r\n const validatePin = ({ pin, method }) => {\r\n dispatch({\r\n type: userActions.verifyTotpCode,\r\n body: { totpCode: pin },\r\n postCallHandler: handleMethod,\r\n });\r\n };\r\n\r\n const handleMethod = (method = null) => {\r\n if (method) {\r\n dispatch({\r\n type: userActions.updateUserInfo,\r\n body: { mfa_method: method },\r\n });\r\n setActiveItem(translate(method));\r\n }\r\n };\r\n\r\n const handleTotpReset = () => {\r\n dispatch({\r\n type: userActions.resetTotp,\r\n body: {},\r\n });\r\n };\r\n\r\n const handlePhoneEdit = () => {\r\n setActiveItem(translate(\"phone\"));\r\n handleWindowClose(true);\r\n setEditSms(true);\r\n };\r\n\r\n const updateUserPhonePin = (payload) => {\r\n dispatch({\r\n type: userActions.verifyMfaCode,\r\n body: { ...payload },\r\n postCallHandler: handleMethod,\r\n });\r\n };\r\n\r\n const updateUserPhone = (phone) => {\r\n dispatch({\r\n type: userActions.sendMfaCode,\r\n body: { phone_number: phone, nonce: \"12345abcd\", mfa_method: \"phone\" },\r\n });\r\n setSmsPhone(phone);\r\n };\r\n\r\n const {\r\n userEmail = \"\",\r\n userPhone = \"\",\r\n mfa = {},\r\n passLastChange,\r\n passExpiry,\r\n secQuestionlastUpdate\r\n } = accountInfo;\r\n const passLastUpdatedDate = DateFormatter.getDate(passLastChange);\r\n const secQuestionLastUpdateDate = DateFormatter.getDate(secQuestionlastUpdate);\r\n const passExpiryDate = DateFormatter.getDate(passExpiry);\r\n const daysLeft = DateFormatter.getDaysBetweenDates(passExpiry);\r\n\r\n const {\r\n activeMethod = \"email\",\r\n hasPhoneSetUp = false,\r\n hasTotpSetUp = false,\r\n } = mfa;\r\n\r\n const { otpUri = \"\", totpSecret } = securityInfo;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{translate(\"password\")}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {translate(\"last_change\")}   \r\n
\r\n
\r\n {passLastUpdatedDate !== \"Invalid Date\"\r\n ? passLastUpdatedDate\r\n : \"\"}\r\n
\r\n
\r\n {/*
\r\n
\r\n
{translate(\"date_expiry\")}
\r\n \r\n \r\n \r\n
\r\n
\r\n {passExpiryDate !== \"Invalid Date\" ? passExpiryDate : \"\"}{\" \"}\r\n {daysLeft !== \"Invalid Date\"\r\n ? `(${daysLeft} ${translate(\"days_remaining\")})`\r\n : \"\"}\r\n
\r\n
*/}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{translate(\"sec_question_label\")}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {translate(\"last_change\")}   \r\n
\r\n
\r\n {secQuestionLastUpdateDate !== \"Invalid Date\"\r\n ? secQuestionLastUpdateDate\r\n : \"\"}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {twofaEnabled && (\r\n \r\n \r\n
{translate(\"two_factor_authentication\")}
\r\n \r\n \r\n \r\n
\r\n }\r\n active\r\n >\r\n
\r\n
\r\n handleMethod(\"email\")}\r\n name=\"email\"\r\n value=\"email\"\r\n />\r\n\r\n
\r\n
{translate(\"email\")}
{\" \"}\r\n
{userEmail}
\r\n
\r\n
\r\n\r\n {hasTotpSetUp && (\r\n
\r\n handleMethod(\"totp\")}\r\n name=\"totp\"\r\n value=\"totp\"\r\n />\r\n\r\n
\r\n
\r\n {translate(\"set_authenticator_app\")}\r\n
\r\n \r\n
\r\n
\r\n )}\r\n\r\n {!hasTotpSetUp && (\r\n
\r\n \r\n\r\n
\r\n
\r\n
{translate(\"set_authenticator_app\")}
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n )}\r\n\r\n {hasPhoneSetUp && (\r\n
\r\n handleMethod(\"phone\")}\r\n name=\"phone\"\r\n value=\"phone\"\r\n />\r\n\r\n
\r\n
{translate(\"text_message\")}
\r\n {userPhone && userPhone !== \"\" && (\r\n
{PhoneValidator(userPhone)}
\r\n )}\r\n \r\n
\r\n
\r\n )}\r\n\r\n {!hasPhoneSetUp && (\r\n
\r\n \r\n
\r\n
\r\n
{translate(\"text_message\")}
\r\n \r\n \r\n \r\n
\r\n {userPhone && userPhone !== \"\" && (\r\n
{PhoneValidator(userPhone)}
\r\n )}\r\n \r\n
\r\n
\r\n )}\r\n
\r\n \r\n
\r\n )}\r\n
\r\n\r\n {showAuthSetupModal && (\r\n \r\n )}\r\n\r\n {editSms && (\r\n \r\n )}\r\n\r\n {showSmsVerificationModal && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nSecurity.defaultProps = {\r\n validatePinSuccessFlag: null,\r\n userEmailUpdatedFlag: null,\r\n userPhoneUpdatedFlag: null,\r\n resetTotpSuccessFlag: null,\r\n errorCode: null,\r\n totpSecretFetchErrorFlag: null,\r\n userPasswordUpdatedFlag: null,\r\n};\r\n\r\nSecurity.propTypes = {\r\n fetchTotpSecret: PropTypes.func.isRequired,\r\n totpSecretFetchErrorFlag: PropTypes.oneOf([null, true, false]),\r\n updateUserEmail: PropTypes.func.isRequired,\r\n resetTotpSuccessFlag: PropTypes.oneOf([null, true, false]),\r\n updateUserPhone: PropTypes.func.isRequired,\r\n userEmailUpdatedFlag: PropTypes.oneOf([null, true, false]),\r\n userPhoneUpdatedFlag: PropTypes.oneOf([null, true, false]),\r\n errorCode: PropTypes.any,\r\n validatePinSuccessFlag: PropTypes.oneOf([null, true, false]),\r\n updateTotp: PropTypes.func.isRequired,\r\n updateTwoFa: PropTypes.func.isRequired,\r\n validatePin: PropTypes.func.isRequired,\r\n user_name: PropTypes.string.isRequired,\r\n user_email: PropTypes.string.isRequired,\r\n user_phone: PropTypes.string.isRequired,\r\n twofaEnabled: PropTypes.bool.isRequired,\r\n twofa_totp_enable: PropTypes.bool.isRequired,\r\n password_expiry: PropTypes.any.isRequired,\r\n updateUserPassword: PropTypes.func.isRequired,\r\n userPasswordUpdatedFlag: PropTypes.oneOf([null, true, false]),\r\n lastPasswordUpdateDate: PropTypes.any.isRequired,\r\n};\r\n\r\nexport default injectClassComponent(Security);\r\n","\r\nfunction responseParser(resp) {\r\n const {\r\n email,\r\n displayName,\r\n givenName,\r\n surname,\r\n mobilePhone,\r\n preferredLanguage,\r\n passwordExpirationDate,\r\n passwordLastChangedDate,\r\n mfa_method,\r\n } = resp;\r\n return {\r\n email,\r\n displayName,\r\n givenName,\r\n surname,\r\n mobilePhone,\r\n preferredLanguage,\r\n passwordExpirationDate,\r\n passwordLastChangedDate,\r\n mfa_method,\r\n };\r\n}\r\n\r\n/*eslint-disable */\r\nfunction PhoneValidator(number) {\r\n if (\r\n number !== undefined &&\r\n number !== \"\" &&\r\n number !== null &&\r\n number.length > 9\r\n ) {\r\n const format = [\"_\", \"_\", \"_\", \"-\", \"_\", \"_\", \"_\", \"-\", \"_\", \"_\", \"_\", \"_\"];\r\n const len = number.length;\r\n if (len !== 0 && number !== undefined) {\r\n for (let i = 0; i < len; i++) {\r\n let break_loop = false;\r\n const char_value = number.charAt(i);\r\n if (\r\n char_value !== \" \" &&\r\n char_value != \"(\" &&\r\n char_value != \")\" &&\r\n char_value != \"-\" &&\r\n char_value != \"_\"\r\n ) {\r\n format.forEach((val, index) => {\r\n if (val === \"_\" && !break_loop) {\r\n format[index] = char_value;\r\n break_loop = true;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n const masked_number = format.toString().replace(/,/g, \"\");\r\n return masked_number;\r\n }\r\n return \"\";\r\n}\r\n\r\nexport { PhoneValidator, responseParser };\r\n","import * as Yup from \"yup\";\r\n\r\nconst phoneRegExp = /^\\d{3}-?\\d{3}-?\\d{4}$/;\r\nconst phoneExtensionRegExp = /^\\d+$/;\r\nconst regexLetters = /^[a-zA-Z\\s]+$/;\r\n\r\nexport const FIELD_ENUM = {\r\n firstName: \"firstName\",\r\n lastName: \"lastName\",\r\n phoneNumber: \"phoneNumber\",\r\n phoneExtension: \"phoneExtension\",\r\n};\r\n\r\nexport const validation = {\r\n [FIELD_ENUM.firstName]: Yup.string()\r\n .trim()\r\n .required(\"error_first_name\")\r\n .matches(regexLetters, \"error_name_format\"),\r\n [FIELD_ENUM.lastName]: Yup.string()\r\n .trim()\r\n .required(\"error_last_name\")\r\n .matches(regexLetters, \"error_name_format\"),\r\n [FIELD_ENUM.phoneNumber]: Yup.string()\r\n .trim()\r\n .min(10, \"error_valid_phone\")\r\n .matches(phoneRegExp, \"error_valid_phone\"),\r\n [FIELD_ENUM.phoneExtension]: Yup.string()\r\n .trim()\r\n .matches(phoneExtensionRegExp, \"error_ext\"),\r\n};\r\n","import React, { useCallback, useState } from \"react\";\r\nimport { useFormik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport PropTypes from \"prop-types\";\r\nimport createTranslator from \"../../../../../util/translationHelper\";\r\nimport ResponsiveModal from \"@moneris-portal/responsive-modal\";\r\nimport { TextInput } from \"@moneris-portal/input\";\r\nimport messages from \"../../Translations/messages\";\r\nimport { isEqual } from \"../../../../../util/object-parser\";\r\nimport { PhoneValidator } from \"../../../util\";\r\nimport { validation, FIELD_ENUM } from \"./utils\";\r\n\r\nimport \"./index.scss\";\r\n\r\nconst EditModalUserProfile = ({\r\n firstName,\r\n lastName,\r\n phoneNumber,\r\n phoneExtension,\r\n updateUserProfile,\r\n showModal,\r\n handleModalVisibility,\r\n}) => {\r\n const [submitting, setSubmitting] = useState(false);\r\n const translate = createTranslator(messages);\r\n\r\n const initialFormValues = {\r\n [FIELD_ENUM.firstName]: firstName ?? \"\",\r\n [FIELD_ENUM.lastName]: lastName ?? \"\",\r\n [FIELD_ENUM.phoneNumber]: PhoneValidator(phoneNumber) ?? \"\",\r\n [FIELD_ENUM.phoneExtension]: phoneExtension ?? \"\",\r\n };\r\n\r\n const getValidationShape = useCallback(() => {\r\n const validationShape = {\r\n [FIELD_ENUM.firstName]: validation[FIELD_ENUM.firstName],\r\n [FIELD_ENUM.lastName]: validation[FIELD_ENUM.lastName],\r\n [FIELD_ENUM.phoneNumber]: validation[FIELD_ENUM.phoneNumber],\r\n [FIELD_ENUM.phoneExtension]: validation[FIELD_ENUM.phoneExtension],\r\n };\r\n\r\n return Yup.object().shape(validationShape);\r\n }, []);\r\n\r\n const onSubmit = () => {\r\n const { firstName, lastName, phoneNumber, phoneExtension } = values;\r\n const userProfileObj = {\r\n contact_phone_ext: phoneExtension,\r\n first_name: firstName,\r\n last_name: lastName,\r\n contact_phone: phoneNumber.replace(/[-().+ ]/gi, \"\"),\r\n };\r\n updateUserProfile(userProfileObj);\r\n setSubmitting(true);\r\n };\r\n\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n setFieldValue,\r\n handleSubmit,\r\n isValid,\r\n setFieldTouched,\r\n } = useFormik({\r\n initialValues: initialFormValues,\r\n onSubmit,\r\n validationSchema: getValidationShape(),\r\n enableReinitialize: true,\r\n validateOnMount: true,\r\n });\r\n\r\n const isFormDisabled = !isValid || isEqual(values, initialFormValues);\r\n\r\n const fieldList = [\r\n {\r\n key: FIELD_ENUM.firstName,\r\n placeholder: \"eg. John\",\r\n title: \"user_first_name\",\r\n },\r\n {\r\n key: FIELD_ENUM.lastName,\r\n placeholder: \"eg. Smith\",\r\n title: \"user_last_name\",\r\n },\r\n {\r\n key: FIELD_ENUM.phoneNumber,\r\n placeholder: \"phone_placeholder\",\r\n title: \"contact_phone_number\",\r\n maxLength: 12,\r\n },\r\n {\r\n key: FIELD_ENUM.phoneExtension,\r\n title: \"ext\",\r\n maxLength: 4,\r\n isDisabled: values[FIELD_ENUM.phoneNumber] === \"\",\r\n },\r\n ];\r\n\r\n return (\r\n \r\n
{translate(\"update\")}
\r\n
\r\n
\r\n ) : (\r\n translate(\"update\")\r\n ),\r\n type: \"submit\",\r\n isDisabled: isFormDisabled,\r\n clickHandler: handleSubmit,\r\n }}\r\n secondaryButtonConfig={{\r\n title: translate(\"cancel\"),\r\n type: \"button\",\r\n clickHandler: handleModalVisibility,\r\n }}\r\n title={translate(\"user_profile\")}\r\n id=\"user_account_edit_modal\"\r\n >\r\n
\r\n {fieldList.map(({ title, key, placeholder, maxLength, isDisabled }) => (\r\n
\r\n setFieldValue(key, value)}\r\n blurHandler={() => setFieldTouched(key, true)}\r\n placeholder={\r\n typeof placeholder === \"string\"\r\n ? translate(placeholder)\r\n : undefined\r\n }\r\n errorMessage={\r\n touched[key] && !!errors[key] ? translate(errors[key]) : null\r\n }\r\n label={translate(title)}\r\n maxLength={maxLength}\r\n isDisabled={!!isDisabled}\r\n />\r\n
\r\n ))}\r\n
\r\n \r\n );\r\n};\r\n\r\nEditModalUserProfile.defaultProps = {\r\n showModal: false,\r\n errorCode: null,\r\n};\r\n\r\nEditModalUserProfile.propTypes = {\r\n showModal: PropTypes.bool,\r\n errorCode: PropTypes.any,\r\n updateUserProfile: PropTypes.func.isRequired,\r\n firstName: PropTypes.string.isRequired,\r\n lastName: PropTypes.string.isRequired,\r\n extension: PropTypes.string.isRequired,\r\n phoneNumber: PropTypes.string.isRequired,\r\n handleModalVisibility: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default EditModalUserProfile;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst PencilLogo = ({ width, height, color }) => (\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\nPencilLogo.propTypes = {\r\n width: PropTypes.string,\r\n height: PropTypes.string,\r\n color: PropTypes.string,\r\n};\r\n\r\nPencilLogo.defaultProps = {\r\n width: \"24\",\r\n height: \"24\",\r\n color: \"#007191\",\r\n};\r\n\r\nexport default PencilLogo;\r\n","import React from \"react\";\r\nimport classNames from \"classnames\";\r\nimport PropTypes from \"prop-types\";\r\nimport Collapsible from \"@moneris-portal/collapsible\";\r\nimport { ToastMessage, addToastMessage } from \"@moneris-portal/toastmessage\";\r\nimport createTranslator from \"../../../../util/translationHelper\";\r\nimport EditModalUserProfile from \"./EditModalUserProfile\";\r\nimport { PhoneValidator } from \"../../util\";\r\nimport messages from \"../Translations/messages\";\r\nimport { userActions } from \"../../../../contextProviders/constant\";\r\nimport PencilLogo from \"./assets/PencilLogo\";\r\nimport { capitaliseFirstLetter } from \"../../../../util/helper\";\r\nimport handleWindowClose from \"../../../..//util/windowClose\";\r\n\r\nimport \"./index.scss\";\r\n\r\nclass UserAccount extends React.Component {\r\n translate = createTranslator(messages);\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n enableEditUserProfile: false,\r\n enableDisputeNotificationEdit: false,\r\n editEditEmail: false,\r\n activeItem: \"\",\r\n showPinValidateNotification: false,\r\n showExpiredCodeNotification: false,\r\n };\r\n }\r\n\r\n componentDidUpdate = (prevProps) => {\r\n const {\r\n validatePinSuccessFlag,\r\n userProfileUpdatedErrorFlag,\r\n resetSameEmail,\r\n sameEmailFlag,\r\n } = this.props;\r\n\r\n const { activeItem } = this.state;\r\n\r\n if (\r\n prevProps.validatePinSuccessFlag === null &&\r\n validatePinSuccessFlag !== null\r\n ) {\r\n this.setState({\r\n showPinValidateNotification: true,\r\n });\r\n this.handleModalVisibility();\r\n }\r\n\r\n if (\r\n prevProps.userProfileUpdatedErrorFlag === null &&\r\n userProfileUpdatedErrorFlag !== null &&\r\n activeItem !== \"\"\r\n ) {\r\n addToastMessage({\r\n variant: userProfileUpdatedErrorFlag ? \"success\" : \"danger\",\r\n message: userProfileUpdatedErrorFlag\r\n ? `${capitaliseFirstLetter(activeItem)} ${this.translate(\"success_update_profile\")}`\r\n : errorCode === 500\r\n ? this.translate(\"error_something_wrong\")\r\n : `${this.translate(\"error_updating_profile\")} ${activeItem}.`,\r\n });\r\n this.setState({ enableEditUserProfile: false });\r\n }\r\n\r\n if (!prevProps.sameEmailFlag && sameEmailFlag) {\r\n this.handleModalVisibility();\r\n resetSameEmail();\r\n }\r\n };\r\n\r\n setExpiredCodeNotification = () => {\r\n this.setState({\r\n showExpiredCodeNotification: true,\r\n });\r\n };\r\n\r\n handleModalVisibility = () => {\r\n handleWindowClose(false);\r\n this.setState({\r\n enableEditUserProfile: false,\r\n editEditEmail: false,\r\n });\r\n };\r\n\r\n updateUserProfile = (userProfileObj) => {\r\n const { dispatch } = this.props;\r\n dispatch({\r\n type: userActions.updateUserInfo,\r\n body: { ...userProfileObj },\r\n });\r\n };\r\n\r\n hideNotification = () => {\r\n this.setState({\r\n showPinValidateNotification: false,\r\n showProfileNotification: false,\r\n showExpiredCodeNotification: false,\r\n });\r\n };\r\n\r\n editUserProfileClickHandler = (event) => {\r\n event.stopPropagation();\r\n this.setState({\r\n enableEditUserProfile: true,\r\n activeItem: this.translate(\"profile\"),\r\n });\r\n handleWindowClose(true);\r\n };\r\n\r\n editEmailClickHandler = (event) => {\r\n event.stopPropagation();\r\n this.setState({\r\n editEditEmail: true,\r\n activeItem: this.translate(\"error_email\"),\r\n });\r\n handleWindowClose(true);\r\n };\r\n\r\n render() {\r\n const {\r\n enableEditUserProfile,\r\n // Now the email editing feature is disabled\r\n // activeItem,\r\n // showProfileNotification,\r\n // editEditEmail,\r\n // showPinValidateNotification,\r\n // showExpiredCodeNotification,\r\n } = this.state;\r\n const {\r\n userProfileUpdatedErrorFlag,\r\n accountInfo,\r\n containerId,\r\n // Now the email editing feature is disabled\r\n // updateUserEmail,\r\n // userEmailUpdatedFlag,\r\n // errorCode,\r\n // validatePinSuccessFlag,\r\n } = this.props;\r\n\r\n const { firstName, lastName, businessPhone, userEmail, businessExtension } =\r\n accountInfo;\r\n\r\n const maskedNumberBusiness = PhoneValidator(businessPhone);\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {this.translate(\"user_profile\")}\r\n \r\n \r\n {this.translate(\"edit\")}\r\n \r\n
\r\n }\r\n active\r\n >\r\n
\r\n
\r\n
\r\n
\r\n {this.translate(\"user_first_name\")}\r\n
\r\n
\r\n {firstName}\r\n
\r\n
\r\n
\r\n
\r\n {this.translate(\"user_last_name\")}\r\n
\r\n
\r\n {lastName}\r\n
\r\n
\r\n
\r\n
\r\n {this.translate(\"contact_phone_number\")}\r\n
\r\n
\r\n \r\n {maskedNumberBusiness}\r\n \r\n
\r\n
\r\n
\r\n
{this.translate(\"ext\")}
\r\n
\r\n {businessExtension}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {this.translate(\"email_address\")}\r\n \r\n \r\n {this.translate(\"edit\")}\r\n \r\n
\r\n }\r\n active\r\n >\r\n
\r\n
\r\n
\r\n
\r\n {this.translate(\"email_address\")}\r\n
\r\n
\r\n
{userEmail}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {/* Now the email editing feature is disabled */}\r\n {/* {validatePinSuccessFlag !== null &&\r\n activeItem !== \"\" &&\r\n showPinValidateNotification && (\r\n \r\n {validatePinSuccessFlag\r\n ? `${activeItem} ${\r\n activeItem === translate(\"error_email\")\r\n ? translate(\"success_update\")\r\n : translate(\"success_update_profile\")\r\n }`\r\n : errorCode === 500\r\n ? translate(\"error_something_wrong\")\r\n : `${\r\n activeItem === translate(\"error_email\")\r\n ? translate(\"error_updating\")\r\n : translate(\"error_updating_profile\")\r\n } ${activeItem}.`}\r\n \r\n )} */}\r\n {/* {showExpiredCodeNotification && (\r\n \r\n {translate(\"error_code_exipred\")}\r\n \r\n )} */}\r\n {enableEditUserProfile && (\r\n \r\n )}\r\n {/* Now the email editing feature is disabled */}\r\n {/* {editEditEmail && (\r\n \r\n )} */}\r\n \r\n );\r\n }\r\n}\r\n\r\nUserAccount.defaultProps = {\r\n updateDisputeNotificationPinSuccessFlag: null,\r\n validatePinSuccessFlag: null,\r\n disputeValidatePinFlag: null,\r\n updateSelfServeBankingEligibility: () => null,\r\n updateSelfServeBankingEligibilitySuccessFlag: null,\r\n updateSelfServeProfileUpdateSuccessFlag: null,\r\n selfServeRefundLimitAmount: 0,\r\n selfServeRefundEnabled: false,\r\n selfServeBankEligibilityEnabled: false,\r\n roleId: -1,\r\n userEmailUpdatedFlag: null,\r\n errorCode: null,\r\n userProfileUpdatedErrorFlag: null,\r\n canEditDisputeNotification: false,\r\n notificationLanguage: \"en\",\r\n notificationEmail: \"\",\r\n resetUserState: () => null,\r\n copyRequestNotificationsEnabled: false,\r\n chargebackNotificationsEnabled: false,\r\n resetSameEmail: () => null,\r\n sameEmailFlag: false,\r\n updateSelfServeProfileUpdate: () => null,\r\n};\r\n\r\nUserAccount.propTypes = {\r\n updateDisputeNotificationPinSuccessFlag: PropTypes.oneOf([null, true, false]),\r\n selfServeRefundEnabled: PropTypes.bool,\r\n selfServeRefundLimitAmount: PropTypes.number,\r\n updateSelfServeBankingEligibility: PropTypes.func,\r\n updateSelfServeBankingEligibilitySuccessFlag: PropTypes.oneOf([\r\n null,\r\n true,\r\n false,\r\n ]),\r\n roleId: PropTypes.number,\r\n selfServeBankEligibilityEnabled: PropTypes.bool,\r\n history: PropTypes.shape({\r\n location: PropTypes.shape({\r\n search: PropTypes.string.isRequired,\r\n }),\r\n }).isRequired,\r\n updateUserPhone: PropTypes.func.isRequired,\r\n validatePinSuccessFlag: PropTypes.oneOf([null, true, false]),\r\n userProfileUpdatedErrorFlag: PropTypes.oneOf([null, true, false]),\r\n userEmailUpdatedFlag: PropTypes.oneOf([null, true, false]),\r\n updateUserEmail: PropTypes.func.isRequired,\r\n updateUserProfile: PropTypes.func.isRequired,\r\n validatePin: PropTypes.func.isRequired,\r\n userPhone: PropTypes.string.isRequired,\r\n userEmail: PropTypes.string.isRequired,\r\n firstName: PropTypes.string.isRequired,\r\n lastName: PropTypes.string.isRequired,\r\n businessExtension: PropTypes.string.isRequired,\r\n businessPhone: PropTypes.string.isRequired,\r\n errorCode: PropTypes.any,\r\n canEditDisputeNotification: PropTypes.bool,\r\n notificationLanguage: PropTypes.string,\r\n notificationEmail: PropTypes.string,\r\n resetUserState: PropTypes.func,\r\n copyRequestNotificationsEnabled: PropTypes.bool,\r\n chargebackNotificationsEnabled: PropTypes.bool,\r\n resetSameEmail: PropTypes.func,\r\n sameEmailFlag: PropTypes.bool,\r\n disputeEmailUpdateSuccessFlag: PropTypes.bool.isRequired,\r\n disputeCBNotificationSuccessFlag: PropTypes.bool.isRequired,\r\n disputeCRNotificationSuccessFlag: PropTypes.bool.isRequired,\r\n disputePLNotificationSuccessFlag: PropTypes.bool.isRequired,\r\n disputeValidatePinFlag: PropTypes.oneOf([null, true, false]),\r\n updateDisputeEmail: PropTypes.func.isRequired,\r\n updateDisputeNotification: PropTypes.func.isRequired,\r\n validateDisputeEmailPin: PropTypes.func.isRequired,\r\n updatePreferredLang: PropTypes.func.isRequired,\r\n sameEmailUpdated: PropTypes.func.isRequired,\r\n lang: PropTypes.string.isRequired,\r\n featureFlags: PropTypes.object.isRequired,\r\n updateRefund: PropTypes.func.isRequired,\r\n userObj: PropTypes.object.isRequired,\r\n updateSelfServeProfileUpdateSuccessFlag: PropTypes.bool,\r\n updateSelfServeProfileUpdate: PropTypes.func,\r\n};\r\n\r\nexport default UserAccount;\r\n","const env = {\r\n dev: \"dev\",\r\n qa: \"qa\",\r\n prod: \"prod\",\r\n};\r\n\r\nconst nonSsoUrlMap = {\r\n md2: {\r\n dev: \"https://www1-dev.corp.moneris.com\",\r\n qa: \"https://www1-qa.moneris.com\",\r\n prod: \"https://www2.moneris.com\",\r\n },\r\n};\r\n\r\nconst getNonSsoUrl = (redirectTo) => {\r\n const nonSsoUrlMember = Object.prototype.hasOwnProperty.call(\r\n nonSsoUrlMap,\r\n redirectTo\r\n )\r\n ? nonSsoUrlMap[redirectTo]\r\n : nonSsoUrlMap.md2;\r\n\r\n const { host = \"\" } = window?.location ?? {};\r\n let tempEnvironment;\r\n if (/-dv/.test(host) || /localhost/.test(host)) {\r\n tempEnvironment = env.dev;\r\n } else if (/-qa/.test(host)) {\r\n tempEnvironment = env.qa;\r\n } else {\r\n tempEnvironment = env.prod;\r\n }\r\n\r\n return nonSsoUrlMember[tempEnvironment] ?? \"\";\r\n};\r\n\r\nexport default getNonSsoUrl;\r\n","const messages = {\r\n en: {\r\n user_account: \"User Account\",\r\n security: \"Security\",\r\n go_back: \"Go back\",\r\n user_setting: \"User Settings\",\r\n go_to_moneris_portal: \"Go to Moneris Portal\",\r\n },\r\n fr: {\r\n user_account: \"Compte d’utilisateur\",\r\n security: \"Sécurité\",\r\n go_back: \"Retour\",\r\n user_setting: \"Paramètres utilisateur\",\r\n go_to_moneris_portal: \"Accéder au portail Moneris\",\r\n },\r\n};\r\n\r\nexport default messages;\r\n","import React, { useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom/cjs/react-router-dom.min\";\r\nimport StatementNavigation from \"@moneris-portal/statement-navigation\";\r\nimport NavigationTab from \"@moneris-portal/navigation-tab\";\r\nimport PageHeader from \"@moneris-portal/page-header\";\r\nimport Loader from \"@moneris-portal/loader\";\r\nimport { ToastMessage } from \"@moneris-portal/toastmessage\";\r\nimport Security from \"../../components/Setting/components/Security/index\";\r\nimport UserAccount from \"../../components/Setting/components/UserAccount/index\";\r\nimport getNonSsoUrl from \"../../util/nonSsoRedirect\";\r\nimport { useInfoProvider } from \"../../contextProviders/InfoProvider\";\r\nimport { useAppStateProvider } from \"../../contextProviders/AppStateProvider\";\r\nimport { userActions } from \"../../contextProviders/constant\";\r\nimport createTranslator from \"../../util/translationHelper\";\r\nimport messages from \"./translations/messages\";\r\n\r\nimport \"./index.scss\";\r\n\r\nconst containerIdMap = {\r\n User_Account: \"user_profile_setting_navigation\",\r\n Security: \"security_setting_navigation\",\r\n};\r\n\r\nfunction Setting({ lang }) {\r\n const { userInfo = {}, dispatch, callStatus = {} } = useInfoProvider();\r\n const { appState = {} } = useAppStateProvider();\r\n const history = useHistory();\r\n const { profile = {} } = appState;\r\n const { securityInfo = {} } = userInfo;\r\n const { status = null, type = \"\" } = callStatus;\r\n const translate = createTranslator(messages, lang);\r\n const searchParams = new URLSearchParams(window?.location?.search ?? \"\");\r\n const activeTab = searchParams?.get(\"action\") ?? \"User_Account\";\r\n const redirectTo = searchParams?.get(\"redirectTo\") ?? \"\";\r\n const path = searchParams?.get(\"path\") ?? \"\";\r\n const [containerId, setContainerId] = useState(containerIdMap[activeTab]);\r\n const redirectUrl = searchParams?.get(\"redirectUrl\") ?? null;\r\n\r\n const goBackHandler = () => {\r\n if (redirectTo !== \"\" || redirectUrl) {\r\n window.location.href = redirectUrl\r\n ? redirectUrl\r\n : `${getNonSsoUrl(redirectTo)}/${lang}${path}`;\r\n } else {\r\n history.push(`/${lang}/home`);\r\n }\r\n };\r\n\r\n const activeTabListener = (tab) => setContainerId(containerIdMap[tab]);\r\n\r\n const profileLoaded =\r\n typeof profile === \"object\" && Object.keys(profile).length > 0;\r\n\r\n const menuItems = {\r\n User_Account: {\r\n title: translate(\"user_account\"),\r\n comp: (\r\n \r\n ),\r\n },\r\n Security: {\r\n title: translate(\"security\"),\r\n\r\n comp: (\r\n \r\n ),\r\n },\r\n };\r\n\r\n return (\r\n
\r\n {profileLoaded && (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n )}\r\n {!profileLoaded && }\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default Setting;\r\n","const applicationDescription = {\r\n md2: {\r\n desc: \"this_is_your_business_hub\",\r\n list: [\r\n \"view_monthly_statement_and_reports\",\r\n \"order_additional_devices\",\r\n \"manage_chargebacks_and_disputes\",\r\n ],\r\n urlCode: \"merchant_direct_portal_secondary_link\",\r\n },\r\n de: {\r\n desc: \"this_is_your_business_hub\",\r\n list: [\r\n \"view_monthly_statement_and_reports\",\r\n \"order_additional_devices\",\r\n \"manage_chargebacks_and_disputes\",\r\n ],\r\n urlCode: \"merchant_direct_portal_secondary_link\",\r\n },\r\n mogo: {\r\n desc: \"go_portal_desc_main\",\r\n list: [\r\n \"go_portal_desc_point1\",\r\n \"go_portal_desc_point2\",\r\n \"go_portal_desc_point3\",\r\n ],\r\n urlCode: \"go_portal_business_secondary_link\",\r\n },\r\n idi: {\r\n desc: \"moneris_insight_desc_main\",\r\n list: [\r\n \"moneris_insight_desc_point1\",\r\n \"moneris_insight_desc_point2\",\r\n \"moneris_insight_desc_point3\",\r\n \"moneris_insight_desc_point4\",\r\n ],\r\n urlCode: \"moneris_insight_secondary_link\",\r\n },\r\n};\r\n\r\nexport default applicationDescription;\r\n","const messages = {\r\n en: {\r\n your_devices_and_services: \"Your device(s) and service(s)\",\r\n\r\n desk_5000: \"Desk/5000\",\r\n learn_how_to_set_up_your_device:\r\n \"Learn how to set up your device for your needs, perform everyday transactions, and more.\",\r\n ict250: \"iCT250\",\r\n ict250_with_ipp320: \"iCT250 with iPP320\",\r\n instalink_ivr: \"Instalink IVR\",\r\n ipp320: \"iPP320\",\r\n iwl220: \"iWL220\",\r\n iwl255: \"iWL255\",\r\n moneris_go: \"Moneris Go\",\r\n moneris_go_plus: \"Moneris Go Plus\",\r\n move_5000: \"Move/5000\",\r\n p400: \"P400\",\r\n payd_pro_plus: \"PAYD Pro Plus\",\r\n payd_pro_plus_with_ipp320: \"PAYD Pro Plus with iPP320\",\r\n ux_301: \"UX 301\",\r\n v400c: \"V400C\",\r\n v400c_with_p400: \"V400C with P400\",\r\n v400m: \"V400m\",\r\n vx_520: \"VX 520\",\r\n vx_820_duet: \"VX 820 Duet\",\r\n \"3ds\": \"3DS\",\r\n learn_how_to_set_up_your_service: \"Learn how to set up your service.\",\r\n gift_card: \"Gift Card\",\r\n kount: \"Kount\",\r\n multi_currency_pricing: \"Multi Currency Pricing\",\r\n vault: \"Vault\",\r\n\r\n desk_5000_secondary_link:\r\n \"https://www.moneris.com/en/support/setup/desk5000\",\r\n ict250_secondary_link:\r\n \"https://www.moneris.com/help/iCT250_Webhelp2021/ict250_webhelp_index.htm\",\r\n ict250_with_ipp320_secondary_link:\r\n \"https://www.moneris.com/-/media/files/devices/ict250/ict250_v532_ref_guide_eng.ashx\",\r\n instalink_ivr_secondary_link:\r\n \"https://www.moneris.com/-/media/files/devices/instalink-ivr/instalink-ivr-en-ref-guide.ashx\",\r\n ipp320_secondary_link:\r\n \"https://www.moneris.com/-/media/files/downloadable_guides/ipp320_mrc_qig-eng.ashx\",\r\n iwl220_secondary_link:\r\n \"https://www.moneris.com/help/iWL220_Webhelp2021/iWL220_webhelp_index.htm\",\r\n iwl255_secondary_link:\r\n \"https://www.moneris.com/help/iWL255_Webhelp2021/iWL255_webhelp_index.htm\",\r\n moneris_go_secondary_link:\r\n \"https://www.moneris.com/en/support/moneris-go/moneris-go\",\r\n moneris_go_plus_secondary_link:\r\n \"https://www.moneris.com/en/support/setup/moneris-go-plus\",\r\n move_5000_secondary_link:\r\n \"https://www.moneris.com/en/support/setup/move5000\",\r\n p400_secondary_link:\r\n \"https://www.moneris.com/-/media/files/downloadable_guides/p400_mrc_qig-eng.ashx\",\r\n payd_pro_plus_secondary_link:\r\n \"https://my.getpayd.com/help/en_CA/moneris_pos_webhelp_home.htm\",\r\n payd_pro_plus_with_ipp320_secondary_link:\r\n \"https://www.moneris.com/-/media/files/devices/payd-pro-plus-mobile/ipp320-qig_ref_en.ashx\",\r\n ux_301_secondary_link:\r\n \"https://www.moneris.com/-/media/files/devices/ux-301/ux-301-quick-reference-guide-v1.ashx\",\r\n v400c_secondary_link: \"https://www.moneris.com/en/support/setup/v400c\",\r\n v400c_with_p400_secondary_link:\r\n \"https://www.moneris.com/en/support/setup/v400c\",\r\n v400m_secondary_link: \"https://www.moneris.com/en/support/setup/v400m\",\r\n vx_520_secondary_link:\r\n \"https://www.moneris.com/help/520_4.32f_UPWebhelp/520_VCE_Webhelp.htm\",\r\n vx_820_duet_secondary_link:\r\n \"https://www.moneris.com/help/820_4.32f_Webhelp/820_vce_webhelp.htm\",\r\n \"3ds_secondary_link\":\r\n \"https://developer.moneris.com/livedemo/3ds2/about/guide/dotnet\",\r\n gift_card_secondary_link:\r\n \"https://www.moneris.com/en/support/products/gift-card-program\",\r\n kount_secondary_link:\r\n \"https://developer.moneris.com/Documentation/NA/E-Commerce%20Solutions/E-Fraud/Kount\",\r\n multi_currency_pricing_secondary_link:\r\n \"https://developer.moneris.com/Documentation/NA/E-Commerce%20Solutions/MCP\",\r\n vault_secondary_link:\r\n \"https://www.moneris.com/en/support/devices/moneris-gateway\",\r\n\r\n user_guide: \"User guide\",\r\n launch: \"Launch\",\r\n\r\n this_portal_enhances_your_experience:\r\n \"This portal enhances your experience and utilization of your Go device:\",\r\n easily_configure_and_manage_your_go_devices:\r\n \"Easily configure & manage your Go device(s) settings, users & permissions\",\r\n email_payment_requests_to_your_customers:\r\n \"Email payment requests to your customers, process & refund transactions\",\r\n realtime_cloud_reporting: \"Realtime cloud reporting\",\r\n\r\n this_platform_allows_you_to_securely_manage:\r\n \"This platform allows you to securely manage payments on your website:\",\r\n enables_you_to_accept:\r\n \"Enables you to accept and process payments from your website\",\r\n manage_and_configure_users: \"Manage and configure users and permissions\",\r\n customize_payment_pages_leveraging_our_api:\r\n \"Customize payment pages leveraging our API\",\r\n\r\n this_is_your_business_hub:\r\n \"This is your business hub where you can access resources and tools to manage your business needs:\",\r\n view_monthly_statement_and_reports: \"View monthly statement and reports\",\r\n order_additional_devices: \"Order additional devices\",\r\n manage_chargebacks_and_disputes: \"Manage chargebacks and disputes\",\r\n\r\n this_platform_allows_you_configure_your_payd_solution:\r\n \"This platform allows you configure your PAYD solution:\",\r\n manage_inventory_and_generate_reports_to_help_you:\r\n \"Manage inventory and generate reports to help you\",\r\n stay_on_top_of_your_business: \"Stay on top of your business\",\r\n manage_access_settings_for_employees_and_customers:\r\n \"Manage access settings for employees and customers\",\r\n\r\n setup_guide: \"Setup guide\",\r\n set_up_now: \"Set up now\",\r\n set_up_your_account_with_the_following_info:\r\n \"Set up your account(s) with the following info\",\r\n merchant_id: \"Merchant ID: \",\r\n store_id: \"Store ID: \",\r\n go_portal: \"Go Portal\",\r\n moneris_gateway: \"Moneris Gateway\",\r\n merchant_direct: \"Merchant Direct\",\r\n payd_administration: \"PAYD Administration\",\r\n set_up_your_business_command_centre: \"Set up your business command centre\",\r\n your_portals: \"Your portal(s)\",\r\n show_all_acc_info: \"Show all account info\",\r\n\r\n go_portal_business_primary_link: \"https://www.monerisgo.com/signup\",\r\n go_portal_business_secondary_link:\r\n \"https://www.moneris.com/help/mgoportal_sso-eng/#t=Getting_started%2Fhomepage.htm\",\r\n moneris_gateway_business_primary_link:\r\n \"https://www3.moneris.com/mpg/activate/\",\r\n moneris_gateway_business_secondary_link:\r\n \"https://www.moneris.com/en/support/devices/moneris-gateway\",\r\n payd_administration_business_primary_link:\r\n \"https://my.getpayd.com/ebox/merchant/activate/lang=EN\",\r\n payd_administration_business_secondary_link:\r\n \"https://my.getpayd.com/help/en_CA/moneris_pos_webhelp_home.htm\",\r\n\r\n go_portal_portal_primary_link: \"https://www.monerisgo.com/login\",\r\n moneris_gateway_portal_primary_link:\r\n \"https://www3.moneris.com/mpg/index.php\",\r\n merchant_direct_portal_secondary_link:\r\n \"https://www.moneris.com/en/support/products/merchant-direct\",\r\n payd_administration_portal_primary_link:\r\n \"https://my.getpayd.com/ebox/?a=log&lang=EN\",\r\n moneris_insight_desc_main:\r\n \"Leverage the power of data and turn analysis into action with dedicated business insights:\",\r\n moneris_insight_desc_point1: \"View your up-to-date sales and forecasts.\",\r\n moneris_insight_desc_point2:\r\n \"Better understand where your customers live and shop.\",\r\n moneris_insight_desc_point3: \"Get to know who your competition is.\",\r\n moneris_insight_desc_point4:\r\n \"Create personalized goals and receive key insights on your business.\",\r\n moneris_insight_secondary_link:\r\n \"https://www.moneris.com/en/support/products/moneris-insights\",\r\n go_portal_desc_main:\r\n \"This portal enhances your experience and utilization of your Go device and Moneris Online :\",\r\n go_portal_desc_point1:\r\n \"Easily configure & manage your Go device(s) and Moneris Online settings, users & permissions.\",\r\n go_portal_desc_point2:\r\n \"Email payment requests to your customers, process & refund transactions.\",\r\n go_portal_desc_point3: \"Realtime cloud reporting.\",\r\n activate: \"Activate\",\r\n },\r\n fr: {\r\n your_devices_and_services: \"Vos appareils et services\",\r\n\r\n desk_5000: \"Terminal Desk/5000\",\r\n learn_how_to_set_up_your_device:\r\n \"Découvrez comment configurer l’appareil pour répondre à vos besoins, traiter des transactions quotidiennes, et plus encore.\",\r\n ict250: \"Terminal iCT250\",\r\n ict250_with_ipp320: \"Terminal iCT250 avec clavier NIP iPP320\",\r\n instalink_ivr: \"Système de réponse vocale interactive Instalink\",\r\n ipp320: \"Clavier NIP iPP320\",\r\n iwl220: \"Terminal iWL220\",\r\n iwl255: \"Terminal iWL255\",\r\n moneris_go: \"Terminal Moneris Go\",\r\n moneris_go_plus: \"Terminal Moneris Go Plus\",\r\n move_5000: \"Terminal Move/5000\",\r\n p400: \"Clavier NIP P400\",\r\n payd_pro_plus: \"PAYD Pro Plus\",\r\n payd_pro_plus_with_ipp320: \"PAYD Pro Plus avec clavier NIP iPP320\",\r\n ux_301: \"Appareil UX 301\",\r\n v400c: \"Terminal V400c\",\r\n v400c_with_p400: \"Terminal V400c avec clavier NIP P400\",\r\n v400m: \"Terminal V400m\",\r\n vx_520: \"Terminal VX 520\",\r\n vx_820_duet: \"Terminal VX 820 Duet\",\r\n \"3ds\": \"Solution 3DS\",\r\n learn_how_to_set_up_your_service:\r\n \"Découvrez comment configurer cette solution.\",\r\n gift_card: \"Cartes-cadeaux\",\r\n kount: \"Kount\",\r\n multi_currency_pricing: \"Tarification multidevise\",\r\n vault: \"Chambre forte\",\r\n\r\n desk_5000_secondary_link:\r\n \"https://www.moneris.com/fr-ca/soutien/configuration/desk5000\",\r\n ict250_secondary_link:\r\n \"https://www.moneris.com/help/iCT250_Webhelp2021/ict250_webhelp_index.htm\",\r\n ict250_with_ipp320_secondary_link:\r\n \"https://www.moneris.com/-/media/files/devices/ict250/ict250_v532_ref_guide_frn.ashx\",\r\n instalink_ivr_secondary_link:\r\n \"https://www.moneris.com/-/media/files/devices/instalink-ivr/instalink-ivr-ref-guide-fr.ashx\",\r\n ipp320_secondary_link:\r\n \"https://www.moneris.com/-/media/files/downloadable_guides/ipp320_mrc_qig-frn.ashx\",\r\n iwl220_secondary_link:\r\n \"https://www.moneris.com/help/iWL220_Webhelp2021/iWL220_webhelp_index.htm\",\r\n iwl255_secondary_link:\r\n \"https://www.moneris.com/help/iWL255_Webhelp2021/iWL255_webhelp_index.htm\",\r\n moneris_go_secondary_link:\r\n \"https://www.moneris.com/fr-ca/soutien/moneris-go/moneris-go\",\r\n moneris_go_plus_secondary_link:\r\n \"https://www.moneris.com/fr-ca/soutien/configuration/moneris-go-plus\",\r\n move_5000_secondary_link:\r\n \"https://www.moneris.com/fr-ca/soutien/configuration/move5000\",\r\n p400_secondary_link:\r\n \"https://www.moneris.com/-/media/files/downloadable_guides/p400_mrc_qig-frn.ashx\",\r\n payd_pro_plus_secondary_link:\r\n \"https://my.getpayd.com/help/en_CA/moneris_pos_webhelp_home.htm\",\r\n payd_pro_plus_with_ipp320_secondary_link:\r\n \"https://www.moneris.com/-/media/files/payd-pro-plus/mobile-guides---fr/ipp320-ref-guide-fr.ashx\",\r\n ux_301_secondary_link:\r\n \"https://www.moneris.com/-/media/files/devices/ux-301/ux-301-quick-reference-guide-fr-v1.ashx\",\r\n v400c_secondary_link:\r\n \"https://www.moneris.com/fr-ca/soutien/configuration/v400c\",\r\n v400c_with_p400_secondary_link:\r\n \"https://www.moneris.com/fr-ca/soutien/configuration/v400c\",\r\n v400m_secondary_link:\r\n \"https://www.moneris.com/fr-ca/soutien/configuration/v400m\",\r\n vx_520_secondary_link:\r\n \"https://www.moneris.com/help/FR/FR_520_VCE_Webhelp/welcome_page.htm#t=Structure_Files%2Fwelcome_page.htm\",\r\n vx_820_duet_secondary_link:\r\n \"https://www.moneris.com/help/FR/FR_820_VCE_Webhelp/welcome_page.htm#t=Structure_Files%2Fwelcome_page.htm\",\r\n \"3ds_secondary_link\":\r\n \"https://developer.moneris.com/livedemo/3ds2/about/guide/dotnet\",\r\n gift_card_secondary_link:\r\n \"https://www.moneris.com/fr-ca/soutien/produits/cartes-cadeaux\",\r\n kount_secondary_link:\r\n \"https://developer.moneris.com/Documentation/NA/E-Commerce%20Solutions/E-Fraud/Kount\",\r\n multi_currency_pricing_secondary_link:\r\n \"https://developer.moneris.com/Documentation/NA/E-Commerce%20Solutions/MCP\",\r\n vault_secondary_link:\r\n \"https://www.moneris.com/fr-ca/soutien/appareils/passerelle-moneris\",\r\n\r\n user_guide: \"Guide d’utilisateur\",\r\n launch: \"Lancer\",\r\n\r\n this_portal_enhances_your_experience:\r\n \"Ce portail améliore votre expérience et l’utilisation de votre appareil Moneris Go :\",\r\n easily_configure_and_manage_your_go_devices:\r\n \"Configurez et gérez facilement les paramètres, les utilisateurs et les permissions de vos appareils Go\",\r\n email_payment_requests_to_your_customers:\r\n \"Envoyez des demandes de paiement par courriel à vos clients, en plus de traiter des transactions et des remboursements\",\r\n realtime_cloud_reporting:\r\n \"Accédez à des rapports infonuagiques en temps réel\",\r\n\r\n this_platform_allows_you_to_securely_manage:\r\n \"Cette plateforme vous permet de gérer de façon sécuritaire les paiements de votre site Web :\",\r\n enables_you_to_accept:\r\n \"Acceptez et traitez les paiements depuis votre site Web\",\r\n manage_and_configure_users:\r\n \"Gérez et configurez les utilisateurs et les permissions\",\r\n customize_payment_pages_leveraging_our_api:\r\n \"Personnalisez vos pages de paiement avec notre API\",\r\n\r\n this_is_your_business_hub:\r\n \"Marchand Direct est votre ressource centrale pour gérer les besoins de votre entreprise :\",\r\n view_monthly_statement_and_reports:\r\n \"Accédez à des relevés mensuels et à des rapports.\",\r\n order_additional_devices: \"Commandez des appareils supplémentaires.\",\r\n manage_chargebacks_and_disputes:\r\n \"Gérez les débits compensatoires et les différends.\",\r\n\r\n this_platform_allows_you_configure_your_payd_solution:\r\n \"Cette plateforme vous permet de configurer votre solution PAYD :\",\r\n manage_inventory_and_generate_reports_to_help_you:\r\n \"Gérez vos stocks et produisez des rapports\",\r\n stay_on_top_of_your_business:\r\n \"Restez au fait des tendances de votre entreprise\",\r\n manage_access_settings_for_employees_and_customers:\r\n \"Gérez les paramètres d’accès de vos employés et de vos clients\",\r\n\r\n setup_guide: \"Guide de configuration\",\r\n set_up_now: \"Configurer maintenant\",\r\n set_up_your_account_with_the_following_info:\r\n \"Configurer vos comptes avec les identifiants suivants\",\r\n merchant_id: \"ID de commerçant : \",\r\n store_id: \"ID de magasin : \",\r\n go_portal: \"Portail Moneris Go\",\r\n moneris_gateway: \"Passerelle Moneris\",\r\n merchant_direct: \"Marchand Direct\",\r\n payd_administration: \"Administration PAYD\",\r\n set_up_your_business_command_centre:\r\n \"Configurer le centre de commande de mon entreprise\",\r\n your_portals: \"Votre portail\",\r\n show_all_acc_info: \"Afficher toutes les informations du compte\",\r\n\r\n go_portal_business_primary_link: \"https://www.monerisgo.com/fr/signup\",\r\n go_portal_business_secondary_link:\r\n \"https://www.moneris.com/help/mgoportal_sso-frn/#t=Getting_started%2Fhomepage.htm\",\r\n moneris_gateway_business_primary_link:\r\n \"https://www3.moneris.com/mpg/activate/\",\r\n moneris_gateway_business_secondary_link:\r\n \"https://www.moneris.com/fr-ca/soutien/appareils/passerelle-moneris\",\r\n payd_administration_business_primary_link:\r\n \"https://my.getpayd.com/ebox/merchant/activate/&lang=FR\",\r\n payd_administration_business_secondary_link:\r\n \"https://my.getpayd.com/help/en_CA/moneris_pos_webhelp_home.htm\",\r\n\r\n go_portal_portal_primary_link: \"https://www.monerisgo.com/fr/login\",\r\n moneris_gateway_portal_primary_link:\r\n \"https://www3.moneris.com/mpg/?chlang=fr\",\r\n merchant_direct_portal_secondary_link:\r\n \"https://www.moneris.com/fr-ca/soutien/produits/marchand-direct\",\r\n payd_administration_portal_primary_link:\r\n \"https://my.getpayd.com/ebox/?a=log&lang=FR\",\r\n moneris_insight_desc_main:\r\n \"Profitez de la puissance des données et concrétisez vos analyses grâce à des données d’entreprise précises :\",\r\n moneris_insight_desc_point1:\r\n \"Consultez les données de vos ventes et les prévisions les plus récentes.\",\r\n moneris_insight_desc_point2:\r\n \"Connaissez où votre clientèle consomme et dépense.\",\r\n moneris_insight_desc_point3: \"Apprenez à connaître la concurrence.\",\r\n moneris_insight_desc_point4:\r\n \"Créez des objectifs personnalisés et obtenez des données clés sur votre entreprise.\",\r\n moneris_insight_secondary_link:\r\n \"https://www.moneris.com/fr-ca/soutien/produits/intelligence-moneris\",\r\n go_portal_desc_main:\r\n \"Ce portail vous permet de mieux utiliser votre appareil Moneris Go et votre solution Moneris Online :\",\r\n go_portal_desc_point1:\r\n \"Configurez et gérez facilement les paramètres, les utilisateurs et les permissions de vos appareils Moneris Go et de votre solution Moneris Online\",\r\n go_portal_desc_point2:\r\n \"Envoyez des demandes de paiement par courriel à vos clients, en plus de traiter des transactions et des remboursements\",\r\n go_portal_desc_point3:\r\n \"Accédez à des rapports infonuagiques en temps réel.\",\r\n activate: \"Activez\",\r\n },\r\n};\r\n\r\nexport default messages;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { PrimaryButton, SecondaryButton } from \"@moneris-portal/button\";\r\nimport applicationDescription from \"./constant\";\r\nimport createTranslator from \"../../../util/translationHelper\";\r\nimport messages from \"./translations/messages\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\n// import { userActions } from \"../../../contextProviders/constant\";\r\nimport \"./index.scss\";\r\n\r\nexport default function ApplicationCard(props) {\r\n const {\r\n applicationObject,\r\n token,\r\n handleAuditLog,\r\n isAutoRedirect = true,\r\n handleAppLaunch = () => null,\r\n handleActivateTile,\r\n } = props;\r\n const {\r\n app_title,\r\n app_logo,\r\n login_endpoint,\r\n status = \"Active\",\r\n app_description,\r\n app_code = \"\",\r\n is_activated = true,\r\n } = applicationObject;\r\n const translate = createTranslator(messages);\r\n const { instance } = useMsal();\r\n\r\n const handleApplicationCardClick = () => {\r\n if (app_code?.toString()?.toLowerCase() === \"idi\") {\r\n window.open(`${login_endpoint}`, \"_blank\");\r\n } else {\r\n const accountList = instance.getAllAccounts() ?? [];\r\n if (token && accountList.length) {\r\n handleAuditLog({ appCode: app_code, success: true });\r\n window.open(`${login_endpoint}?token=${token}&sso=1`, \"_blank\");\r\n } else {\r\n console.log(\"no user signed in\");\r\n window.location.reload();\r\n }\r\n }\r\n };\r\n\r\n const handleActivateApp = (appCode) => {\r\n handleActivateTile(appCode);\r\n };\r\n\r\n const handleMiddlewareLaunch = () => {\r\n const lang = window.localStorage?.getItem(\"lang\") ?? \"en\";\r\n window.sessionStorage.setItem(\"activeSession\", true);\r\n window.localStorage.setItem(\"tempMgoRedirectUrl\", login_endpoint);\r\n window.open(\r\n `${window.location.origin}/${lang}/home?app_code=${app_code}`,\r\n \"_blank\"\r\n );\r\n };\r\n\r\n const appDescription = () => {\r\n let appInfo = app_description;\r\n if (\r\n applicationDescription.hasOwnProperty(app_code?.toString()?.toLowerCase())\r\n ) {\r\n const { desc = \"\", list = [] } =\r\n applicationDescription[app_code?.toString()?.toLowerCase()] ?? {};\r\n appInfo = (\r\n
\r\n

{translate(desc)}

\r\n

\r\n

    \r\n {list.map((item) => (\r\n
  • {translate(item)}
  • \r\n ))}\r\n
\r\n

\r\n
\r\n );\r\n }\r\n return appInfo;\r\n };\r\n\r\n const handleUserGuide = () => {\r\n if (\r\n applicationDescription.hasOwnProperty(app_code?.toString()?.toLowerCase())\r\n ) {\r\n const { urlCode = \"\" } =\r\n applicationDescription[app_code?.toString()?.toLowerCase()] ?? {};\r\n const url = translate(urlCode);\r\n if (url) window.open(url, \"_blank\");\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n \"\"\r\n
\r\n
\r\n
\r\n {app_title}\r\n
\r\n
\r\n {appDescription()}\r\n
\r\n
\r\n \r\n \r\n status === \"Active\"\r\n ? !is_activated\r\n ? handleActivateApp(app_code)\r\n : isAutoRedirect\r\n ? handleMiddlewareLaunch()\r\n : handleApplicationCardClick()\r\n : \"\"\r\n }\r\n />\r\n
\r\n
\r\n \r\n \r\n );\r\n}\r\n\r\nApplicationCard.defaultProps = {\r\n applicationObject: {},\r\n};\r\n\r\nApplicationCard.propTypes = {\r\n applicationObject: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n icon: PropTypes.string.isRequired,\r\n desc: PropTypes.string.isRequired,\r\n link: PropTypes.string.isRequired,\r\n status: PropTypes.string.isRequired,\r\n appId: PropTypes.string.isRequired,\r\n }),\r\n};\r\n","const messages = {\r\n en: {\r\n useful_links: \"Useful links\",\r\n fraud_prevention_101: \"Fraud prevention 101\",\r\n tips_and_tactics: \"Tips and tactics to prevent fraud.\",\r\n fraud_prevention_101_link:\r\n \"https://www.moneris.com/en/insights/posts/fraud-prevention/fraud-prevention-101-tips-and-tactics-to-prevent-fraud?category=%7b73F11F64-E5E9-451A-B1FD-050A32A987C3%7d\",\r\n contact_us: \"Contact us\",\r\n talk_to_business: \"Talk to business advisers for additional support.\",\r\n contact_us_link: \"https://www.moneris.com/en/support/contact\",\r\n },\r\n fr: {\r\n useful_links: \"Liens utiles\",\r\n fraud_prevention_101: \"Protection contre la fraude 101\",\r\n tips_and_tactics: \"Conseils et tactiques pour prévenir la fraude.\",\r\n fraud_prevention_101_link:\r\n \"https://www.moneris.com/fr-ca/ressources/posts/prevention-de-la-fraude/protection-contre-la-fraude-101-conseils-et-tactiques-pour-prevenir-la-fraude?category=%7B73F11F64-E5E9-451A-B1FD-050A32A987C3%7D\",\r\n contact_us: \"Nous joindre\",\r\n talk_to_business:\r\n \"Discutez avec l’un de nos conseillers d’affaires pour obtenir du soutien supplémentaire.\",\r\n contact_us_link: \"https://www.moneris.com/fr-ca/soutien/contact\",\r\n },\r\n};\r\n\r\nexport default messages;\r\n","import React from \"react\";\r\nimport ResponsiveLink from \"@moneris-portal/responsive-link\";\r\nimport messages from \"./translations/messages\";\r\nimport createTranslator from \"../../../util/translationHelper\";\r\n\r\nimport \"./index.scss\";\r\n\r\nconst usefulLinksConfig = [\r\n {\r\n title: \"fraud_prevention_101\",\r\n text: \"tips_and_tactics\",\r\n link: \"fraud_prevention_101_link\",\r\n },\r\n {\r\n title: \"contact_us\",\r\n text: \"talk_to_business\",\r\n link: \"contact_us_link\",\r\n },\r\n];\r\n\r\nconst UsefulLinks = ({ loading = false }) => {\r\n const translate = createTranslator(messages);\r\n\r\n return (\r\n
\r\n {usefulLinksConfig.map(({ title, link, text }) => (\r\n
\r\n \r\n

{translate(text)}

\r\n
\r\n ))}\r\n
\r\n );\r\n};\r\n\r\nexport default UsefulLinks;\r\n","import React from \"react\";\r\n\r\nconst LinkIcon = ({ color = \"#007191\", width = 24, height = 24 }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LinkIcon;\r\n","import React from \"react\";\r\nimport LinkIcon from \"./LinkIcon/index\";\r\nimport ResponsiveLink from \"@moneris-portal/responsive-link\";\r\n\r\nimport \"./index.scss\";\r\n\r\nconst ResourceCard = ({\r\n loading = false,\r\n title,\r\n imageSrc,\r\n children,\r\n link,\r\n linkText,\r\n linkAnchorAttributes,\r\n}) => (\r\n
\r\n
\r\n {imageSrc && (\r\n \r\n )}\r\n\r\n
\r\n {title &&

{title}

}\r\n {children &&
{children}
}\r\n
\r\n
\r\n\r\n {link && linkText && (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n);\r\n\r\nexport default ResourceCard;\r\n","export default __webpack_public_path__ + \"static/media/Insight_Image.8d5ba358.jpg\";","export default __webpack_public_path__ + \"static/media/Book_Mockup_EN.3ea466a6.jpg\";","export default __webpack_public_path__ + \"static/media/Book_Mockup_FR.f176c052.jpg\";","export default __webpack_public_path__ + \"static/media/GiftCard_1.b2bf597a.png\";","const messages = {\r\n en: {\r\n resources: 'Resources',\r\n\r\n start_a_digital_storefront: \"'Start a digital storefront' e-book\",\r\n build_your_online_business: 'Build your online business with our step-by-step guide.',\r\n download_free_today: 'Download free today',\r\n start_a_digital_storefront_link: 'https://go.moneris.com/ecommguide',\r\n\r\n industry_insights_blog: 'Industry insights blog',\r\n stay_informed:\r\n 'Stay informed on the latest industry knowledge and practical tips from our experts.',\r\n learn_now: 'Learn now',\r\n industry_insights_blog_link: 'https://www.moneris.com/en/insights',\r\n\r\n exclusive_time_limited_offer: 'Exclusive time-limited offer',\r\n boost_your_sales: 'Boost your sales and enhance your payment security and flexibility.',\r\n unlock_your_offer: 'Unlock your offer',\r\n exclusive_time_limited_offer_link: 'https://go.moneris.com/giftcardoffer-is',\r\n },\r\n fr: {\r\n resources: 'Ressources',\r\n\r\n start_a_digital_storefront:\r\n '‘Créez une nouvelle vitrine commerciale en ligne’ (livre électronique)',\r\n build_your_online_business: 'Créez votre commerce en ligne grâce à notre guide détaillé.',\r\n download_free_today: \"Télécharger le guide gratuit aujourd'hui\",\r\n start_a_digital_storefront_link: 'https://go.moneris.com/guidecommerceelectronique',\r\n\r\n industry_insights_blog: 'Blogue de ressources sur l’industrie',\r\n stay_informed:\r\n 'Restez au courant des plus récentes tendances de l’industrie et obtenez des conseils pratiques de nos experts.',\r\n learn_now: 'Apprendre maintenant',\r\n industry_insights_blog_link: 'https://www.moneris.com/fr-ca/ressources',\r\n\r\n exclusive_time_limited_offer: 'Offre d’une durée limitée exclusive',\r\n boost_your_sales:\r\n 'Augmentez vos ventes et améliorez la sécurité et la flexibilité de vos paiements.',\r\n unlock_your_offer: 'Profiter de l’offre',\r\n exclusive_time_limited_offer_link: 'https://go.moneris.com/giftcardoffer-is',\r\n },\r\n};\r\n\r\nexport default messages;\r\n","import React from \"react\";\r\nimport ResourceCard from \"../ResourceCard/index\";\r\nimport InsightImage from \"./assets/Insight_Image.jpg\";\r\nimport BookMockupEn from \"./assets/Book_Mockup_EN.jpg\";\r\nimport BookMockupFr from \"./assets/Book_Mockup_FR.jpg\";\r\nimport GiftCard from \"./assets/GiftCard_1.png\";\r\nimport createTranslator from \"../../../util/translationHelper\";\r\nimport messages from \"./translations/messages\";\r\n\r\nimport \"./index.scss\";\r\n\r\nconst ResourceCardRow = ({ lang, loading }) => {\r\n const translate = createTranslator(messages);\r\n\r\n return (\r\n
\r\n

{translate(\"resources\")}

\r\n\r\n
\r\n \r\n

{translate(\"build_your_online_business\")}

\r\n \r\n \r\n

{translate(\"stay_informed\")}

\r\n \r\n \r\n

{translate(\"boost_your_sales\")}

\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ResourceCardRow;\r\n","const messages = {\r\n en: {\r\n useful_links: \"Useful links\",\r\n },\r\n fr: {\r\n useful_links: \"Liens utiles\",\r\n },\r\n};\r\n\r\nexport default messages;\r\n","\r\nconst lang = window.localStorage.getItem('lang');\r\n\r\nconst MgoUrlList = [\r\n `https://go-dev1.moneris.io/${lang}/login`,\r\n `https://go-dev2.moneris.io/${lang}/login`,\r\n `https://go-dev3.moneris.io/${lang}/login`,\r\n `https://go-dev4.moneris.io/${lang}/login`,\r\n `https://go-cert.moneris.io/${lang}/login`,\r\n `https://go-preview.moneris.io/${lang}/login`,\r\n `https://goretail-qa.moneris.io/${lang}/login`,\r\n];\r\n\r\nexport default MgoUrlList;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { AuthenticatedTemplate, useMsal } from \"@azure/msal-react\";\r\nimport ApplicationCard from \"../Library/ApplicationCard\";\r\nimport Notification from \"@moneris-portal/notification\";\r\nimport UsefulLinks from \"./UsefulLinks/index\";\r\nimport ResourceCardRow from \"./ResourceCardRow/index\";\r\nimport createTranslator from \"../../util/translationHelper\";\r\nimport messages from \"./translations/messages\";\r\nimport getToken from \"../../util/tokenGenerator\";\r\nimport MgoUrlList from \"./constant\";\r\n\r\nimport \"./index.scss\";\r\n\r\nexport const PageLayout = ({\r\n apps = [],\r\n username,\r\n handleAuditLog,\r\n children,\r\n handleActivateTile,\r\n updateAppLaunchState = () => null,\r\n}) => {\r\n const { instance, inProgress, accounts } = useMsal();\r\n const [isError, setError] = useState(false);\r\n // qa exception for MGO\r\n const [newMgoList, setNewMgoList] = useState([]);\r\n const [token, setToken] = useState(\"\");\r\n const language = window?.localStorage?.getItem(\"lang\") ?? \"en\";\r\n const translate = createTranslator(messages);\r\n const searchParams = new URLSearchParams(window?.location?.search) ?? \"\";\r\n const location = window?.location?.href ?? \"\";\r\n const isMgoDev = (searchParams?.get(\"dev_mode\") ?? \"\").toLowerCase();\r\n\r\n useEffect(async () => {\r\n if (token === \"\" && apps.length) {\r\n const idToken = await getToken(instance, inProgress, accounts, setError);\r\n setToken(idToken);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (\r\n isMgoDev === \"mogo\" &&\r\n (location.toString().toLowerCase().includes(\"qa\") ||\r\n location.toString().toLowerCase().includes(\"localhost\"))\r\n ) {\r\n apps.forEach((item) => {\r\n if ((item?.app_code ?? \"\").toLowerCase() === \"mogo\") {\r\n const tempMgoList = [];\r\n MgoUrlList.forEach((url) => {\r\n const tempTile = {\r\n ...item,\r\n login_endpoint: url,\r\n app_title: `${item.app_title}(${url})`,\r\n };\r\n tempMgoList.push(tempTile);\r\n });\r\n setNewMgoList(tempMgoList);\r\n }\r\n });\r\n }\r\n }, [isMgoDev]);\r\n\r\n /**\r\n * Most applications will need to conditionally render certain components based on whether a user is signed in or not.\r\n * msal-react provides 2 easy ways to do this. AuthenticatedTemplate and UnauthenticatedTemplate components will\r\n * only render their children if a user is authenticated or unauthenticated, respectively.\r\n */\r\n return (\r\n
\r\n {/* */}\r\n
\r\n
\r\n {children}\r\n
\r\n \r\n
\r\n

\r\n {`${\r\n language === \"en\" ? \"Welcome back\" : \"Content de te revoir\"\r\n }, ${username}!`}\r\n

\r\n {isError && (\r\n
\r\n \r\n {`${\r\n language === \"en\"\r\n ? \"Something went wrong. Try again.\"\r\n : \"Une erreur c'est produit. Veuillez essayer de nouveau.\"\r\n }\r\n `}\r\n \r\n
\r\n )}\r\n\r\n
\r\n

{language === \"en\" ? \"Your portal(s)\" : \"Votre portail\"}

\r\n
\r\n {apps?.length !== 0 &&\r\n apps.map((val) => {\r\n let { login_endpoint = \"\", app_code } = val;\r\n login_endpoint = login_endpoint.replace(\"{lang}\", language);\r\n return (\r\n \r\n // await getToken(instance, inProgress, accounts, setError)\r\n // }\r\n token={token}\r\n handleAuditLog={handleAuditLog}\r\n isAutoRedirect={\r\n app_code?.toString().toLowerCase() === \"mogo\"\r\n }\r\n handleAppLaunch={(action) => {\r\n updateAppLaunchState(action);\r\n }}\r\n />\r\n );\r\n })}\r\n {/* exception for MGO */}\r\n {newMgoList?.length !== 0 &&\r\n newMgoList.map((val) => {\r\n let { login_endpoint = \"\", app_code } = val;\r\n login_endpoint = login_endpoint.replace(\"{lang}\", language);\r\n return (\r\n \r\n // await getToken(instance, inProgress, accounts, setError)\r\n // }\r\n token={token}\r\n handleAuditLog={handleAuditLog}\r\n isAutoRedirect={\r\n app_code?.toString().toLowerCase() === \"mogo\"\r\n }\r\n handleAppLaunch={(action) => {\r\n updateAppLaunchState(action);\r\n }}\r\n />\r\n );\r\n })}\r\n\r\n {apps.length === 0 && (\r\n

\r\n {language === \"en\"\r\n ? \"No data to display\"\r\n : `Aucune donnée n'est disponible`}\r\n

\r\n )}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n

{translate(\"useful_links\")}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { PrimaryButton } from \"@moneris-portal/button\";\r\nimport \"./index.scss\";\r\n\r\nfunction EncourageSetup(props) {\r\n const { history, handleShowStep } = props;\r\n const lang = window.localStorage?.getItem('lang') ?? 'en';\r\n const handleNavigation = () => {\r\n handleShowStep();\r\n history.push(`/${lang}/setting?action=Security`);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

Two-Factor Authentication Update

\r\n

\r\n In order to increase the security of your Single Sign On account, we\r\n highly recommend that you select stronger 2FA method on the\r\n following screen\r\n

\r\n

Click on the button below to get started.

\r\n \r\n
\r\n

handleShowStep()}>Do it later

\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default EncourageSetup;\r\n","const messages = {\r\n en: {\r\n invalid_message: \"Something went wrong. Try again.\",\r\n welcome_back:'Welcome back'\r\n },\r\n fr: {\r\n invalid_message: `Une erreur c'est produit. Veuillez essayer de nouveau.`,\r\n welcome_back:'Content de te revoir'\r\n },\r\n};\r\n\r\nexport default messages;\r\n","const partnerPortalUrls = {\r\n DEV: \"https://www1-qa.moneris.com/{lang}/login\",\r\n QA: \"https://www1-qa.moneris.com/{lang}/login\",\r\n PROD: \"https://partners.moneris.com/{lang}/login\",\r\n};\r\n\r\nconst md2Urls = (lang = \"en\") => {\r\n const url = {\r\n DEV: `https://www1-qa.moneris.com/${lang}/home`,\r\n QA: `https://www1-qa.moneris.com/${lang}/home`,\r\n PROD: `https://www2.moneris.com/${lang}/home`,\r\n };\r\n return url;\r\n};\r\n\r\nexport { partnerPortalUrls, md2Urls };\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { PageLayout } from \"../../components/Home/PageLayout\";\r\nimport { useAppStateProvider } from \"../../contextProviders/AppStateProvider\";\r\nimport { useInfoProvider } from \"../../contextProviders/InfoProvider\";\r\nimport { useAppLaunchProvider } from \"../../contextProviders/AppLaunchProvider\";\r\nimport handleWindowPopUp from \"../../util/handleWindowPopup\";\r\nimport { userActions } from \"../../contextProviders/constant\";\r\nimport EncourageSetup from \"../../components/SetupModal/index\";\r\nimport createTranslator from \"../../util/translationHelper\";\r\nimport Notification from \"@moneris-portal/notification\";\r\nimport { ToastMessage, addToastMessage } from \"@moneris-portal/toastmessage\";\r\nimport messages from \"./translations/messages\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport Loader from \"@moneris-portal/loader\";\r\nimport getToken from \"../../util/tokenGenerator\";\r\nimport { sortObjectByValue, hashSha256 } from \"../../util/helper\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\nimport { env } from \"../../cfg/env\";\r\nimport { partnerPortalUrls, md2Urls } from \"./constant\";\r\nimport { b2cPolicies } from \"../../authConfig\";\r\n\r\nimport \"./index.scss\";\r\n\r\nfunction Home({ lang }) {\r\n const { instance, inProgress, accounts } = useMsal();\r\n const homeAccountId = accounts[0]?.homeAccountId ?? \"\";\r\n const logoutRequest = {\r\n account: instance.getAccountByHomeId(homeAccountId),\r\n };\r\n const history = useHistory();\r\n const searchParams = new URLSearchParams(window?.location?.search) ?? \"\";\r\n const logoutAction = searchParams.get(\"logout\");\r\n const appCodeToLaunch = searchParams.get(\"app_code\")?.toLowerCase() ?? \"\";\r\n const { appState = {}, updateAppStateLocal } = useAppStateProvider();\r\n const { updateAppLaunchState } = useAppLaunchProvider();\r\n const { dispatch } = useInfoProvider();\r\n const {\r\n apps = [{}],\r\n profile = {},\r\n isLoading = false,\r\n isMd2Lite = false,\r\n isPopUpBlocked,\r\n isObSetup = false,\r\n hasPartnerRole = null,\r\n hasSharedCashRole = null,\r\n } = appState;\r\n\r\n const { app_code = \"\" } = apps[0] ?? {};\r\n // temporary disabling encourgement step\r\n const isEncourgementStepEnabled =\r\n !(apps.length === 1 && app_code === \"DE\") && false;\r\n const [showStep, handleShowStep] = useState(isEncourgementStepEnabled);\r\n const [isError, setError] = useState(false);\r\n\r\n const { firstName = \"Username\", lastName = \"\", userEmail } = profile;\r\n const { firstSignIn = false } = profile;\r\n const translate = createTranslator(messages, lang);\r\n // const testVar = window.localStorage?.getItem(\"testVar\") ?? \"false\";\r\n\r\n useEffect(async () => {\r\n if (hasPartnerRole && logoutAction !== \"true\") {\r\n const token = await getToken(instance, inProgress, accounts, setError);\r\n if (token) {\r\n const envType = env?.appEnv ?? \"PROD\";\r\n const partnerUrl = partnerPortalUrls[envType];\r\n const isRedirected = handleWindowPopUp(\r\n `${partnerUrl\r\n ?.toString()\r\n ?.replace(\"{lang}\", lang)}?token=${token}&sso=1${\r\n envType === \"PROD\" ? \"\" : \"&type=partner\"\r\n }`,\r\n \"_self\"\r\n );\r\n if (!isRedirected) {\r\n updateAppStateLocal({ isPopUpBlocked: true, isLoading: false });\r\n window.sessionStorage.setItem(\"isPopUpBlocked\", true);\r\n }\r\n } else {\r\n updateAppStateLocal({ isLoading: false });\r\n }\r\n }\r\n }, [hasPartnerRole]);\r\n\r\n useEffect(async () => {\r\n if (hasSharedCashRole && logoutAction !== \"true\") {\r\n const token = await getToken(instance, inProgress, accounts, setError);\r\n if (token) {\r\n const md2Url = md2Urls(lang)[env?.appEnv ?? \"PROD\"];\r\n const isRedirected = handleWindowPopUp(\r\n `${md2Url?.toString()}?token=${token}&sso=1`,\r\n \"_self\"\r\n );\r\n if (!isRedirected) {\r\n updateAppStateLocal({ isPopUpBlocked: true, isLoading: false });\r\n window.sessionStorage.setItem(\"isPopUpBlocked\", true);\r\n }\r\n } else {\r\n updateAppStateLocal({ isLoading: false });\r\n }\r\n }\r\n }, [hasSharedCashRole]);\r\n\r\n useEffect(\r\n function () {\r\n if (userEmail) {\r\n const hashPromise = hashSha256(userEmail);\r\n hashPromise\r\n .then((hashedEmail) => {\r\n // Data Layer for Google Tag Manager\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n hashed_email: hashedEmail,\r\n });\r\n // End Data Layer for Google Tag Manager\r\n /*------------------------------------*/\r\n // Google Tag Manager\r\n (function (w, d, s, l, i) {\r\n w[l] = w[l] || [];\r\n w[l].push({ \"gtm.start\": new Date().getTime(), event: \"gtm.js\" });\r\n var f = d.getElementsByTagName(s)[0],\r\n j = d.createElement(s),\r\n dl = l != \"dataLayer\" ? \"&l=\" + l : \"\";\r\n j.async = true;\r\n j.src = \"https://www.googletagmanager.com/gtm.js?id=\" + i + dl;\r\n f.parentNode.insertBefore(j, f);\r\n })(window, document, \"script\", \"dataLayer\", \"GTM-ML3Z37Q\");\r\n // End Google Tag Manager\r\n })\r\n .catch((error) => console.log(error));\r\n }\r\n },\r\n [userEmail]\r\n );\r\n\r\n useEffect(async () => {\r\n const { app_code = \"\", login_endpoint = \"\" } = apps[0] ?? {};\r\n if (logoutAction !== \"true\") {\r\n if (apps?.length === 1 && app_code === \"DE\") {\r\n updateAppStateLocal({ isLoading: true });\r\n const token = await getToken(instance, inProgress, accounts, setError);\r\n const endpoint = login_endpoint?.toString()?.split(\"?\")[0] ?? \"\";\r\n if (token && endpoint) {\r\n const isRedirected = handleWindowPopUp(\r\n `${endpoint}?token=${token}&sso=1&lang=${lang}`,\r\n \"_self\"\r\n );\r\n if (!isRedirected) {\r\n updateAppStateLocal({ isPopUpBlocked: true, isLoading: false });\r\n window.sessionStorage.setItem(\"isPopUpBlocked\", true);\r\n }\r\n } else {\r\n updateAppStateLocal({ isLoading: false });\r\n }\r\n }\r\n // MS-503. disabling second landing page\r\n else {\r\n apps.forEach(async (item) => {\r\n const { app_code = \"\", login_endpoint } = item;\r\n if (app_code?.toString().toLowerCase() === \"md2\" && isObSetup) {\r\n updateAppStateLocal({ isLoading: true });\r\n const token = await getToken(\r\n instance,\r\n inProgress,\r\n accounts,\r\n setError\r\n );\r\n const endpoint = login_endpoint?.toString()?.split(\"?\")[0] ?? \"\";\r\n if (token && endpoint) {\r\n const isRedirected = handleWindowPopUp(\r\n `${endpoint\r\n ?.toString()\r\n ?.replace(\"{lang}\", lang)}?token=${token}&sso=1`,\r\n \"_self\"\r\n );\r\n if (!isRedirected) {\r\n updateAppStateLocal({ isPopUpBlocked: true, isLoading: false });\r\n window.sessionStorage.setItem(\"isPopUpBlocked\", true);\r\n }\r\n } else {\r\n updateAppStateLocal({ isLoading: false });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }, [apps, isObSetup]);\r\n\r\n useEffect(async () => {\r\n let url = env?.sso?.mdliteUser?.redirect ?? \"\";\r\n if (isMd2Lite && logoutAction !== \"true\") {\r\n updateAppStateLocal({ isLoading: true });\r\n const token = await getToken(instance, inProgress, accounts, setError);\r\n if (token && url) {\r\n const isRedirected = handleWindowPopUp(\r\n `${url?.toString()?.replace(\"{lang}\", lang)}?token=${token}&sso=1`,\r\n \"_self\"\r\n );\r\n if (!isRedirected) {\r\n updateAppStateLocal({ isPopUpBlocked: true, isLoading: false });\r\n window.sessionStorage.setItem(\"isPopUpBlocked\", true);\r\n }\r\n } else {\r\n updateAppStateLocal({ isLoading: false });\r\n }\r\n }\r\n }, [isMd2Lite]);\r\n\r\n useEffect(() => {\r\n if (isPopUpBlocked) {\r\n addToastMessage({\r\n variant: \"danger\",\r\n message:\r\n lang === \"en\"\r\n ? `Enable your browser's pop-ups to access the content.`\r\n : `Autorisez les fenêtres contextuelles dans votre navigateur pour accéder au contenu.`,\r\n });\r\n window.sessionStorage.setItem(\"isPopUpBlocked\", false);\r\n updateAppStateLocal({ isPopUpBlocked: false });\r\n }\r\n }, [isPopUpBlocked]);\r\n\r\n //logout user incase application state is not fully authenticated\r\n useEffect(() => {\r\n if (isError) instance.logoutRedirect({ postLogoutRedirectUri: \"/\" });\r\n }, [isError]);\r\n\r\n useEffect(() => {\r\n if (appCodeToLaunch === \"mogo\")\r\n updateAppLaunchState({ type: userActions.authorizeClient });\r\n }, [appCodeToLaunch]);\r\n\r\n useEffect(() => {\r\n // This variable calculate all apps max attempt flags value and return true if any is true\r\n const ismaxAttemptReached = apps.reduce((prevVal, currentObj) => {\r\n const { failed_attempts_exceeded = false } = currentObj;\r\n return prevVal || failed_attempts_exceeded;\r\n }, false);\r\n if (ismaxAttemptReached) {\r\n handleLogout();\r\n }\r\n }, [apps]);\r\n\r\n const handleLogout = () => {\r\n instance.logoutRedirect(logoutRequest);\r\n };\r\n\r\n const handleDoItLater = () => {\r\n dispatch({\r\n type: userActions.updateUserInfo,\r\n body: { firstSignIn: false },\r\n });\r\n handleShowStep(false);\r\n };\r\n\r\n const handleAuditLog = (payload) => {\r\n dispatch({\r\n type: userActions.auditLog,\r\n body: { ...payload },\r\n });\r\n };\r\n\r\n const handleActivateTile = (appCode = \"\") => {\r\n if (appCode === \"MD2\")\r\n instance.loginRedirect(b2cPolicies.authorities.activateTileMd2);\r\n else if (appCode === \"MOGO\")\r\n instance.loginRedirect(b2cPolicies.authorities.activateTileMgo);\r\n return null;\r\n };\r\n\r\n return (\r\n
\r\n {isError && (\r\n
\r\n \r\n {translate(\"invalid_message\")}\r\n \r\n
\r\n )}\r\n {!isLoading && (\r\n <>\r\n {firstSignIn && showStep && (\r\n \r\n )}\r\n {\r\n updateAppLaunchState(action);\r\n }}\r\n handleActivateTile={handleActivateTile}\r\n />\r\n \r\n )}\r\n {isLoading && }\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default Home;\r\n","const messages = {\r\n en: {\r\n invalid_message: \"Something went wrong. Try again.\",\r\n welcome_back:'Welcome back'\r\n },\r\n fr: {\r\n invalid_message: `Une erreur c'est produit. Veuillez essayer de nouveau.`,\r\n welcome_back:'Content de te revoir'\r\n },\r\n};\r\n\r\nexport default messages;\r\n","import React, { useEffect } from \"react\";\r\nimport { useAppLaunchProvider } from \"../../contextProviders/AppLaunchProvider\";\r\nimport { useAppStateProvider } from \"../../contextProviders/AppStateProvider\";\r\nimport { useHistory } from \"react-router-dom/cjs/react-router-dom.min\";\r\nimport { userActions } from \"../../contextProviders/constant\";\r\nimport Loader from \"@moneris-portal/loader\";\r\nimport Notification from \"@moneris-portal/notification\";\r\nimport createTranslator from \"../../util/translationHelper\";\r\nimport messages from \"./translations/messages\";\r\nimport { PrimaryButton } from \"@moneris-portal/button\";\r\nimport { env } from \"../../cfg/env\";\r\nimport \"./index.scss\";\r\n\r\nfunction Launch({ lang }) {\r\n const { updateAppLaunchState, appLaunchState, updateAppLaunchStateLocal } =\r\n useAppLaunchProvider();\r\n const { appState = {} } = useAppStateProvider();\r\n // const [url, setRedirectUrl] = useState(\"\");\r\n // const { apps } = appState;\r\n const history = useHistory();\r\n const { isLoading, isError, isRedirected } = appLaunchState;\r\n const translate = createTranslator(messages, lang);\r\n\r\n useEffect(() => {\r\n if (isRedirected) {\r\n updateAppLaunchStateLocal({ isRedirected: false });\r\n history.push(`/${lang}/home`);\r\n }\r\n }, [isRedirected]);\r\n\r\n useEffect(() => {\r\n const searchParams = new URLSearchParams(window?.location?.search) ?? \"\";\r\n const code = searchParams.get(\"code\");\r\n const appcode = searchParams.get(\"state\");\r\n const tempMgoRedirectUrl =\r\n window.localStorage?.getItem(\"tempMgoRedirectUrl\") ?? null;\r\n // todo\r\n // automate process in refactor. remove hardcoded urls\r\n const appUrlGo = {\r\n en: {\r\n DEV: \"https://go-cert.moneris.io/login\", // defaulting to qa since no dev link\r\n QA: tempMgoRedirectUrl\r\n ? tempMgoRedirectUrl\r\n : \"https://go-int1.moneris.io/en/login\",\r\n PROD: \"https://www.monerisgo.com/en/login\",\r\n },\r\n fr: {\r\n DEV: \"https://go-cert.moneris.io/login\", // defaulting to qa since no dev link\r\n QA: tempMgoRedirectUrl\r\n ? tempMgoRedirectUrl\r\n : \"https://go-int1.moneris.io/fr/login\",\r\n PROD: \"https://www.monerisgo.com/fr/login\",\r\n },\r\n };\r\n if (code && appcode) {\r\n const payload = {\r\n type: userActions.authToken,\r\n body: {\r\n code: code,\r\n redirectUrl: appUrlGo[lang][env?.appEnv ?? \"prod\"],\r\n method: \"post\",\r\n lang: lang,\r\n },\r\n };\r\n updateAppLaunchState(payload);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n {\" \"}\r\n {isError && (\r\n <>\r\n
\r\n \r\n {translate(\"invalid_message\")}\r\n \r\n
\r\n
\r\n history.push(`/${lang}/home`)}\r\n />\r\n
\r\n \r\n )}\r\n {isLoading && }\r\n
\r\n );\r\n}\r\n\r\nexport default Launch;\r\n","const footerLinks = {\r\n en: [\r\n {\r\n title: 'Moneris.com',\r\n url: 'http://www.moneris.com/en',\r\n },\r\n {\r\n title: 'Terms of Use',\r\n url: 'https://www.moneris.com/en/legal/Terms-of-Use',\r\n },\r\n {\r\n title: 'Privacy Policy',\r\n url: ' https://www.moneris.com/en/Legal/Privacy-Notice',\r\n },\r\n {\r\n title: 'Support',\r\n url: 'https://www.moneris.com/en/support/products/moneris-portal',\r\n },\r\n ],\r\n fr: [\r\n {\r\n title: 'Moneris.com',\r\n url: 'https://www.moneris.com/fr-ca/',\r\n },\r\n {\r\n title: \"Conditions d'utilisation\",\r\n url: 'https://www.moneris.com/fr-ca/juridiques/conditions-utilisation/',\r\n },\r\n {\r\n title: 'Politique de confidentialité',\r\n url: 'https://www.moneris.com/fr-CA/Juridiques/Avis-protection-reseignements-personnels',\r\n },\r\n {\r\n title: 'Soutien',\r\n url: 'https://www.moneris.com/fr-ca/soutien/produits/portail-moneris',\r\n },\r\n ],\r\n};\r\n\r\n// The pathnames that the footer shouldn't be sticky\r\n// Onboarding shouldn't be sticky according to Figma\r\nconst stickyBlacklist = ['/onboarding'];\r\n\r\nexport { footerLinks, stickyBlacklist };\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { removeLanguageFromUrl } from '../../util/helper';\r\nimport { footerLinks, stickyBlacklist } from './constants';\r\n\r\nimport './index.scss';\r\n\r\nconst Footer = ({ history, lang = 'en' }) => {\r\n const sticky_footer = !stickyBlacklist.some((blacklistItem) =>\r\n removeLanguageFromUrl(history.location.pathname)?.startsWith(blacklistItem),\r\n );\r\n return (\r\n \r\n {footerLinks[lang?.toLowerCase() ?? 'en'].map(({ title, url }) => (\r\n \r\n {title}\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default Footer;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n/* eslint-disable */\r\nexport default function LogoMonerisMerchant(props) {\r\n const { width, height } = props;\r\n return (\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\nLogoMonerisMerchant.propTypes = {\r\n width: PropTypes.string,\r\n heigth: PropTypes.string\r\n};\r\n\r\nLogoMonerisMerchant.defaultProps = {\r\n width: '48',\r\n height: '48'\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n/* eslint-disable */\r\n\r\nexport default function ChevronDown(props) {\r\n const { width, height, color } = props;\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nChevronDown.propTypes = {\r\n width: PropTypes.string,\r\n heigth: PropTypes.string,\r\n color: PropTypes.string\r\n};\r\n\r\nChevronDown.defaultProps = {\r\n width: '12',\r\n height: '6.6',\r\n color: '#051d33'\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n/* eslint-disable */\r\n\r\nexport default function ChevronUp(props) {\r\n const { width, height,color } = props;\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\n\r\nChevronUp.propTypes = {\r\n width: PropTypes.string,\r\n heigth: PropTypes.string\r\n};\r\n\r\nChevronUp.defaultProps = {\r\n width: '12',\r\n height: '6.695',\r\n color: '#051d33'\r\n};\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ChevronDown from '../../SvgComponents/ChevronDown';\r\nimport ChevronUp from '../../SvgComponents/ChevronUp';\r\nimport './index.scss';\r\n/* eslint-disable */\r\nconst HeaderNavMenu = ({ title, optionList, handleOptionSelected, style }) => {\r\n const [menuOpen, setMenuOpen] = useState(false);\r\n\r\n const handleMenuVisibility = () => {\r\n setMenuOpen(!menuOpen);\r\n };\r\n\r\n const hideMenuVisibility = () => {\r\n setMenuOpen(false);\r\n };\r\n\r\n const handleNavMainKeyDown = event => {\r\n if (event.keyCode === 13) {\r\n handleMenuVisibility();\r\n }\r\n };\r\n\r\n const handleNavOptionKeyDown = (event, menuValue) => {\r\n if (event.keyCode === 13) {\r\n hideMenuVisibility();\r\n handleOptionSelected(menuValue);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n {/* eslint-disable jsx-a11y/click-events-have-key-events */}\r\n \r\n {title}\r\n {menuOpen && !!optionList.length && }\r\n {!menuOpen && !!optionList.length && }\r\n
\r\n {menuOpen && !!optionList.length && (\r\n
\r\n
    \r\n {optionList.map((val) => {\r\n return (\r\n handleOptionSelected(val)}\r\n onKeyDown={event => handleNavOptionKeyDown(event, val)}\r\n >\r\n {val.option}\r\n \r\n );\r\n })}\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nHeaderNavMenu.propTypes = {\r\n title: PropTypes.string,\r\n handleOptionSelected: PropTypes.func,\r\n optionList: PropTypes.array,\r\n style: PropTypes.any\r\n};\r\n\r\nHeaderNavMenu.defaultProps = {\r\n title: '',\r\n handleOptionSelected: () => null,\r\n optionList: [],\r\n style: {}\r\n};\r\n\r\nexport default HeaderNavMenu;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n AuthenticatedTemplate,\r\n useIsAuthenticated,\r\n useMsal,\r\n} from \"@azure/msal-react\";\r\nimport {\r\n InteractionStatus,\r\n InteractionRequiredAuthError,\r\n} from \"@azure/msal-browser\";\r\nimport LogoMonerisMerchant from \"../SvgComponents/LogoMonerisMerchant\";\r\nimport HeaderNavMenu from \"../Library/HeaderNavMenu/index\";\r\nimport { loginRequest, b2cPolicies } from \"../../authConfig\";\r\nimport { userActions, apiList } from \"../../contextProviders/constant\";\r\nimport { useAppStateProvider } from \"../../contextProviders/AppStateProvider\";\r\nimport { useIdleTimer } from \"react-idle-timer\";\r\nimport DateFormatter from \"../../util/dateFormatter\";\r\nimport { extractLanguageFromPathname } from \"../../util/helper\";\r\nimport pollApi from \"../../contextProviders/poll-api\";\r\nimport { env } from \"../../cfg/env\";\r\nimport \"./index.scss\";\r\n\r\nconst actionTypes = {\r\n edit_profile: \"edit_profile\",\r\n sign_out: \"sign_out\",\r\n lang: \"lang\",\r\n};\r\n\r\nconst listLanguage = [\r\n {\r\n option: \"English\",\r\n Id: \"en\",\r\n type: \"lang\",\r\n },\r\n {\r\n option: \"Français\",\r\n Id: \"fr\",\r\n type: \"lang\",\r\n },\r\n];\r\n\r\nconst getListAuth = (lang = \"en\") => {\r\n if (lang === \"en\")\r\n return [\r\n {\r\n option: \"Settings\",\r\n Id: actionTypes.edit_profile,\r\n type: \"settings\",\r\n },\r\n {\r\n option: \"Logout\",\r\n Id: actionTypes.sign_out,\r\n type: \"logout\",\r\n },\r\n ];\r\n return [\r\n {\r\n option: \"Paramètres\",\r\n Id: actionTypes.edit_profile,\r\n type: \"settings\",\r\n },\r\n {\r\n option: \"Déconnexion\",\r\n Id: actionTypes.sign_out,\r\n type: \"logout\",\r\n },\r\n ];\r\n};\r\n\r\nfunction Header({ lang, history }) {\r\n const [userName, setUserName] = useState(\"\");\r\n const [isLoginError, setLoginError] = useState(false);\r\n const {\r\n appState = {},\r\n updateAppStateLocal,\r\n updateAppState,\r\n } = useAppStateProvider();\r\n const { instance, inProgress, accounts } = useMsal();\r\n const homeAccountId = accounts[0]?.homeAccountId ?? \"\";\r\n const logoutRequest = {\r\n account: instance.getAccountByHomeId(homeAccountId),\r\n };\r\n const isAuthenticated = useIsAuthenticated();\r\n const { profile = {} } = appState;\r\n const { firstName = \"\", lastName = \"\", userEmail = null } = profile;\r\n const language = window?.localStorage?.lang ?? \"en\";\r\n const [isSessionCheck, setSessionCheck] = useState(false);\r\n const searchParams = new URLSearchParams(window?.location?.search) ?? \"\";\r\n const logoutAction = searchParams.get(\"logout\");\r\n const emailToRemember = searchParams?.get(\"email\") ?? null;\r\n const sessioncheckFlag = searchParams?.get(\"sessioncheck\");\r\n // const appCode = searchParams?.get(\"appCode\") ?? \"\";\r\n const action = searchParams?.get(\"action\") ?? \"\";\r\n const type = searchParams?.get(\"type\") ?? \"\";\r\n const isActiveSession = window.sessionStorage.getItem(\"activeSession\");\r\n const activeApp = window.localStorage.getItem(\"activeApp\");\r\n const urlLang = extractLanguageFromPathname(window.location.pathname);\r\n const daysToPersist = 365;\r\n const expiry = DateFormatter.getDateinFuture(daysToPersist * 86400000);\r\n const domain = /local/.test(window.location.host)\r\n ? \"localhost\"\r\n : \"moneris.com\";\r\n let interval;\r\n\r\n const clearSsoMiddlewareSession = async () => {\r\n if (userEmail) {\r\n updateAppState({\r\n type: userActions.ssoSessionCheck,\r\n body: { email: userEmail },\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (action === \"edit\" && type === \"reset_pass\") {\r\n instance.loginRedirect(b2cPolicies.authorities.editPassword);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n const name = `${firstName} ${lastName}`;\r\n setUserName(name);\r\n }, [firstName, lastName]);\r\n\r\n useEffect(async () => {\r\n if (userEmail && false) {\r\n await pollApi({\r\n payload: {\r\n url: `${apiList[userActions.ssoSessionCheck]}?email=${userEmail}`,\r\n method: \"GET\",\r\n body: {},\r\n },\r\n timeout: 1000 * 15,\r\n callback: () => {\r\n window.location = \"?logout=true\";\r\n },\r\n isAuthenticated,\r\n action: \"set\",\r\n });\r\n }\r\n }, [userEmail]);\r\n\r\n useEffect(() => {\r\n if (emailToRemember) {\r\n // 5 min in future\r\n const expiry_email = DateFormatter.getDateinFuture(1000 * 300);\r\n document.cookie = `email=${\r\n emailToRemember ?? \"\"\r\n }; expires=${expiry_email};domain=${domain};path=/`;\r\n }\r\n }, []);\r\n\r\n useEffect(async () => {\r\n if (\r\n isAuthenticated &&\r\n isActiveSession !== \"true\" &&\r\n activeApp === \"mogo\" &&\r\n userEmail\r\n ) {\r\n updateAppState({\r\n type: userActions.middlewareLogout,\r\n body: { email: userEmail },\r\n postCallHandler: async () => {\r\n await clearSsoMiddlewareSession();\r\n window.localStorage.removeItem(\"activeApp\");\r\n document.cookie = `lang=${urlLang}; expires=${expiry};domain=${domain};path=/`;\r\n window.localStorage.setItem(\"lang\", urlLang);\r\n instance.logoutRedirect(logoutRequest);\r\n },\r\n });\r\n }\r\n }, [isAuthenticated, userEmail]);\r\n\r\n useEffect(() => {\r\n if (sessioncheckFlag) {\r\n setSessionCheck(true);\r\n }\r\n if (action === \"edit\" && type === \"sec_questions\") {\r\n instance.loginRedirect(b2cPolicies.authorities.editSecurityQuestion);\r\n }\r\n }, [isAuthenticated && inProgress === InteractionStatus.None]);\r\n\r\n useEffect(() => {\r\n if (logoutAction === \"true\" && userEmail) {\r\n updateAppState({\r\n type: userActions.middlewareLogout,\r\n body: { email: userEmail },\r\n postCallHandler: async () => {\r\n await clearSsoMiddlewareSession();\r\n window.localStorage.removeItem(\"activeApp\");\r\n document.cookie = `lang=${urlLang}; expires=${expiry};domain=${domain};path=/`;\r\n window.localStorage.setItem(\"lang\", urlLang);\r\n instance.logoutRedirect(logoutRequest);\r\n },\r\n });\r\n }\r\n }, [userEmail]);\r\n\r\n const validateSession = (callback) => {\r\n const accessTokenRequest = {\r\n scopes: [`https://${env.sso.b2cTenantDomain}.onmicrosoft.com/sso/auth`],\r\n account: accounts[0],\r\n };\r\n instance\r\n .acquireTokenSilent(accessTokenRequest)\r\n .then((accessTokenResponse) => {\r\n // Acquire token silent success\r\n let accessToken = accessTokenResponse.accessToken;\r\n\r\n if (accessToken) callback(true);\r\n })\r\n .catch((error) => {\r\n if (error instanceof InteractionRequiredAuthError) {\r\n instance\r\n .acquireTokenPopup(accessTokenRequest)\r\n .then(function (accessTokenResponse) {\r\n // Acquire token interactive success\r\n let accessToken = accessTokenResponse.accessToken;\r\n // Call your API with token\r\n if (accessToken) callback(true);\r\n })\r\n .catch(function (error) {\r\n // Acquire token interactive failure\r\n callback(false);\r\n console.log(\"invalid session\", JSON.stringify(error));\r\n });\r\n } else {\r\n callback(false);\r\n console.log(\"invalid session\", JSON.stringify(error));\r\n }\r\n });\r\n };\r\n\r\n const handlePostMessage = (flag = false) => {\r\n window.parent.postMessage({ is_user_active: flag }, \"*\");\r\n if (!flag && interval) clearInterval(interval);\r\n };\r\n\r\n useEffect(() => {\r\n if (isSessionCheck) {\r\n interval = setInterval(function () {\r\n validateSession(handlePostMessage);\r\n }, 60000);\r\n }\r\n }, [isSessionCheck]);\r\n\r\n const onIdle = () => {\r\n handlePostMessage(false);\r\n if (isSessionCheck) window.localStorage.clear();\r\n else {\r\n updateAppState({\r\n type: userActions.middlewareLogout,\r\n body: { email: userEmail },\r\n postCallHandler: async () => {\r\n await clearSsoMiddlewareSession();\r\n window.localStorage.removeItem(\"activeApp\");\r\n document.cookie = `lang=${urlLang}; expires=${expiry};domain=${domain};path=/`;\r\n window.localStorage.setItem(\"lang\", urlLang);\r\n instance.logoutRedirect(logoutRequest);\r\n setTimeout(() => window?.location?.reload(), 5000);\r\n },\r\n });\r\n }\r\n };\r\n\r\n useIdleTimer({\r\n onIdle,\r\n timeout: 28800_000, // 8 hour inactivity\r\n throttle: 500,\r\n });\r\n\r\n const handleOptionSelected = (val) => {\r\n if (val.Id === actionTypes.edit_profile) {\r\n history.push(`/${lang}/setting`);\r\n }\r\n if (val.Id === actionTypes.sign_out) {\r\n updateAppState({\r\n type: userActions.middlewareLogout,\r\n body: { email: userEmail },\r\n postCallHandler: async () => {\r\n await clearSsoMiddlewareSession();\r\n window.localStorage.removeItem(\"activeApp\");\r\n document.cookie = `lang=${urlLang}; expires=${expiry};domain=${domain};path=/`;\r\n window.localStorage.setItem(\"lang\", urlLang);\r\n instance.logoutRedirect(logoutRequest);\r\n },\r\n });\r\n }\r\n if (val.type === actionTypes.lang) {\r\n const userSelectedLang = val?.Id ?? \"en\";\r\n window.localStorage.setItem(\"lang\", userSelectedLang);\r\n document.cookie = `lang=${\r\n val?.Id ?? \"en\"\r\n }; expires=${expiry};domain=${domain};path=/`;\r\n let pathname = window.location.pathname;\r\n if (/\\/en\\//.test(pathname) && userSelectedLang !== \"en\") {\r\n pathname = pathname.replace(\"/en/\", \"/fr/\");\r\n history.push(pathname);\r\n }\r\n if (/\\/fr\\//.test(pathname) && userSelectedLang !== \"fr\") {\r\n pathname = pathname.replace(\"/fr/\", \"/en/\");\r\n history.push(pathname);\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n const handleSignUpRequest = () => {\r\n const { location } = history;\r\n const { pathname } = location;\r\n const signUpPathName = \"/account/create\";\r\n if (pathname.includes(signUpPathName)) {\r\n var now = new Date();\r\n var time = now.getTime();\r\n var expireTime = time + 1000 * 120;\r\n now.setTime(expireTime);\r\n const domain = /local/.test(window.location.host)\r\n ? \"localhost\"\r\n : \"moneris.com\";\r\n document.cookie = `action=signUp; expires=+${now.toUTCString()}+;domain=${domain};path=/`;\r\n }\r\n };\r\n\r\n const handleSingIn = () => {\r\n instance\r\n .loginRedirect(loginRequest)\r\n .then((resp) => console.log(resp))\r\n .catch((error) => {\r\n setLoginError(true);\r\n updateAppStateLocal({ isLoading: false, isError: true });\r\n console.log(\"login error:\", JSON.stringify(error));\r\n instance.logoutRedirect(logoutRequest);\r\n });\r\n };\r\n\r\n if (\r\n !isAuthenticated &&\r\n inProgress === InteractionStatus.None &&\r\n !isLoginError &&\r\n !isSessionCheck &&\r\n action !== \"reset_pass\"\r\n // logoutAction !== \"true\"\r\n ) {\r\n handleSignUpRequest();\r\n handleSingIn();\r\n }\r\n\r\n return (\r\n
\r\n history.push(`/${lang}/home`)}\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\nexport default Header;\r\n","/*eslint-disable*/\r\nconst error = {\r\n en: {\r\n title:'Your session has expired',\r\n wrong: \"Your session has expired,\",\r\n try_again: \"sign in again\",\r\n try_again_button: \"Try again\",\r\n },\r\n\r\n fr: {\r\n title:'Votre session a expiré',\r\n wrong: \"Votre session a expiré,\",\r\n try_again: \"connectez-vous à nouveau.\",\r\n try_again_button: \"Réessayer\",\r\n },\r\n};\r\n\r\nexport default error;\r\n","/* eslint-disable */\r\nimport React from \"react\";\r\nimport createTranslator from \"../../util/translationHelper\";\r\nimport Modal from \"@moneris-portal/modal\";\r\nimport { PrimaryButton } from \"@moneris-portal/button\";\r\nimport messages from \"./Translations/messages\";\r\nimport \"./index.scss\";\r\n\r\nfunction PageError({ lang }) {\r\n const handleVisibility = () => null;\r\n\r\n const handleRefresh = () => {\r\n window.location.reload(true);\r\n };\r\n\r\n const translate = createTranslator(messages, lang);\r\n return (\r\n
\r\n \r\n
\r\n

\r\n \r\n {translate(\"wrong\")}
{translate(\"try_again\")}\r\n
\r\n

\r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nPageError.defaultProps = {\r\n // message: null\r\n};\r\n\r\nPageError.propTypes = {\r\n // message: PropTypes.any\r\n};\r\n\r\nexport default PageError;\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport React, { useEffect, useState } from \"react\";\r\nimport {\r\n BrowserRouter as Router,\r\n Switch,\r\n Route,\r\n Redirect,\r\n} from \"react-router-dom\";\r\nimport { createBrowserHistory } from \"history\";\r\nimport NotFound from \"./components/NotFound\";\r\nimport SignUp from \"./components/SignUp\";\r\nimport Setting from \"./container/Setting/index\";\r\nimport Home from \"./container/Home\";\r\nimport Launch from \"./container/Launch\";\r\nimport Footer from \"./components/Footer/index\";\r\nimport Header from \"./components/Header/index\";\r\nimport { useAppStateProvider } from \"./contextProviders/AppStateProvider\";\r\nimport { InfoProvider, AppLaunchProvider } from \"./contextProviders/index\";\r\nimport PageError from \"./components/PageError\";\r\nimport getCookie from \"./util/cookie\";\r\nimport { extractLanguageFromPathname } from \"./util/helper\";\r\nimport \"./styles/App.css\";\r\n\r\nconst history = createBrowserHistory({ forceRefresh: true });\r\n\r\nconst App = () => {\r\n const [lang, setLang] = useState(\r\n window.localStorage?.getItem(\"lang\") ?? \"en\"\r\n );\r\n const { appState = {}, updateAppStateLocal } = useAppStateProvider();\r\n const {\r\n isError = false,\r\n preferred_language = \"en\",\r\n isPopUpBlocked,\r\n isLoading,\r\n } = appState;\r\n\r\n const handleLang = (historyObj) => {\r\n const { action = \"\", location = {} } = historyObj;\r\n const { pathname = \"\", hash = \"\" } = location;\r\n if (\r\n action?.toString().toLowerCase() === \"push\" &&\r\n !extractLanguageFromPathname(pathname) &&\r\n !hash\r\n ) {\r\n history.push(\r\n `/${lang}${\r\n (window?.location?.pathname ?? \"\") +\r\n (window?.location?.search ?? \"\") +\r\n (window?.location?.hash ?? \"\")\r\n }`\r\n );\r\n window.location.reload();\r\n } else if (action?.toString().toLowerCase() === \"push\")\r\n window.location.reload();\r\n };\r\n\r\n useEffect(() => {\r\n const searchParams = new URLSearchParams(window?.location?.search) ?? \"\";\r\n const pathLang =\r\n extractLanguageFromPathname(window.location.pathname) ?? null;\r\n const cookieLang = getCookie(\"lang\");\r\n const language =\r\n pathLang ??\r\n searchParams?.get(\"lang\") ??\r\n cookieLang ??\r\n preferred_language ??\r\n \"en\";\r\n setLang(language.toLowerCase());\r\n const domain = /local/.test(window.location.host)\r\n ? \"localhost\"\r\n : \"moneris.com\";\r\n document.cookie = `lang=${language}; expires=Thu, 18 Dec 2032 12:00:00 UTC;domain=${domain};path=/`;\r\n window.localStorage.setItem(\"lang\", language.toLowerCase());\r\n document.getElementsByTagName(\"html\")[0].setAttribute(\"lang\", language);\r\n }, [preferred_language]);\r\n\r\n useEffect(() => {\r\n history.listen((historyObj) => handleLang(historyObj));\r\n if (\r\n !extractLanguageFromPathname(window?.location?.pathname) &&\r\n !window.location.hash\r\n ) {\r\n history.push(\r\n `/${lang}${\r\n (window?.location?.pathname ?? \"/home\") +\r\n (window?.location?.search ?? \"\") +\r\n (window?.location?.hash ?? \"\")\r\n }`\r\n );\r\n window.location.reload();\r\n }\r\n if (\r\n (window?.location?.pathname ?? \"\")?.toLowerCase() === \"/en/\" ||\r\n (window?.location?.pathname ?? \"\")?.toLowerCase() === \"/fr/\" ||\r\n (window?.location?.pathname ?? \"\")?.toLowerCase() === \"/en\" ||\r\n (window?.location?.pathname ?? \"\")?.toLowerCase() === \"/fr\"\r\n ) {\r\n history.push(\r\n `/${lang}/home${\r\n (window?.location?.search ?? \"\") + (window?.location?.hash ?? \"\")\r\n }`\r\n );\r\n window.location.reload();\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n {isError ? (\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n