{"version":3,"sources":["stores/ListingStore.ts","assets/brand/active_status_icon.js","components/Molecules/Avatars/UserAvatar/UserAvatar.tsx","components/user/ProfileDetailCard.tsx","components/user/AccountDetailCard.tsx","components/user/CreateModal.tsx","components/user/EditInviteModal.tsx","components/user/InviteUserForm.tsx","components/user/UserDetailCard.tsx","components/user/UserSettingsSection.tsx","components/user/UserSettingsCard.tsx","components/user/gov/GovUserDetailCard.tsx","stores/ServerStore.ts","assets/brand/vision_visibility_icon.js","lib/geography/countryRegionData.ts","components/custom/SingleImageUploader.tsx","components/custom/Alert.tsx","components/custom/ImageCroppingTool.tsx","lib/geography/utils.ts","components/custom/ValidatedCFormSelect.tsx","components/custom/RegionSelectInput.tsx","components/custom/CountrySelectInput.tsx","components/custom/TimezoneSelect.tsx","components/custom/ValidatedCFormInput.tsx","components/custom/ValidatedCFormTextArea.tsx","components/custom/SingleUserSelect.tsx","components/custom/GoogleSuggestAddressInput.tsx","components/custom/ConfirmationBoundaryModal.tsx","components/custom/LegalLinks.tsx","components/custom/SupportLinks.tsx","components/custom/AsyncValidatedTextInput.tsx","components/custom/IconPopover.tsx","components/custom/PotentiallyExternalRedirectLink.tsx","components/custom/CustomInformationPopup.tsx","components/custom/ServerBackedDropdown.tsx","components/custom/Collapsible.tsx","components/custom/UrlFederatedNaicsCodeMultiSelectAutoComplete.tsx","components/custom/UrlFederatedTechnologyTypesMultiSelectAutoComplete.tsx","components/custom/UrlFederatedBusinessClassificationsMultiSelectAutoComplete.tsx","components/custom/ToggleChatStatusButton.tsx","components/custom/ChatPanelHeader.tsx","components/custom/ChatThreadPanelMessages.tsx","components/custom/InitiateChatModal.tsx","components/custom/StartChatButton.tsx","components/custom/index.ts","lib/helpers/validation.ts","views/signup/SignupOrSignin.tsx","components/boundary/AuthBoundary.tsx","App.tsx","index.tsx","components/boundary/ErrorFallback.tsx","assets/brand/Ignite_Logo_Mobilize_Full_Color.png","stores/ConnectListingStore.ts","components/listing/ViewListingArtifact.tsx","components/listing/ViewListingArtifactModal.tsx","lib/hooks/useValidation.ts","lib/hooks/useErrorPropagator.ts","components/form/fragments/SocialMediaAccountsForm.tsx","components/listing/ViewListingArtifactAttachmentOrLink.tsx","components/form/fragments/listing/OrganizationDetails.tsx","components/form/fragments/listing/ContractingDetails.tsx","lib/helpers/utils.ts","components/custom/Spinner.tsx","components/custom/CustomDropdown.tsx","stores/ApplicationStore.ts","stores/AccountStore.ts","stores/AnalyticsStore.ts","components/form/fragments/listing/BusinessClassifications.tsx","components/form/fragments/listing/NaicsCodes.tsx","components/form/fragments/listing/TechnologyFocusAreas.tsx","components/custom/Pagination.tsx","components/listing/ViewListingArtifactTechnologyType.tsx","components/listing/ViewListingAward.tsx","components/Organisms/SearchFilters/ConnectAwardSearch/ConnectAwardSearch.tsx","components/form/fragments/GovUserExtendedDataProfileForm.tsx","components/Organisms/EntityCards/LinesOfEffortCard/LinesOfEffortCard.tsx","components/Organisms/EntityCards/GovUserClassificationsCard/GovUserClassificationsCard.tsx","components/Molecules/index.ts","stores/AuthStore.ts","stores/NotificationStore.ts","components/Organisms/EntityCards/GovUserClassificationsCard/GovUserClassificationsCard.module.scss","components/Organisms/SearchFilters/ConnectCollapsibleAwardSearch/ConnectCollapsibleAwardSearch.tsx","components/Organisms/SearchFilters/ConnectServiceSearch/ConnectCollapsibleServiceSearch.tsx","components/Organisms/SearchFilters/ConnectUseCaseSearch/ConnectCollapsibleUseCaseSearch.tsx","components/Organisms/SearchFilters/ConnectProductSearch/ConnectCollapsibleProductSearch.tsx","components/Organisms/SearchFilters/ConnectCompanySearch/ConnectCollapsibleCompanySearch.tsx","components/Molecules/UrlFederatedInputs/UrlFederatedBasicDropdown/UrlFederatedBasicDropdown.tsx","components/Organisms/SearchFilters/index.ts","components/listing/PointOfContactCard.tsx","components/listing/BusinessClassificationsCard.tsx","components/listing/TechnologyFocusAreasCard.tsx","components/listing/SocialMediaDetails.tsx","components/listing/ContractingInformationCard.tsx","components/listing/ListingPublishedStatusIndicator.tsx","components/listing/ListingPublishOrUnpublishActionButton.tsx","lib/listing/utils.ts","assets/brand/unpublishIcon.js","assets/brand/publishIcon.js","components/listing/ListingArtifactCard.tsx","components/listing/ListingServicesTab.tsx","components/listing/ListingUseCasesTab.tsx","components/listing/ListingProductsTab.tsx","components/listing/ListingAwardCard.tsx","components/listing/ListingAwardsTab.tsx","components/listing/ListingVisionVisibilityActionButton.tsx","views/listings/ViewListing.tsx","stores/UserStore.ts","components/custom/ChatThreadCard.tsx","components/form/fragments/listing/BulkAttachments.tsx","components/form/fragments/listing/BulkLinks.tsx","views/accounts/Users.tsx","views/ConfirmationInstructions.tsx","assets/brand/Ignite_Logo_Full_Color.png","components/user/GovUserExtendedProfileDetailCard.tsx","components/user/AccountActions.tsx","components/user/GovUserTechnologyTypesCard.tsx","views/accounts/Account.tsx","lib/time/index.ts","components/Atoms/Chips/GovUserConnectorChip/GovUserConnectorChip.module.scss","lib/errors/utils.ts","lib/helpers/sessionHelpers.ts","components/icons/leftArrow.js","components/form/fragments/AddressForm.tsx","components/form/fragments/SignupAccountForm.tsx","components/custom/ServerBackedAutoComplete/ServerBackedAutoComplete.tsx","components/Molecules/AutoCompleteInputs/GovUserOrganizationAutoCompleteInput/GovUserOrganizationAutoCompleteInput.tsx","components/form/fragments/GovUserExtendedDataOrganizationForm.tsx","components/form/fragments/SignupUserForm.tsx","components/form/fragments/SignupLoginForm.tsx","components/form/fragments/ClaimRequestForm.tsx","components/form/ChangeEmailForm.tsx","components/form/ChangePasswordForm.tsx","components/form/EditAccountForm.tsx","components/form/EditProfileForm.tsx","components/form/ResendClaimForm.tsx","components/form/fragments/listing/ListingArtifactTechnologyFocusAreas.tsx","components/form/fragments/listing/GenericListingArtifact.tsx","components/form/ListingArtifactFormWizard.tsx","components/form/ListingArtifactFormModal.tsx","views/SignTermsAndPrivacy.tsx","views/ConfirmEmailLanding.tsx","views/RequestPasswordReset.tsx","views/ResetPassword.tsx","views/Terms.tsx","views/Privacy.tsx","views/AntiSpamPolicy.tsx","views/SignIn.tsx","views/InviteSignUp.tsx","views/AcceptInviteLanding.tsx","views/ConfirmClaimLanding.tsx","views/ClaimRequestSignUp.tsx","views/SubmitClaimRequest.tsx","views/SubmitClaimResult.tsx","assets/brand/visionLogoCobalt.js","views/GovUserSignup.tsx","components/Atoms/Chips/GovUserConnectorChip/GovUserConnectorChip.tsx","views/gov/ViewIndividualGovUser.tsx","components/admin/adminAnalytics/AdminAnalyticsResponseRateStatistics.tsx","components/lineChart/IgniteLineChart.tsx","components/admin/adminAnalytics/lineCharts/AdminAnalyticsSBCTimelineLineChart.tsx","components/admin/adminAnalytics/AdminAnalyticsSBCTimelineStatistics.tsx","components/piechart/IgnitePieChartPlaceholder.tsx","components/piechart/IgnitePieChart.tsx","components/admin/adminAnalytics/pieCharts/AdminAnalyticsTechnologyTypePieCharts.tsx","components/admin/adminAnalytics/tables/AdminAnalyticsTechnologyTypeTable.tsx","components/admin/adminAnalytics/AdminAnalyticsTechnologyTypeStatistics.tsx","components/admin/adminAnalytics/lineCharts/AdminAnalyticsGovUsersTimelineLineChart.tsx","components/admin/adminAnalytics/AdminAnalyticsGovUserTimelineStatistics.tsx","components/admin/adminAnalytics/tables/AdminAnalyticsListingPageViewsTable.tsx","components/admin/adminAnalytics/AdminAnalyticsListingPageViewsStatistics.tsx","components/admin/adminAnalytics/lineCharts/ActiveConversationStatisticLineChart.tsx","components/admin/adminAnalytics/ActiveConversationStatistics.tsx","components/admin/adminAnalytics/lineCharts/DafUserStatisticLineChart.tsx","components/admin/adminAnalytics/DafUsersStatistics.tsx","components/admin/adminAnalytics/lineCharts/SbcUserStatisticLineChart.tsx","components/admin/adminAnalytics/SbcUsersStatistics.tsx","components/admin/adminAnalytics/tables/OrganizationUserStatisticTable.tsx","components/admin/adminAnalytics/OrganizationUserStatistic.tsx","views/admin/AdminAnalytics.tsx","views/signup/SignupChoice.tsx"],"names":["isListingArtifactTechnologyType","o","isAward","isUseCase","artifact","isLink","isAttachment","ListingStore","listings","getListings","params","a","server","get","page","perPage","then","data","getSingleListing","id","eager","getSingleListingService","listingId","serviceId","getAwardsPhases","getSingleListingProduct","productId","getSingleListingUseCase","useCaseId","getSingleListingAward","awardId","getPointOfContact","getListingServices","getListingUseCases","getListingProducts","updateListingService","payload","formData","composeFormData","patch","headers","updateListingUseCase","FormData","append","name","description","url","logo","File","startDate","endDate","listingArtifactAttachmentsAttributes","forEach","attachment","i","toString","file","destroy","listingArtifactLinksAttributes","link","listingArtifactTechnologyTypesAttributes","techType","listingArtifactTechnologyTypeId","technologyTypeId","getListingAwards","createListingService","post","createListingProduct","updateListingProduct","createListingUseCase","updateListing","tagLine","yearFounded","website","samCode","dunsCode","capabilityStatement","addressLine1","addressLine2","addressLine3","city","stateOrProvince","country","postalCode","pointOfContactId","naicsCodes","code","technologyTypes","type","businessClassifications","el","socialMediaAccounts","socialMediaTypeId","identifier","length","deleteProduct","delete","deleteService","deleteUseCase","this","isOnlyVisionVisible","ServerStore","activeStatusIcon","className","xmlns","width","height","viewBox","fill","cx","cy","r","stroke","strokeWidth","UserAvatar","user","displayIsActive","props","source","isUserData","image","headshot","path","firstName","lastName","isAccountData","isActive","content","classnames","src","prefix","suffix","ProfileDetailCard","inject","ApplicationStore","names","userStore","notificationStore","observer","email","isGovUser","currentUserData","userRoles","includes","wrappedIcon","renderSocialMediaAccount","sma","determineSocialMediaIconClassName","socialMediaTypeName","timezone","parseTimezone","getTimezoneOptions","label","component","title","govUserExtendedData","govUserOrganization","govEmployeeSinceYear","yearsOfExperience","experience","Date","getFullYear","renderYearsOfExperience","unconfirmedEmail","cellPhone","workPhone","workPhoneExt","phoneSection","locationValues","filter","Boolean","join","renderLocation","map","socialMediaSection","AccountDetailCard","accountStore","currentAccountData","uniqueEntityId","CreateModal","useState","setFormData","hasValidated","setHasValidated","isSubmitting","setIsSubmitting","isSubmittable","firstNameError","validateLength","lastNameError","emailError","validateEmail","isModalOpen","onClose","closeModal","scrollable","headerContent","onChange","change","sm","isSuspended","onClick","currentAccountId","inviteUserToAccount","setTimeout","setNotificationMessage","catch","disabled","icon","EditInviteModal","editUserInvite","userInviteId","onSubmit","InviteUserForm","defaultCharLengthMessage","validated","noValidate","htmlFor","value","placeholder","required","validate","v","renderInvalidMessage","autoComplete","UserDetailCard","dateString","isEditing","setIsEditing","undefined","actionType","setActionType","isInvitedUser","userInviteExpired","inviteTokenExpiry","resendOrDelete","resendUserInvite","deleteUserInvite","determineRoute","message","determineMessage","menuOptions","iconClassName","callback","color","onSelect","option","dropdownOptions","text","alignment","actionText","UserSettingsSection","hasGovRole","allowMessageRequests","setAllowMessageRequests","allowInAppNotifications","setAllowInApp","allowByEmailNotifications","setAllowByEmail","isLoadingMessagePermission","setIsLoadingMessagePermission","isLoadingInAppNotification","setIsLoadingInAppNotification","isLoadingByEmailNotification","setIsLoadingByEmailNotification","useEffect","retrieveCurrentUserData","govUserSetting","userAppNotificationSetting","newChatMessage","userEmailNotificationSetting","e","messagePermissionOnClick","handleClick","inAppNotificationOnClick","byEmailOnClick","setIsLoadingFunction","updateUserSettings","finally","MessagePermissionsCheckbox","checked","InAppNotificationsCheckbox","ByEmailNotificationsCheckbox","MessagePermissionsSettings","NotificationsSettings","GovUserSettings","UserSettings","UserSettingsCard","GovUserDetailCard","techTypesNotShown","techTypesNotShownCount","currentUserAccountChatThreadId","chatThreadIdsWithCurrentUserAccount","visionUserId","visionVisibilityIcon","to","longName","userInfo","searchMetadata","highlight","ReactHtmlParser","profileDetail","renderCardContent","techTypeNames","slice","technologyType","userTechnologyTypes","isUserParticipant","participant","participantType","isAccountParticipant","authStore","getGovUserClassifications","errorInterceptor","error","currentLocation","pathname","window","location","search","response","status","err","extractRestfulError","setRedirectSessionVariables","forceLogoutWithMessage","VisionRequestInterceptedError","JWT","redirectWithMessage","config","buff","Buffer","from","base64data","setJWT","unlessPaths","every","p","replace","instance","axios","create","Authorization","getJWT","Accept","interceptors","use","sortThreadId","participants","initialMessage","initialMessages","res","clipPath","fillRule","clipRule","d","isTRegion","long","short","isTCountry","regions","isoUSStateCodes","countryRegionData","Mode","Alert","visible","variant","onToggleAlert","ImageCroppingTool","croppedPixels","onCropPixels","zoom","onZoomChange","rotation","onRotationChange","x","y","crop","onCropChange","URL","createObjectURL","_image","doPerformCrop","getCroppedImageBlob","blob","blobToFile","onCrop","handleRejection","debouncedCrop","useDebouncedCallback","debounceCropMs","onCropComplete","useCallback","croppedArea","croppedAreaPixels","createImage","imagePromise","Promise","resolve","reject","newImage","Image","onload","onerror","flip","horizontal","vertical","canvas","document","createElement","ctx","getContext","rotationRadian","Math","PI","rotateSize","abs","cos","sin","bBoxWidth","bBoxHeight","translate","rotate","scale","fillStyle","fillRect","drawImage","getImageData","putImageData","toBlob","aspect","SingleImageUploader","EDIT","UPLOAD","mode","setMode","setValue","isValidationSuspended","setIsValidationSuspended","ValidatedInput","valid","onDrop","acceptedFiles","subText","UNCLASSIFIED_WARNING_PROMPT","additionalText","FILE_UPLOAD_MAX_SIZE_CONTENT","accept","displayValue","hidePlaceholder","hideUploaderPlaceholder","maxSize","FILE_UPLOAD_MAX_SIZE_BYTES","suspense","onFile","render","getCountryShort","find","ValidatedCFormSelect","rest","useValidation","_value","isValid","invalidReason","showInvalidReason","invokeValidation","invalidMessage","classNames","invalid","target","onBlur","children","RegionSelectInput","getCountry","CountrySelectInput","TimezoneSelect","timezones","i18nTimezones","labelStyle","defaultTz","Intl","DateTimeFormat","resolvedOptions","timeZone","getOptions","React","useMemo","split","ValidatedCFormInput","ValidatedCFormTextArea","SingleUserSelect","users","setUsers","getDataFunction","u","GoogleSuggestAddressInput","hideManualEntry","googlePlacesAutoCompleteProps","googlePlaceData","setGooglePlaceData","rawFormVisible","setRawFormVisible","func","geocodeByPlaceId","place_id","geocodeObj","addressObject","getAddressObject","address_components","objectIsEmpty","normalized","reduce","agg","c","types","addressLine1Parts","streetNumber","long_name","arrayContainsAny","street","short_name","apiKey","applicationStore","siteSettings","debounce","minLengthAutocomplete","selectProps","isClearable","class","result","idPrefix","ConfirmationBoundaryModal","size","isOpen","onCancel","headerText","onConfirm","isConfirmDisabled","LegalLinks","SupportLinks","href","rel","AsyncValidatedTextInput","_validate","onValue","makeValidationMessage","asyncValidationDebounceMs","setIsValid","setInvalidReason","debouncedValidation","handleValueChange","IconPopover","trigger","tabIndex","PotentiallyExternalRedirectLink","setIsModalOpen","Fragment","linkText","formattedUrl","formatUrlProtocol","parsedUrl","parse","origin","formatUrlForDisplay","open","opener","handleConfirm","CustomInformationPopup","infoPopup","toggleInfoPopup","hasInfoIcon","infoIconClassName","toggleInfoPopupOpen","str","ariaLabel","information","testId","onMouseOver","onMouseOut","onKeyDown","key","ServerBackedDropdown","selected","setSelected","items","setItems","lastPage","setLastPage","toggleIsOpen","isLoadingData","setIsLoadingData","loadingError","setLoadingError","dropdownRef","useRef","itemRefs","ref","handleClickOutside","current","contains","handleEscape","handleOpen","extendData","addEventListener","removeEventListener","getData","pagination","loadingDebounceMs","onScroll","pages","offset","scrollLoadOffsetPx","scrollHeight","scrollTop","clientHeight","handleSelect","item","handleNoneSelect","onSelectNone","role","preventDefault","focus","subtle","normalPlaceholderFont","active","element","idx","toLowerCase","nextItemIndex","previousItemIndex","Spinner","Collapsible","isExpanded","setIsExpanded","chevronToggle","onExpandChange","UrlFederatedNaicsCodeMultiSelectAutoComplete","serverStore","useQueryParams","paramKey","withDefault","StringParam","setParams","selectedNaicsCodes","setSelectedNaicsCodes","sort","initializeSearchDropdown","ids","getDropdownData","getIgniteNaicsCodes","typeForErrorMessage","getNaicsCodes","dataTestId","loadMore","selections","t","selectNaicsCodes","isDirtySelectableItem","reloadOnOpen","UrlFederatedTechnologyTypesMultiSelectAutoComplete","selectedTechnologyTypes","setSelectedTechnologyTypes","getTechnologyTypes","selectTechnologyTypes","UrlFederatedBusinessClassificationsMultiSelectAutoComplete","connectListingStore","selectedBusinessClassifications","setSelectedBusinessClassifications","listingBusinessClassificationIds","getBusinessClassifications","getConnectBusinessClassifications","selectBusinessClassifications","ToggleChatStatusButton","isSuspending","setIsIsSuspending","chatThread","tooltipMessage","renderButton","pauseChatThread","onChatThreadUpdated","unpauseChatThread","tooltipContent","ChatPanelHeader","currentIsGovUser","displayParticipantList","accountId","participantId","makeChatThreadHeadliner","ChatThreadPanelMessages","lastMessageSeenAt","lastMessageSeenAtLoad","hasUnreadMessages","setHasUnreadMessages","unreadMessageTimeout","setUnreadMessageTimeout","maybeShowMoreUnread","timeout","clearTimeout","latestMessageAtLoad","chatMessages","currentUserUnreadCount","createdAt","getTime","renderDivider","dateBoundary","now","getMonth","getDate","formatDate","renderChatMessage","date","toLocaleTimeString","userId","renderNewestMessagePill","onVisible","onViewNewestMessage","isExtending","isExtendingError","entryProps","root","rootMargin","threshold","latestMessage","prevMessage","currentDivider","hasNewDivider","chat","renderMessages","showNewMessageIndicator","chatEndRef","scrollIntoView","InitiateChatModal","history","useHistory","setMessage","isSubmitSuspended","setIsSubmitSuspended","setError","first","isConnectListingResponse","last","renderAvatar","createChatThread","push","StartChatButton","tooltipDebounceMs","setIsSuspended","isInitiateModalOpen","setIsInitiateModalOpen","disabledReason","setDisabledReason","setParticipants","existingChatThread","setExistingChatThread","hasIgniteRole","findChatThreadByParticipants","wider","renderTooltipContent","searchParams","test","validatePassword","minLength","validatePatternMatch","pattern","validateWebsite","validateValueMatch","left","right","min","validateLineOfEffort","arr","some","details","trim","validateYear","lowerBounds","upperBounds","Number","isNaN","SignupOrSignin","choices","header","nextStep","leftArrow","MobilizeVISIONLogo","alt","toggleContent","choice","AuthBoundary","useLocation","isLoading","setIsLoading","useQueryParam","qParam","setQParam","authenticated","isAuthenticated","confirmed","initializeUserAndAccountData","userData","retrieveCurrentAccountData","accountData","setCurrentAccountData","setCurrentUserData","createWebsocketConsumer","setQSessionVariables","checkIfVisionUserHasAccountAndIsLinked","userHasAccount","setSessionQUserExists","validateQAndInitializeUser","stored_q","getSessionQParam","q","setSessionQParam","getSessionQUserExists","clearQParamSessionVariables","initializeAuthBoundary","salt","filteredLocation","removeQParamFromLocation","exact","SignIn","ClaimRequestSignUp","SubmitClaimRequest","SubmitClaimResult","InviteSignUp","AcceptInviteLanding","ConfirmClaimLanding","GovUserSignup","RequestPasswordReset","ResetPassword","ConfirmationInstructions","SignTermsAndPrivacy","ConfirmEmailLanding","Terms","Privacy","AntiSpamPolicy","SignupChoice","loading","DefaultLayout","lazy","App","throwError","useErrorPropagator","getSiteSettings","setSiteSettings","Suspense","fallback","severity","clearMessage","TagManager","initialize","gtmId","createBrowserHistory","ReactDOM","StrictMode","getStores","FallbackComponent","listen","resetErrorBoundary","CompanyConnectorLogo","isAxiosError","determineErrorMessage","onReset","ReactRouterRoute","Route","getElementById","ConnectListingStore","getConnectListings","getConnectTechnologyTypes","getSingleConnectListing","getConnectListingServices","getListingPersonData","getConnectListingProducts","getConnectListingUseCases","getConnectNaicsCodes","ViewListingArtifact","activeKey","setActiveKey","artifactType","onInvoke","handleEditClick","parseDate","listingArtifactAttachments","ViewListingArtifactAttachmentOrLink","listingArtifactLinks","listingArtifactTechnologyTypes","ViewListingArtifactTechnologyType","ViewListingArtifactModal","listingStore","artifactId","useRouteMatch","setData","promise","store","connect","ViewListingAward","renderArtifact","_setValue","setShowInvalidReason","setInvalidMessage","validateRequired","_invalidReason","SocialMediaAccountsForm","socialMediaData","setSocialMediaData","getSocialMediaTypes","smt","existing","md","download","fileIconLookup","mimeType","OrganizationDetails","headquarters","isEditForm","step","pointOfContact","getDefaultAccountUsers","socialMedia","ContractingDetails","uuid","dt","random","floor","months","days","getDay","elements","obj","Object","keys","values","capitalizeFirstLetter","l","charAt","toUpperCase","objectContainsAnyValue","titleCase","w","isListingSubmittable","errors","socialAccount","validAttachments","validLinks","validLogo","isSubPageData","generateRandomId","substring","CustomDropdown","toggleIsExpanded","node","handleTargetOutside","getDisplayLabel","isLabeled","CustomDropdownClass","dropdownClass","ariaRequired","keyPress","selectedOption","options","analyticsStore","sidebarShow","sidebarUnfoldable","makeAutoObservable","AuthStore","NotificationStore","UserStore","AccountStore","AnalyticsStore","setSidebarShow","val","setSidebarUnfoldable","baseCurrentUserURL","includeUserInvites","termId","privacyId","getTechnologyTypeStatistics","getSBCTimelineStatistics","getGovUsersTimelineStatistics","getGovUserEngagedCompaniesStatistic","getGovUserChatResponseStatistic","getActiveConversationStatistics","getDafUserStatistics","getSbcUserStatistics","BusinessClassifications","count","nc","NaicsCodes","TechnologyFocusAreas","Pagination","NumberParam","paginationParams","setPaginationParams","isPreviousPageEnabled","isNextPageEnabled","defaultPerPage","event","customPerPages","index","series","renderPair","multiline","lg","awardTitle","contractNumber","branch","program","phase","productServiceCode","principleNaicsCode","tt","awardAmount","state","contractAwardDate","contractStartDate","contractEndDate","piName","piTitle","piPhone","piEmail","researchInstitutionName","awardAbstract","anticipatedBenefits","ConnectAwardSearch","searchAwards","awardPhase","awardNaicsCodeIds","awardContractNumber","awardAmountMin","awardAmountMax","awardDateMin","awardDateMax","awardState","awardTechnologyTypeIds","sortBy","sortDirection","isStandaloneAwardFilter","minValue","maxValue","parseInt","renderMinMaxAmounts","getISOLocalDate","maxDate","makeDateComputerOffset","openCalendarOnFocus","GovUserExtendedDataProfileForm","getSelectedTechnologyTypes","addLineOfEffort","linesOfEffort","removeLineOfEffort","updatedLineOfEffort","splice","updateLineOfEffort","loe","classification","subLabel","categoryLabel","govUserClassificationCategory","autocompletionRequest","renderCityStateInput","year","format","maxDetail","maxLength","xs","govUserClassifications","LinesOfEffortCard","lineOfEffort","GovUserClassificationsCard","Styles","classificationBadge","accessToken","jwt","localStorage","setItem","removeItem","getItem","severityOptions","isSuppressing","success","danger","warning","info","suppress","module","exports","ConnectCollapsibleAwardSearch","ConnectCollapsibleServiceSearch","searchServices","serviceTechnologyTypeIds","ConnectCollapsibleUseCaseSearch","searchUseCases","ConnectCollapsibleProductSearch","searchProducts","productTechnologyTypeIds","ConnectCollapsibleCompanySearch","searchListings","listingIdentifier","listingState","UrlFederatedBasicDropdown","defaultParam","selection","urlVal","urlValue","PointOfContactCard","setUserData","errorResponse","formatWorkPhone","renderError","BusinessClassificationsCard","businessClassificationsData","setBusinessClassificationsData","bc","TechnologyFocusAreasCard","technologyTypeData","setTechnologyTypeData","SocialMediaDetails","ContractingInformationCard","naicsCodesData","setNaicsCodesData","naicsCodesPath","makeNaicsCodeLabel","makeProductServiceCodeLabel","psc","samRegistrationDate","samExpirationDate","cageCode","productServiceCodes","ListingPublishedStatusIndicator","listing","isPublished","ListingPublishOrUnpublishActionButton","isPublishPromptOpen","setIsPublishPromptOpen","isPublishSuspending","setIsPublishSuspending","isUnpublishPromptOpen","setIsUnpublishPromptOpen","isUnpublishSuspending","setIsUnpublishSuspending","onPublishConfirm","publishListing","onAction","onUnpublishConfirm","unpublishListing","isDisabled","version","withText","renderUnpublishActionButton","renderPublishActionButton","ListingArtifactCard","isConfirmationModalOpen","setIsConfirmationModalOpen","artifactOptions","handleEdit","listingArtifact","onDelete","handleParamsChange","dropdownToggleProps","caret","ListingServicesTab","setPagination","services","setServices","editServiceId","setEditServiceId","isCreateModalVisible","setIsCreateModalVisible","handleDelete","method","setVisibility","xxl","cols","service","ListingUseCasesTab","editUseCaseId","setEditUseCaseId","useCases","setUseCases","loadData","useCase","ListingProductsTab","products","setProducts","editProductId","setEditProductId","product","ListingAwardCard","award","awardYear","ListingAwardsTab","setArtifactParams","awards","setAwards","isPromiseStale","isPromptOpen","setIsPromptOpen","setIsSuspending","toggleVisibilityConfirm","setListingVisibility","tabs","ViewListing","checkoutSuccess","tab","setListing","listingResponse","colorScheme","placement","renderStatusIndicator","stateProvince","listingSocialMediaAccounts","parseDateTime","updatedAt","views","memo","isNewMessageNotification","notificationType","isResendClaimFormDataAlternative","isUserSubmittable","password","confirmPassword","recaptchaToken","claimErrorDictionary","InvalidClaimToken","ClaimPeriodExpired","UnknownError","baseUserURL","websocketConsumer","retrieveCurrentGovUserData","retrieveGovUserById","govUserSettingAttributes","userAppNotificationSettingAttributes","userEmailNotificationSettingAttributes","signInUser","authorization","signOutUser","setWebsocketConsumer","submitClaimRequest","form","resendClaim","inviteSignUp","inviteToken","claimSignUp","claimToken","govUserSignUp","encryptedVisionUserData","govUserOrganizationId","interactionDetail","redirectTo","getFullSessionUrl","encodeURIComponent","updateUser","govUserExtendedDataAttributes","detailsEmpty","changePassword","checkClaim","decryptAndValidateGovUserData","saveGovUserDataFromVision","updateAccount","changeEmail","requestPasswordReset","resetPassword","passwordConfirmation","resetPasswordToken","cancelEmailChange","Cable","countNotifications","getNotifications","markAllNotificationsRead","markNotificationRead","makeObservable","observable","action","redirect","token","confirmation_token","invite_token","participantList","defaultListingId","ChatThreadCard","chatThreadData","featuredParticipant","featured","renderFeaturedPhoto","userChatMessages","allowedFileTypes","BulkAttachments","files","fileUploaderProps","BulkLinks","links","requiredFields","Users","getUserData","getAccountUsers","setEmail","isResendEnabled","emailForm","resendButton","xl","resendConfirmationEmail","determineContent","GovUserExtendedProfileDetailCard","profileDetailSection","AccountActions","isEditProfileModalOpen","setIsEditProfileModalOpen","isChangePasswordModalOpen","setIsChangePasswordModalOpen","isChangeEmailModalOpen","setIsChangeEmailModalOpen","isEditAccountModalOpen","setIsEditAccountModalOpen","ret","onSubmitted","GovUserTechnologyTypesCard","Account","tzo","getTimezoneOffset","dif","pad","num","getHours","getMinutes","getSeconds","getCurrentISOStringOffset","GMT","zone","timeZoneOptions","tz","indexOf","currentTime","spacetime","score","dst","hasDst","substr","scoreTimezoneOption","b","findFuzzyTz","timestamp","toLocaleDateString","hour","minute","getTimezoneData","zoneLabel","goto","tzStrings","informal","display","abbrev","altName","daylight","standard","isDST","hr","hrTemp","altTemp","abbrevTemp","entries","selectOptions","withGrace","day","Error","SESSION_VARIABLES","noStoredSessionRedirect","URLSearchParams","pathName","queryParams","sessionStorage","PATH_NAME","QUERY","clearRedirectSessionVariables","getSessionPath","getSessionQuery","Q_PARAM","Q_USER_EXISTS","LINKED_TO_VISION","args","isLinked","userExists","JSON","getSessionQUserLinkedToVision","xmlnsXlink","transform","xmlnsdc","xmlnsrdf","xmlnssvg","fillOpacity","marker","visibility","overflow","AddressForm","makeId","gutter","SignupAccountForm","validateUniqueEntityId","checkUniqueEntity","isAccountNameHidden","accountNameInput","Input","inputComponent","ServerBackedAutoComplete","setSelectOptions","setSearchValue","optionsLoading","setOptionsLoading","setIsExtending","setIsActive","requiredBreach","setRequiredBreach","inputRef","blur","searchValue","loadingBounceMs","debounceChange","searchDebounceMs","debouncedScroll","scrollDebounceMs","makeItemLabel","shortLabel","renderOptionsContent","category","divider","onMouseDown","kyprss","renderSelectItemContent","sublabel","clearSelect","inputAriaLabel","clearInput","onFocus","GovUserOrganizationAutoCompleteInput","getOrganizations","shortName","GovUserExtendedDataOrganizationForm","getGovUserOrganizations","SignupUserForm","SignupLoginForm","onEmailChange","emailValid","asyncValidateEmail","emailValidReason","disableEmail","syncValidation","isVisionUser","checkSignupUserEmail","makeEmailValidationMessage","reason","isEmailHidden","visionAccountConnected","openConnectVisionAccountModal","emailInput","ClaimRequestForm","ChangeEmailForm","unconfirmedForm","resendEmail","ChangePasswordForm","generateAndSetSalt","currentPassword","newPassword","confirmNewPassword","EditAccountForm","EditProfileForm","destroyable","govUserExtendedFormData","setGovUserExtendedFormData","prev","ResendClaimForm","readOnly","ListingArtifactTechnologyFocusAreas","GenericListingArtifactFormFragment","renderDatePicker","formKey","calendarAriaLabel","clearAriaLabel","toISOString","f","isServerFileData","isListingArtifactSubmittable","ListingArtifactFormWizard","steps","_props","onComplete","onFormDataChange","canComplete","submittable","ListingArtifactFormModal","suspending","setSuspense","directory","update","composePreloadedData","dataWithAttributes","canSubmit","switchOff","term","setTerm","hasSignedTerm","setHasSignedTerm","privacy","setPrivacy","hasSignedPrivacy","setHasSignedPrivacy","isAgreeSuspended","setIsAgreeSuspended","all","getLatestTerms","getLatestPrivacy","signTerm","signTerms","signPrivacy","renderSignerFor","publishDate","onAgree","confirmationToken","setSuccess","knownErrorReason","setKnownErrorReason","confirmUser","determineFailureMessage","mobilizeVisionLogo","requestReset","setPassword","setConfirmPassword","getLatestAntiSpamPolicy","renderData","invitedUserData","setInvitedUserData","setRecaptchaToken","sitekey","invite","setInvite","checkToken","checkUserInvite","inviteResponse","renderFailure","claimRequest","setClaimRequest","errorMessage","hasOwnProperty","newUserData","setNewUserData","restfulError","redirectPath","setRedirectPath","claimData","setClaimData","knownError","resultMessage","resultSamInstructions","determineResult","renderResendForm","renderListedInstructions","visionLogoCobalt","govUserSignupData","setGovUserSignupData","setGovUserExtendedData","setRedirect","connectVisionAccountHelpModalVisible","setConnectVisionAccountHelpModalVisible","unclassifiedConfirmation","setUnclassifiedCofirmation","spamProtectionModalVisible","setSpamProtectionModalVisible","decryptedGovUserData","position","decryptGovUserData","visionUrl","GovUserConnectorChip","govUser","activeChatThreadsCount","badge","govUserConnectorChip","badgeValue","chipColor","ChipColors","BLUE","chipBackground","chipSize","displayTitle","ViewIndividualGovUser","setGovUser","navigate","goBack","UserInfoCard","ProblemStatementCard","gutterY","AdminAnalyticsResponseRateHeader","adminAnalyticsData","setAdminAnalyticsData","convertResponseRate","govUserResponseRatePctg","toFixed","getHeaderResponse","govUserEngagedCompanies","formatLegend","style","formatXDate","iprops","formattedDate","getUTCMonth","getUTCFullYear","dy","textAnchor","IgniteLineChart","chartId","ResponsiveContainer","margin","top","XAxis","dataKey","xAxis","padding","tick","YAxis","bottom","Tooltip","chartLines","chartLine","total","displayName","Line","isAnimationActive","dot","Legend","iconType","layout","verticalAlign","align","wrapperStyle","paddingBottom","formatter","AdminAnalyticsSBCTimelineLineChart","AdminAnalyticsSBCTimelineStatistics","sbcTimelineStatistics","setSBCTimelineStatistics","LineChart","noResult","IgnitePieChartPlaceHolder","colors","PieChart","Pie","outerRadius","innerRadius","paddingAngle","_","Cell","iconSize","lineHeight","isGraphEmpty","noArray","noItemsInArray","noValuesInArrayItems","entry","IgnitePieChart","testingId","innerWidth","Chart","array","filteredData","startAngle","endAngle","nameKey","getTopTenRecordsByField","field","AdminAnalyticsTechnologyTypePieCharts","focusData","productData","serviceData","awardData","govUsersData","visionUsersData","AdminAnalyticsTechnologyTypeTable","setVisible","bordered","scope","row","rowData","percent","_string","listingPct","listingProductPct","listingServicePct","usersPct","visionUsersPct","listingCount","listingProductCount","listingServiceCount","usersCount","visionUsersCount","tableRow","techTypeTable","AdminAnalyticsTechnologyTypeStatistics","technologyTypeStatistics","setTechnologyTypeStatistics","AdminAnalyticsGovUsersTimelineLineChart","AdminAnalyticsGovUsersTimelineStatistics","govUsersTimelineStatistics","setGovUsersTimelineStatistics","AdminAnalyticsListingPageViewsTable","pageViews","listingPageViewTable","AdminAnalyticsListingPageViewsStatistics","listingPageViewsStatistics","setListingPageViewsStatistics","getListingPageViewStatistics","ListingPageViewsTable","ActiveConversationStatisticLineChart","ActiveConversationStatistics","activeConversationStatistics","setActiveConversationStatistics","DafUserStatisticsLineChart","DafUsersStatistics","dafUserStatistics","setDafUserStatistics","SbcUserStatisticLineChart","SbcUserStatistics","sbcUserStatistics","setSbcUserStatistics","OrganizationUserStatisticTable","organization","OrganizationUsersTable","OrganizationUserStatistics","organizationUserStatistics","setOrganizationUserStatistics","getOrganizationUserStatistics","Table","AdminAnalytics","instructions"],"mappings":"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D,KAAM,SACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,SAIb,CACED,KAAM,mBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,iBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,4BACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,SAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,sBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,KAET,CACED,KAAM,kBACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,sBACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,OAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,+BACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,sBACNC,MAAO,KAET,CACED,KAAM,oBACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,OACNC,MAAO,OAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,0BACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,yBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,2BACNC,MAAO,OAET,CACED,KAAM,0BACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,yBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,SAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,8BACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iCACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,OAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,SAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,SAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,OAIb,CACED,KAAM,mCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,QAIb,CACED,KAAM,yBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,iCACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,SAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,gBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,iCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iCACNC,MAAO,QAIb,CACED,KAAM,oBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,eACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,SAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,KAET,CACED,KAAM,oBACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,kBACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,6BACNC,MAAO,QAIb,CACED,KAAM,iBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,eAIb,CACED,KAAM,2BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,qDACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,wCACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,iCACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,IAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,sCACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,mBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,mBACNC,MAAO,QAIb,CACED,KAAM,0BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,mCACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,SAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,OAIb,CACED,KAAM,uCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,mDACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,eACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,aAET,CACED,KAAM,OACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,eAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,OAIb,CACED,KAAM,gCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,uCACNC,MAAO,MAET,CACED,KAAM,iCACNC,MAAO,MAET,CACED,KAAM,4CACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,gCACNC,MAAO,MAET,CACED,KAAM,sDACNC,MAAO,MAET,CACED,KAAM,mCACNC,MAAO,MAET,CACED,KAAM,mCACNC,MAAO,MAET,CACED,KAAM,gCACNC,MAAO,MAET,CACED,KAAM,uCACNC,MAAO,MAET,CACED,KAAM,4CACNC,MAAO,MAET,CACED,KAAM,mCACNC,MAAO,MAET,CACED,KAAM,6CACNC,MAAO,MAET,CACED,KAAM,qCACNC,MAAO,MAET,CACED,KAAM,sCACNC,MAAO,MAET,CACED,KAAM,iCACNC,MAAO,MAET,CACED,KAAM,2CACNC,MAAO,MAET,CACED,KAAM,qCACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,gCACNC,MAAO,QAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,iBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,6BACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,gCACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,gCACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,SAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,SAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,SAET,CACED,KAAM,aACNC,MAAO,SAET,CACED,KAAM,UACNC,MAAO,SAET,CACED,KAAM,WACNC,MAAO,SAET,CACED,KAAM,aACNC,MAAO,SAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,SAET,CACED,KAAM,YACNC,MAAO,SAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,WAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,QAIb,CACED,KAAM,qBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,OACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,kBACNC,MAAO,KAET,CACED,KAAM,OACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,oCACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,OAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,oBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gCACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,qDACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,oCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,oCACNC,MAAO,eAIb,CACED,KAAM,gBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,eAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,KACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,KACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,uBACNC,MAAO,SAET,CACED,KAAM,mBACNC,MAAO,SAET,CACED,KAAM,qBACNC,MAAO,SAET,CACED,KAAM,gBACNC,MAAO,SAET,CACED,KAAM,SACNC,MAAO,SAET,CACED,KAAM,gBACNC,MAAO,SAET,CACED,KAAM,kBACNC,MAAO,SAET,CACED,KAAM,cACNC,MAAO,SAET,CACED,KAAM,cACNC,MAAO,SAET,CACED,KAAM,QACNC,MAAO,SAET,CACED,KAAM,YACNC,MAAO,SAET,CACED,KAAM,YACNC,MAAO,SAET,CACED,KAAM,kBACNC,MAAO,SAET,CACED,KAAM,oBACNC,MAAO,SAET,CACED,KAAM,eACNC,MAAO,SAET,CACED,KAAM,uBACNC,MAAO,SAET,CACED,KAAM,YACNC,MAAO,SAET,CACED,KAAM,UACNC,MAAO,SAET,CACED,KAAM,kBACNC,MAAO,WAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,0BACNC,MAAO,OAET,CACED,KAAM,6BACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,6BACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,iCACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,QAIb,CACED,KAAM,gBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,eAIb,CACED,KAAM,mBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,yBACNC,MAAO,aAET,CACED,KAAM,uBACNC,MAAO,aAET,CACED,KAAM,sBACNC,MAAO,aAET,CACED,KAAM,eACNC,MAAO,aAET,CACED,KAAM,oBACNC,MAAO,eAIb,CACED,KAAM,sCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,iBACNC,MAAO,aAET,CACED,KAAM,+BACNC,MAAO,eAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,KAET,CACED,KAAM,iBACNC,MAAO,KAET,CACED,KAAM,kBACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,KAET,CACED,KAAM,iBACNC,MAAO,KAET,CACED,KAAM,qBACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,OAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,OAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,+BACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,MACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,eAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,eAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,0CACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,sBACNC,MAAO,KAET,CACED,KAAM,yBACNC,MAAO,KAET,CACED,KAAM,oBACNC,MAAO,KAET,CACED,KAAM,2BACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,qBACNC,MAAO,KAET,CACED,KAAM,kBACNC,MAAO,KAET,CACED,KAAM,sBACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,sBACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,QAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,6BACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,eAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,eAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,iBACNC,MAAO,aAET,CACED,KAAM,qBACNC,MAAO,aAET,CACED,KAAM,cACNC,MAAO,aAET,CACED,KAAM,cACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,OACNC,MAAO,eAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,qBACNC,MAAO,OAIb,CACED,KAAM,gBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,kCACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,+BACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,oCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,oCACNC,MAAO,eAIb,CACED,KAAM,0BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,0BACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,QAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,iCACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,KAET,CACED,KAAM,+BACNC,MAAO,KAET,CACED,KAAM,uBACNC,MAAO,KAET,CACED,KAAM,uBACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,OAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,8BACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,2CACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,4BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,gDACNC,MAAO,MAET,CACED,KAAM,gDACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,0DACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,wCACNC,MAAO,MAET,CACED,KAAM,wCACNC,MAAO,MAET,CACED,KAAM,yCACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,4CACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,4CACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,mCACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,eAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,eAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,6BACNC,MAAO,MAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,SAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,OACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,mBACNC,MAAO,aAET,CACED,KAAM,kBACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,oBACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,kBACNC,MAAO,KAET,CACED,KAAM,oBACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,eAIb,CACED,KAAM,yCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gCACNC,MAAO,MAET,CACED,KAAM,2CACNC,MAAO,MAET,CACED,KAAM,2CACNC,MAAO,MAET,CACED,KAAM,2CACNC,MAAO,MAET,CACED,KAAM,2CACNC,MAAO,MAET,CACED,KAAM,gCACNC,MAAO,MAET,CACED,KAAM,kCACNC,MAAO,MAET,CACED,KAAM,2CACNC,MAAO,MAET,CACED,KAAM,2CACNC,MAAO,MAET,CACED,KAAM,kCACNC,MAAO,MAET,CACED,KAAM,kCACNC,MAAO,QAIb,CACED,KAAM,qBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,KAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,KAET,CACED,KAAM,qBACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,6BACNC,MAAO,OAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,SAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,OAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,2CACNC,MAAO,QAIb,CACED,KAAM,gBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,eAIb,CACED,KAAM,yBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,mCACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,IAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,OAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,qCACNC,MAAO,MAET,CACED,KAAM,+BACNC,MAAO,MAET,CACED,KAAM,kCACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,+BACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,mBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,SAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,eAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,yBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,0BACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,SAIb,CACED,KAAM,kCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,SAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,MACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,SAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,aAET,CACED,KAAM,gBACNC,MAAO,aAET,CACED,KAAM,gBACNC,MAAO,eAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,kCACNC,MAAO,SAET,CACED,KAAM,aACNC,MAAO,SAET,CACED,KAAM,mBACNC,MAAO,SAET,CACED,KAAM,2BACNC,MAAO,SAET,CACED,KAAM,6BACNC,MAAO,SAET,CACED,KAAM,oBACNC,MAAO,SAET,CACED,KAAM,iBACNC,MAAO,SAET,CACED,KAAM,oBACNC,MAAO,SAET,CACED,KAAM,cACNC,MAAO,SAET,CACED,KAAM,oBACNC,MAAO,SAET,CACED,KAAM,6BACNC,MAAO,SAET,CACED,KAAM,uBACNC,MAAO,WAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,KAET,CACED,KAAM,OACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,OACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,OAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,KAET,CACED,KAAM,iBACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,OAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,gBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,aAET,CACED,KAAM,OACNC,MAAO,aAET,CACED,KAAM,MACNC,MAAO,eAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,4BACNC,MAAO,SAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,OAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,MAET,CACED,KAAM,kCACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,eAIb,CACED,KAAM,iBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,eAIb,CACED,KAAM,2BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,mBACNC,MAAO,aAET,CACED,KAAM,OACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,eAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,8BACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,sCACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,sCACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,SAIb,CACED,KAAM,sBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,uCACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,qCACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,SAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,OAIb,CACED,KAAM,mBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,SAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,OAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,sCACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,SAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,SAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,mBACNC,MAAO,eAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,eACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,cACNC,MAAO,aAET,CACED,KAAM,eACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,MACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,cACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,OACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,eACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,eACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,cACNC,MAAO,aAET,CACED,KAAM,gBACNC,MAAO,aAET,CACED,KAAM,eACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,gBACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,eAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iCACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,8BACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,eAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,qBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,oCACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,4BACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,2BACNC,MAAO,OAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,6BACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,wCACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,OAET,CACED,KAAM,yBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,mCACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,iCACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,SAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,sBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,+CACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,QAIb,CACED,KAAM,wBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,OAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,eACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,eAIb,CACED,KAAM,4BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,aAET,CACED,KAAM,eACNC,MAAO,eAIb,CACED,KAAM,mCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,wBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,OAIb,CACED,KAAM,eACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,eACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,OAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,4BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,eAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,KACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,4BACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,qCACNC,MAAO,OAET,CACED,KAAM,oCACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,mCACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,SAIb,CACED,KAAM,kBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,QAIb,CACED,KAAM,eACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,2CACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,aAET,CACED,KAAM,iBACNC,MAAO,aAET,CACED,KAAM,eACNC,MAAO,aAET,CACED,KAAM,iBACNC,MAAO,aAET,CACED,KAAM,kBACNC,MAAO,aAET,CACED,KAAM,gBACNC,MAAO,aAET,CACED,KAAM,iBACNC,MAAO,aAET,CACED,KAAM,oBACNC,MAAO,eAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,OAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,MACNC,MAAO,OAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,kBACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,qBACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,kBACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,KAET,CACED,KAAM,iBACNC,MAAO,KAET,CACED,KAAM,wBACNC,MAAO,OAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,uBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,QAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,SAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,+BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,kCACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,KAET,CACED,KAAM,OACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,OAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,eAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,sBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,0BACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,SAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,eACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,OACNC,MAAO,OAIb,CACED,KAAM,2BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,2BACNC,MAAO,eAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,SAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,SAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,uBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,QAIb,CACED,KAAM,iBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,0BACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,kCACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,+BACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,2BACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,4BACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,2BACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,yBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,yBACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,0BACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,yBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,0BACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,yBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,yBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,SAIb,CACED,KAAM,gBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,sDACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,QAIb,CACED,KAAM,uCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,6CACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,SAIb,CACED,KAAM,oCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,yBACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,OACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,OAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,oCACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,mCACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,sCACNC,MAAO,QAIb,CACED,KAAM,0BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,SAIb,CACED,KAAM,uBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,SAIb,CACED,KAAM,oBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,MACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,SAIb,CACED,KAAM,iBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,SAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,U,2lCCrhmBVK,E,qCCRQC,EAAQ,SAACvP,GACpB,OACE,eAAC,IAAD,CACE,wBAAgBA,EAAM,eAAiBA,EAAM,eAAiB,IAAM,GAApE,SACAwP,SAAO,EACPC,QAAQ,QACR1H,MAAO/H,EAAM+H,OAAS,OAJxB,UAME,4BAAI/H,EAAM0H,UACT1H,EAAM0P,eACL,wBACEvR,KAAK,SACLe,UAAU,4BACV,aAAW,QACX,cAAY,kBACZkG,QAAS,kBAAMpF,EAAM0P,uB,iGCXlBC,EAAoB3O,YAAOC,IAAiBC,MAAME,kBAA9BJ,CAC/BK,aAAS,SAACrB,GACR,MAAsC+D,wBAA2BiD,GAAjE,mBAAO4I,EAAP,KAAsBC,EAAtB,KACA,EAA6B9L,mBAAiB,GAA9C,mBAAO+L,EAAP,KAAaC,EAAb,KACA,EAAqChM,mBAAiB,GAAtD,mBAAOiM,EAAP,KAAiBC,EAAjB,KACA,EAA6BlM,mBAAg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","file":"static/js/main.f90b5e58.chunk.js","sourcesContent":["import { ServerStore, UserData } from './'\nimport {\n FileResponseData,\n GenericLabeledItemResponse,\n GenericNamedItemResponse,\n} from '../lib/types'\nimport { PaginationParams, ServerPageData } from '../lib/types/Params'\nimport { ListingArtifactLinkFormData } from '../components/form/fragments/listing/BulkLinks'\nimport { ListingArtifactAttachmentFormData } from '../components/form/fragments/listing/BulkAttachments'\nimport { ListingOrganizationFormData } from '../components/form/fragments/listing/OrganizationDetails'\nimport { ListingContractingDetailsFormData } from '../components/form/fragments/listing/ContractingDetails'\nimport { ListingArtifactFormData } from '../components/form'\nimport { GenericSearchMetadata } from './UserStore'\n\nexport interface UserListingAccessesAttributes {\n userId: number\n isPointOfContact: boolean\n}\n\nexport interface ListingTechnologyTypesAttributes {\n technologyTypeId: number\n}\n\nexport interface ListingNaicsCodesAttributes {\n naicsCodeId: number\n}\n\nexport interface ListingBusinessClassificationsAttributes {\n businessClassificationId: number\n}\n\nexport interface ListingSocialMediaAccountAttributes {\n socialMediaTypeId: number\n identifier: string\n}\n\nexport interface ListingFormData\n extends ListingOrganizationFormData,\n ListingContractingDetailsFormData {\n listingArtifactLinksAttributes?: Array\n listingArtifactAttachmentsAttributes?: Array\n listingArtifactTechnologyTypesAttributes?: Array\n}\n\nexport interface UpdateListingData {\n id: string | number\n name: string\n tagLine: string\n logo: File | FileResponseData\n yearFounded: string | number\n website: string\n pointOfContactId: string | number\n // HEADQUARTERS\n addressLine1: string\n addressLine2?: string\n addressLine3?: string\n city: string\n stateOrProvince: string\n country: string\n postalCode: string\n // CONTRACT DETAILS\n samCode?: string\n dunsCode?: string\n naicsCodes?: Array\n technologyTypes?: Array\n capabilityStatement: string\n businessClassifications?: Array\n socialMediaAccounts?: Array\n listingArtifactLinksAttributes?: Array\n listingArtifactAttachmentsAttributes?: Array\n listingArtifactTechnologyTypesAttributes?: Array\n}\n\nexport type ListingData = {\n id: string | number\n addressLine1?: string\n addressLine2?: string\n addressLine3?: string\n city?: string\n stateProvince?: string\n postalCode: string\n country: string\n capabilityStatement?: string\n cageCode?: string\n dunsCode?: string\n samCode?: string\n samRegistrationDate?: string\n samExpirationDate?: string\n productServiceCodes?: Array\n uniqueEntityId: string\n tagLine?: string\n website?: string\n accountId: string | number\n createdAt: string\n updatedAt: string\n inactiveDate: string\n yearFounded?: string\n name: string\n logo?: FileResponseData\n listingSocialMediaAccounts: string\n users: string\n businessClassifications: string\n naicsCodes: string\n technologyTypes: string\n offerings: string\n listingContracts: string\n isPublished?: boolean\n isOnlyVisionVisible?: boolean\n listingArtifactLinks?: Array\n listingArtifactAttachments?: Array\n pointOfContact?: UserData\n listingArtifactTechnologyTypes?: Array\n views?: number\n}\n\nexport type ConnectListingsResponse = {\n id: number\n name: string\n logo: FileResponseData\n addressLine1: string\n addressLine2?: string\n addressLine3?: string\n city: string\n stateProvince: string\n postalCode: string\n country: string\n capabilityStatement: string\n dunsCode?: string\n samCode?: string\n uniqueEntityId: string\n tagLine: string\n website: string\n yearFounded: string\n createdAt: string\n updatedAt: string\n technologyTypes: Array\n}\n\nexport interface IgniteAwardQueryParams {\n eager?: string\n searchAwards?: string\n awardContractNumber?: string\n awardState?: string\n awardAmountMin?: number\n awardAmountMax?: number\n awardPhase?: string\n awardNaicsCodeIds?: string\n awardTechnologyTypeIds?: string\n awardDateMin?: string\n awardDateMax?: string\n sortBy?: string\n sortDirection?: string\n highlight?: string\n}\n\nexport interface ListingArtifactPricing {\n id: string | number\n amount: number\n periodIncrement: string\n periodValue: number\n}\n\nexport interface ListingArtifactLink {\n id: string | number\n name: string\n description: string\n url: string\n}\n\nexport interface ListingArtifactAttachment {\n id: string | number\n name: string\n description: string\n file: FileResponseData\n}\n\nexport interface ListingArtifactTechnologyType {\n artifactId: number\n technologyTypeId: number\n listingArtifactTechnologyTypeId: number\n name: string\n}\n\nexport interface ProductServiceCode {\n id: string | number\n code: string\n description?: string\n}\n\nexport const isListingArtifactTechnologyType = (o: any): o is ListingArtifactTechnologyType => {\n return 'listingArtifactTechnologyTypeId' in o && !!o['listingArtifactTechnologyTypeId']\n}\n\nexport interface ListingServiceProductData {\n id: string | number\n listingId: string | number\n name: string\n description: string\n url?: string\n logo?: FileResponseData\n listingArtifactPricings?: Array\n listingArtifactLinks?: Array\n listingArtifactAttachments?: Array\n listingArtifactTechnologyTypes?: Array\n}\n\nexport interface ListingUseCaseData {\n id: string | number\n listingId: string | number\n name: string\n description: string\n url?: string\n logo?: FileResponseData\n startDate?: string\n endDate?: string\n listingArtifactLinks?: Array\n listingArtifactAttachments?: Array\n listingArtifactTechnologyTypes?: Array\n}\n\nexport interface ListingAwardData {\n id: number\n contractNumber: string\n contractAwardDate?: string\n contractStartDate?: string\n contractEndDate?: string\n awardAmount?: string\n awardTitle?: string\n productServiceCode?: string\n principleNaicsCode?: string\n state?: string\n awardAbstract?: string\n phase?: string\n branch?: string\n program?: string\n piName?: string\n piTitle?: string\n piPhone?: string\n piEmail?: string\n awardYear?: string\n researchInstitutionName?: string\n listingArtifactTechnologyTypes?: Array\n anticipatedBenefits?: string\n searchMetadata?: GenericSearchMetadata\n}\n\nexport const isAward = (o: any): o is ListingAwardData => {\n return 'contractNumber' in o\n}\n\nexport interface Destructible {\n destroyable?: boolean\n destroy?: boolean\n}\n\nexport interface DestructibleItem extends Destructible {\n id: string | number\n}\n\nexport const isUseCase = (\n artifact: ListingServiceProductData | ListingUseCaseData,\n): artifact is ListingUseCaseData => {\n return 'startDate' in artifact && 'endDate' in artifact\n}\n\nexport const isLink = (\n artifact: ListingArtifactLink | ListingArtifactAttachment,\n): artifact is ListingArtifactLink => {\n return 'url' in artifact\n}\n\nexport const isAttachment = (\n artifact: ListingArtifactLink | ListingArtifactAttachment,\n): artifact is ListingArtifactAttachment => {\n return 'file' in artifact\n}\n\nexport class ListingStore extends ServerStore {\n public listings: any\n\n public getListings = async (params: PaginationParams): Promise> => {\n return this.server()\n .get('/api/v1/current_user/listings', {\n params: { page: params.page, perPage: params.perPage },\n })\n .then(({ data }) => data)\n }\n\n public getSingleListing = (id: string | number, eager?: string): Promise => {\n return this.server()\n .get(`/api/v1/listings/${id}`, {\n params: { eager },\n })\n .then(({ data }) => data)\n }\n\n public getSingleListingService = ({\n listingId,\n serviceId,\n eager,\n }: {\n listingId: string\n serviceId: string\n eager?: string\n }): Promise => {\n return this.server()\n .get(`/api/v1/listings/${listingId}/listing_services/${serviceId}`, { params: { eager } })\n .then(({ data }) => data)\n }\n\n public getAwardsPhases = async (\n params: PaginationParams,\n ): Promise> => {\n return this.server()\n .get('/api/v1/connect/awards/phases', { params })\n .then(({ data }) => data)\n }\n\n public getSingleListingProduct = ({\n listingId,\n productId,\n eager,\n }: {\n listingId: string\n productId: string\n eager?: string\n }): Promise => {\n return this.server()\n .get(`/api/v1/listings/${listingId}/listing_products/${productId}`, { params: { eager } })\n .then(({ data }) => data)\n }\n\n public getSingleListingUseCase = ({\n listingId,\n useCaseId,\n eager,\n }: {\n listingId: string\n useCaseId: string\n eager?: string\n }): Promise => {\n return this.server()\n .get(`/api/v1/listings/${listingId}/listing_use_cases/${useCaseId}`, { params: { eager } })\n .then(({ data }) => data)\n }\n\n public getSingleListingAward = ({\n listingId,\n awardId,\n eager,\n }: {\n listingId: string\n awardId: string\n eager?: string\n }): Promise => {\n return this.server()\n .get(`/api/v1/listings/${listingId}/listing_awards/${awardId}`, { params: { eager } })\n .then(({ data }) => data)\n }\n\n public getPointOfContact = (id: string | number): Promise => {\n return this.server()\n .get(`/api/v1/listings/${id}/users/point_of_contact`)\n .then(({ data }) => data)\n }\n\n public getListingServices = async ({\n listingId,\n params,\n eager,\n }: {\n listingId: string | number\n params: PaginationParams\n eager?: string\n }): Promise> => {\n return this.server()\n .get(`/api/v1/listings/${listingId}/listing_services`, {\n params: { page: params.page, perPage: params.perPage, eager: eager },\n })\n .then(({ data }) => data)\n }\n\n public getListingUseCases = async ({\n listingId,\n params,\n eager,\n }: {\n listingId: string | number\n params: PaginationParams\n eager?: string\n }): Promise> => {\n return this.server()\n .get(`/api/v1/listings/${listingId}/listing_use_cases`, {\n params: { page: params.page, perPage: params.perPage, eager: eager },\n })\n .then(({ data }) => data)\n }\n\n public getListingProducts = async ({\n listingId,\n params,\n eager,\n }: {\n listingId: string | number\n params: PaginationParams\n eager?: string\n }): Promise> => {\n return this.server()\n .get(`/api/v1/listings/${listingId}/listing_products`, {\n params: { page: params.page, perPage: params.perPage, eager: eager },\n })\n .then(({ data }) => data)\n }\n\n public updateListingService = async ({\n listingId,\n serviceId,\n payload,\n }: {\n listingId: string | number\n serviceId: string | number\n payload: ListingArtifactFormData\n }): Promise => {\n const formData = this.composeFormData(payload)\n return this.server()\n .patch(\n `/api/v1/listings/${listingId}/listing_services/${serviceId}`,\n formData,\n {\n headers: { 'Content-Type': 'multipart/form-data' },\n },\n )\n .then(({ data }) => data)\n }\n\n public updateListingUseCase = async ({\n listingId,\n useCaseId,\n payload,\n }: {\n listingId: string | number\n useCaseId: string | number\n payload: ListingArtifactFormData\n }): Promise => {\n const formData = this.composeFormData(payload)\n return this.server()\n .patch(\n `/api/v1/listings/${listingId}/listing_use_cases/${useCaseId}`,\n formData,\n {\n headers: { 'Content-Type': 'multipart/form-data' },\n },\n )\n .then(({ data }) => data)\n }\n\n private composeFormData = (payload: ListingArtifactFormData): FormData => {\n const formData = new FormData()\n formData.append('name', payload.name)\n formData.append('description', payload.description)\n payload.url && formData.append('url', payload.url)\n\n if (payload.logo instanceof File) {\n formData.append('logo', payload.logo as File)\n }\n\n payload.startDate && formData.append('startDate', payload.startDate)\n payload.endDate && formData.append('endDate', payload.endDate)\n\n payload.listingArtifactAttachmentsAttributes &&\n payload.listingArtifactAttachmentsAttributes.forEach((attachment, i) => {\n attachment.id &&\n formData.append(\n `listingArtifactAttachmentsAttributes[${i}][id]`,\n attachment.id.toString(),\n )\n attachment.name &&\n formData.append(`listingArtifactAttachmentsAttributes[${i}][name]`, attachment.name)\n attachment.description &&\n formData.append(\n `listingArtifactAttachmentsAttributes[${i}][description]`,\n attachment.description,\n )\n if (attachment.file instanceof File) {\n formData.append(\n `listingArtifactAttachmentsAttributes[${i}][file]`,\n attachment.file as File,\n )\n }\n formData.append(\n `listingArtifactAttachmentsAttributes[${i}][destroy]`,\n attachment.destroy ? 'true' : 'false',\n )\n })\n\n payload.listingArtifactLinksAttributes &&\n payload.listingArtifactLinksAttributes.forEach((link, i) => {\n link.id && formData.append(`listingArtifactLinksAttributes[${i}][id]`, link.id.toString())\n link.name && formData.append(`listingArtifactLinksAttributes[${i}][name]`, link.name)\n link.description &&\n formData.append(`listingArtifactLinksAttributes[${i}][description]`, link.description)\n formData.append(`listingArtifactLinksAttributes[${i}][url]`, link.url)\n formData.append(\n `listingArtifactLinksAttributes[${i}][destroy]`,\n link.destroy ? 'true' : 'false',\n )\n })\n\n payload.listingArtifactTechnologyTypesAttributes &&\n payload.listingArtifactTechnologyTypesAttributes.forEach((techType, i) => {\n isListingArtifactTechnologyType(techType) &&\n formData.append(\n `listingArtifactTechnologyTypesAttributes[${i}][id]`,\n techType.listingArtifactTechnologyTypeId.toString(),\n )\n\n const technologyTypeId = isListingArtifactTechnologyType(techType)\n ? techType.technologyTypeId\n : techType.id\n formData.append(\n `listingArtifactTechnologyTypesAttributes[${i}][technologyTypeId]`,\n technologyTypeId.toString(),\n )\n\n isListingArtifactTechnologyType(techType) &&\n formData.append(\n `listingArtifactTechnologyTypesAttributes[${i}][destroy]`,\n techType.destroy ? 'true' : 'false',\n )\n })\n\n return formData\n }\n\n public getListingAwards = async ({\n listingId,\n params,\n }: {\n listingId: string | number\n params: PaginationParams & IgniteAwardQueryParams\n }): Promise> => {\n return this.server()\n .get(`/api/v1/listings/${listingId}/listing_awards`, {\n params: { ...params },\n })\n .then(({ data }) => data)\n }\n\n public createListingService = async ({\n listingId,\n payload,\n }: {\n listingId: number | string\n payload: ListingArtifactFormData\n }): Promise => {\n const formData = this.composeFormData(payload)\n\n return this.server()\n .post(`/api/v1/listings/${listingId}/listing_services`, formData, {\n headers: { 'Content-Type': 'multipart/form-data' },\n })\n .then(({ data }) => data)\n }\n\n public createListingProduct = async ({\n listingId,\n payload,\n }: {\n listingId: number | string\n payload: ListingArtifactFormData\n }): Promise => {\n const formData = this.composeFormData(payload)\n\n return this.server()\n .post(`/api/v1/listings/${listingId}/listing_products`, formData, {\n headers: { 'Content-Type': 'multipart/form-data' },\n })\n .then(({ data }) => data)\n }\n\n public updateListingProduct = async ({\n listingId,\n productId,\n payload,\n }: {\n listingId: string | number\n productId: string | number\n payload: ListingArtifactFormData\n }): Promise => {\n let formData = this.composeFormData(payload)\n\n return this.server()\n .patch(`/api/v1/listings/${listingId}/listing_products/${productId}`, formData, {\n headers: { 'Content-Type': 'multipart/form-data' },\n })\n .then(({ data }) => data)\n }\n\n public createListingUseCase = async ({\n listingId,\n payload,\n }: {\n listingId: number | string\n payload: ListingArtifactFormData\n }): Promise => {\n const formData = this.composeFormData(payload)\n return this.server()\n .post(\n `/api/v1/listings/${listingId}/listing_use_cases`,\n formData,\n {\n headers: { 'Content-Type': 'multipart/form-data' },\n },\n )\n .then(({ data }) => data)\n }\n\n public updateListing = async (payload: UpdateListingData): Promise => {\n const formData = new FormData()\n formData.append('name', payload.name)\n formData.append('tagLine', payload.tagLine)\n if (payload.logo instanceof File) {\n formData.append('logo', payload.logo as File)\n }\n formData.append('yearFounded', payload.yearFounded.toString())\n formData.append('website', payload.website)\n payload.samCode && formData.append('samCode', payload.samCode)\n payload.dunsCode && formData.append('dunsCode', payload.dunsCode)\n formData.append('capabilityStatement', payload.capabilityStatement)\n\n formData.append('addressLine_1', payload.addressLine1)\n formData.append('addressLine_2', payload.addressLine2 ? payload.addressLine2 : '')\n formData.append('addressLine_3', payload.addressLine3 ? payload.addressLine3 : '')\n formData.append('city', payload.city)\n formData.append('stateProvince', payload.stateOrProvince)\n formData.append('country', payload.country)\n formData.append('postalCode', payload.postalCode)\n formData.append('pointOfContactId', payload.pointOfContactId.toString())\n\n payload.naicsCodes &&\n payload.naicsCodes.forEach((code) => {\n formData.append('naicsCodes[][id]', code.id.toString())\n formData.append('naicsCodes[][destroy]', code.destroy!.toString())\n })\n\n payload.technologyTypes &&\n payload.technologyTypes.forEach((type) => {\n formData.append('technologyTypes[][id]', type.id.toString())\n formData.append('technologyTypes[][destroy]', type.destroy!.toString())\n })\n\n payload.businessClassifications &&\n payload.businessClassifications.forEach((el) => {\n formData.append(`businessClassifications[][id]`, el.id.toString())\n formData.append(`businessClassifications[][destroy]`, el.destroy!.toString())\n })\n\n payload.socialMediaAccounts &&\n payload.socialMediaAccounts.forEach((el) => {\n formData.append(`socialMediaAccounts[][socialMediaTypeId]`, el.socialMediaTypeId.toString())\n formData.append(`socialMediaAccounts[][identifier]`, el.identifier.toString())\n formData.append(\n `socialMediaAccounts[][destroy]`,\n el.identifier.length < 2 ? 'true' : 'false',\n )\n })\n\n payload.listingArtifactAttachmentsAttributes &&\n payload.listingArtifactAttachmentsAttributes.forEach((attachment, i) => {\n attachment.id &&\n formData.append(\n `listingArtifactAttachmentsAttributes[${i}][id]`,\n attachment.id.toString(),\n )\n attachment.name &&\n formData.append(`listingArtifactAttachmentsAttributes[${i}][name]`, attachment.name)\n attachment.description &&\n formData.append(\n `listingArtifactAttachmentsAttributes[${i}][description]`,\n attachment.description,\n )\n if (attachment.file instanceof File) {\n formData.append(\n `listingArtifactAttachmentsAttributes[${i}][file]`,\n attachment.file as File,\n )\n }\n formData.append(\n `listingArtifactAttachmentsAttributes[${i}][destroy]`,\n attachment.destroy ? 'true' : 'false',\n )\n })\n\n payload.listingArtifactLinksAttributes &&\n payload.listingArtifactLinksAttributes.forEach((link, i) => {\n link.id && formData.append(`listingArtifactLinksAttributes[${i}][id]`, link.id.toString())\n link.name && formData.append(`listingArtifactLinksAttributes[${i}][name]`, link.name)\n link.description &&\n formData.append(`listingArtifactLinksAttributes[${i}][description]`, link.description)\n formData.append(`listingArtifactLinksAttributes[${i}][url]`, link.url)\n formData.append(\n `listingArtifactLinksAttributes[${i}][destroy]`,\n link.destroy ? 'true' : 'false',\n )\n })\n\n return this.server()\n .patch(`/api/v1/current_user/listings/${payload.id}`, formData, {\n headers: { 'Content-Type': 'multipart/form-data' },\n })\n .then(({ data }) => data)\n }\n\n public publishListing(listingId: number | string): Promise {\n return this.server()\n .patch(`/api/v1/current_user/listings/${listingId}/publish`)\n .then(({ data }) => data)\n }\n\n public setListingVisibility(listingId: number | string, isOnlyVisionVisible: boolean) {\n return this.server()\n .patch(\n `/api/v1/current_user/listings/${listingId}`,\n {\n isOnlyVisionVisible,\n },\n {\n headers: { 'Content-Type': 'application/json' },\n },\n )\n .then(({ data }) => data)\n }\n\n public unpublishListing(listingId: number | string): Promise {\n return this.server()\n .patch(`/api/v1/current_user/listings/${listingId}/unpublish`)\n .then(({ data }) => data)\n }\n\n public deleteProduct = ({\n listingId,\n productId,\n }: {\n listingId: string | number\n productId: string | number\n }): Promise => {\n return this.server().delete(`/api/v1/listings/${listingId}/listing_products/${productId}`)\n }\n\n public deleteService = ({\n listingId,\n serviceId,\n }: {\n listingId: string | number\n serviceId: string | number\n }): Promise => {\n return this.server().delete(`/api/v1/listings/${listingId}/listing_services/${serviceId}`)\n }\n\n public deleteUseCase = ({\n listingId,\n useCaseId,\n }: {\n listingId: string | number\n useCaseId: string | number\n }): Promise => {\n return this.server().delete(`/api/v1/listings/${listingId}/listing_use_cases/${useCaseId}`)\n }\n}\n","export const activeStatusIcon = (className) => {\n return className === 'tooltip' ? (\n \n \n \n ) : (\n \n \n \n \n )\n}\n","import classnames from 'classnames'\nimport { Avatar, AvatarProps } from '@mobilizeyourtech/vision-core-react'\nimport { CTooltip } from '@coreui/react'\nimport { UserData } from '../../../../stores'\nimport { AccountData, isAccountData, isUserData } from '../../../../stores/UserStore'\nimport { activeStatusIcon } from '../../../../assets/brand/active_status_icon'\nimport { ConnectListingResponse } from '../../../../stores/ConnectListingStore'\n\ninterface TProps extends Omit {\n user?: UserData | AccountData | ConnectListingResponse\n displayIsActive?: boolean\n}\n\nexport const UserAvatar = ({ user, displayIsActive, ...props }: TProps) => {\n // TODO refactor to be 2 separate Avatar components - 1 scoped for Users and 1 for Accounts\n const source = () => {\n if (isUserData(user)) {\n return {\n image: user.headshot?.path,\n firstName: user.firstName,\n lastName: user.lastName,\n }\n }\n if (isAccountData(user)) {\n return {\n image: user.logo?.path,\n firstName: user.name,\n }\n }\n return undefined\n }\n\n const renderActiveDisplay = user && isUserData(user) && user.isActive && displayIsActive\n const renderTooltipContent = () => {\n return (\n
\n {activeStatusIcon()}\n Active in the last 90 days\n
\n )\n }\n\n return renderActiveDisplay ? (\n \n
\n \n
\n {activeStatusIcon()}\n
\n
\n
\n ) : (\n
\n \n
\n )\n}\n","import React from 'react'\nimport {\n CCard,\n CCardBody,\n CCardFooter,\n CCardHeader,\n CCardSubtitle,\n CCardTitle,\n CCol,\n CRow,\n CTooltip,\n} from '@coreui/react'\nimport { ApplicationStore, NotificationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { getTimezoneOptions, parseTimezone } from '../../lib/time'\nimport { SocialMediaAccount } from '../../stores/UserStore'\nimport { determineSocialMediaIconClassName } from '../../lib/helpers/utils'\nimport { UserAvatar } from '../Molecules/Avatars/UserAvatar/UserAvatar'\n\ntype TProps = {\n userStore?: UserStore\n notificationStore?: NotificationStore\n}\nexport const ProfileDetailCard = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const isGovUser = props.userStore?.currentUserData?.userRoles?.includes('gov')\n const wrappedIcon = (className: string | undefined) => {\n if (className) {\n return (\n
\n \n
\n )\n }\n return undefined\n }\n\n const renderSocialMediaAccount = (sma: SocialMediaAccount) => {\n return (\n \n {wrappedIcon(determineSocialMediaIconClassName(sma.socialMediaTypeName))}\n {sma.identifier}\n \n )\n }\n\n const unconfirmedEmailMessage = (email: string) => {\n return `A confirmation email has been sent to ${email}`\n }\n\n const timezone =\n props.userStore?.currentUserData?.timezone &&\n parseTimezone(props.userStore.currentUserData.timezone, getTimezoneOptions('original'))?.label\n\n const phoneSection = () => {\n return (\n <>\n \n \n {wrappedIcon('fas fa-mobile-alt')}\n {props.userStore?.currentUserData?.cellPhone}\n \n \n {props.userStore?.currentUserData?.workPhone && (\n \n \n {wrappedIcon('fas fa-phone-alt')}\n {props.userStore?.currentUserData?.workPhone}\n \n \n )}\n {props.userStore?.currentUserData?.workPhoneExt && (\n \n \n {wrappedIcon('fa fa-random')}\n {props.userStore?.currentUserData?.workPhoneExt}\n \n \n )}\n \n )\n }\n const socialMediaSection = () => {\n return (\n \n {props.userStore?.currentUserData?.socialMediaAccounts?.map(renderSocialMediaAccount)}\n \n )\n }\n\n const renderLocation = () => {\n let locationValues: Array = []\n if (props.userStore?.currentUserData?.govUserExtendedData) {\n const { city, stateOrProvince, country } =\n props.userStore?.currentUserData?.govUserExtendedData\n locationValues = [city, stateOrProvince, country].filter(Boolean)\n }\n\n if (!locationValues.length) return null\n\n return (\n
\n \n \n {wrappedIcon('fa fa-location-arrow')}\n {locationValues.join(', ')}\n \n \n
\n )\n }\n\n const renderYearsOfExperience = () => {\n if (!props.userStore?.currentUserData?.govUserExtendedData?.govEmployeeSinceYear) return null\n\n let yearsOfExperience = ''\n const currentYear = new Date().getFullYear()\n const experience =\n currentYear - props.userStore.currentUserData.govUserExtendedData.govEmployeeSinceYear\n\n if (experience <= 5) {\n yearsOfExperience = '0-5'\n } else if (experience > 5 && experience <= 10) {\n yearsOfExperience = '6-10'\n } else if (experience > 10 && experience <= 15) {\n yearsOfExperience = '11-15'\n } else if (experience > 15 && experience <= 20) {\n yearsOfExperience = '16-20'\n } else if (experience > 20) {\n yearsOfExperience = '20+'\n }\n return (\n

\n Years of Gov. Service: {yearsOfExperience}\n

\n )\n }\n return (\n \n User Detail\n \n
\n \n
\n
\n \n \n \n {props.userStore?.currentUserData?.firstName}{' '}\n {props.userStore?.currentUserData?.lastName}\n \n \n \n

{props.userStore?.currentUserData?.title}

\n {isGovUser && (\n <>\n

\n {props.userStore?.currentUserData?.govUserExtendedData?.govUserOrganization.name}\n

\n {renderYearsOfExperience()}\n \n )}\n
\n \n \n {wrappedIcon('far fa-envelope')}\n {props.userStore?.currentUserData?.email}\n {props.userStore?.currentUserData?.unconfirmedEmail && (\n \n \n \n \n \n )}\n \n \n {!isGovUser && phoneSection()}\n \n \n {wrappedIcon('far fa-clock')}\n {timezone}\n \n \n {isGovUser && renderLocation()}\n {!isGovUser && socialMediaSection()}\n
\n
\n )\n }),\n)\n","import React from 'react'\nimport { CCard, CCardBody, CCardHeader, CCardSubtitle, CCardTitle } from '@coreui/react'\nimport { AccountStore, ApplicationStore, NotificationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\n\ntype TProps = {\n userStore?: UserStore\n notificationStore?: NotificationStore\n accountStore?: AccountStore\n}\nexport const AccountDetailCard = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.accountStore,\n)(\n observer((props: TProps) => {\n const wrappedIcon = (className: string | undefined) => {\n if (className) {\n return (\n
\n \n
\n )\n }\n return undefined\n }\n\n return (\n <>\n \n Account Detail\n \n \n {props.userStore?.currentAccountData?.name}\n \n \n {wrappedIcon('fas fa-id-badge')}\n {props.userStore?.currentAccountData?.uniqueEntityId}\n \n \n \n \n )\n }),\n)\n","import { inject, observer } from 'mobx-react'\n\nimport { ApplicationStore, AccountStore, NotificationStore, UserStore } from '../../stores'\nimport { CustomModal, SuspensefulButton, validateLength } from '@mobilizeyourtech/vision-core-react'\nimport { CCol, CModalBody, CModalFooter } from '@coreui/react'\nimport { InviteUserForm } from '.'\nimport { useState } from 'react'\nimport { UserInviteData } from '../../stores/AccountStore'\nimport { validateEmail } from '../../lib/helpers/validation'\n\ntype TProps = {\n accountStore?: AccountStore\n notificationStore?: NotificationStore\n userStore?: UserStore\n isModalOpen: boolean\n closeModal: () => void\n}\n\nexport const CreateModal = inject(\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.accountStore,\n ApplicationStore.names.userStore,\n)(\n observer((props: TProps) => {\n const [formData, setFormData] = useState>({})\n const [hasValidated, setHasValidated] = useState(false)\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const isSubmittable = (): boolean => {\n let firstNameError = validateLength(formData.firstName, 2)\n let lastNameError = validateLength(formData.lastName, 2)\n let emailError = validateEmail(formData.email)\n\n return !firstNameError && !lastNameError && !emailError\n }\n\n const handleSubmit = () => {\n if (!isSubmittable()) {\n return\n } else {\n const currentAccountId = props.userStore!.currentAccountData!.id\n setHasValidated(true)\n setIsSubmitting(true)\n props\n .accountStore!.inviteUserToAccount(currentAccountId, formData)\n .then(() => {\n setTimeout(() => {\n setIsSubmitting(false)\n props.notificationStore?.setNotificationMessage(\n 'User invited successfully.',\n 'success',\n 3000,\n )\n props.closeModal()\n setFormData({})\n setHasValidated(false)\n }, 500)\n })\n .catch(() => {\n setIsSubmitting(false)\n props.notificationStore?.setNotificationMessage(\n 'Error sending invite; please try again.',\n 'danger',\n 3000,\n )\n })\n }\n }\n\n return (\n props.closeModal()}\n scrollable\n headerContent={'Invite User'}\n >\n \n
\n ) => {\n setFormData(change)\n }}\n formData={formData}\n />\n
\n
\n \n \n \n Submit\n \n \n \n \n )\n }),\n)\n","import { inject, observer } from 'mobx-react'\n\nimport { ApplicationStore, AccountStore, NotificationStore, UserStore } from '../../stores'\nimport { CustomModal, SuspensefulButton, validateLength } from '@mobilizeyourtech/vision-core-react'\nimport { CCol, CModalBody, CModalFooter } from '@coreui/react'\nimport { InviteUserForm } from '.'\nimport { useState } from 'react'\nimport { UserInviteData } from '../../stores/AccountStore'\nimport { InvitedUserData } from '../../stores'\nimport { validateEmail } from '../../lib/helpers/validation'\n\ntype TProps = {\n accountStore?: AccountStore\n notificationStore?: NotificationStore\n userStore?: UserStore\n isModalOpen: boolean\n userInviteId: string | number\n currentAccountId: string | number\n formData: InvitedUserData\n closeModal: () => void\n onSubmit: () => void\n}\n\nexport const EditInviteModal = inject(\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.accountStore,\n ApplicationStore.names.userStore,\n)(\n observer((props: TProps) => {\n const [formData, setFormData] = useState>(props.formData)\n const [hasValidated, setHasValidated] = useState(false)\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const isSubmittable = (): boolean => {\n let firstNameError = validateLength(formData.firstName, 2)\n let lastNameError = validateLength(formData.lastName, 2)\n let emailError = validateEmail(formData.email)\n\n return !firstNameError && !lastNameError && !emailError\n }\n\n const handleSubmit = () => {\n if (!isSubmittable()) return\n\n setHasValidated(true)\n setIsSubmitting(true)\n props\n .accountStore!.editUserInvite(props.currentAccountId, props.userInviteId!, {\n firstName: formData.firstName,\n lastName: formData.lastName,\n email: formData.email,\n })\n .then(() => {\n setIsSubmitting(false)\n props.notificationStore?.setNotificationMessage(\n 'User invite updated successfully.',\n 'success',\n 3000,\n )\n props.onSubmit()\n })\n .catch(() => {\n setIsSubmitting(false)\n props.notificationStore?.setNotificationMessage(\n 'Unable to update invite, please try again.',\n 'danger',\n 3000,\n )\n })\n }\n\n return (\n \n \n
\n ) => {\n setFormData(change)\n }}\n formData={formData}\n />\n
\n
\n \n \n \n Submit\n \n \n \n \n )\n }),\n)\n","import React from 'react'\nimport { CCol, CForm, CFormLabel, CRow } from '@coreui/react'\nimport { ValidatedCFormInput } from '../custom'\nimport { UserInviteData } from '../../stores/AccountStore'\nimport { validateLength } from '@mobilizeyourtech/vision-core-react'\nimport { validateEmail } from '../../lib/helpers/validation'\ntype TProps = {\n hasValidated: boolean\n formData: Partial\n onChange: (change: Partial) => void\n onSubmitted?: () => void\n}\n\nexport const InviteUserForm = (props: TProps) => {\n const defaultCharLengthMessage = 'Must be a minimum of 2 characters'\n\n return (\n
\n \n \n \n First Name\n\n props.onChange({ ...props.formData, firstName: value })}\n value={props.formData.firstName}\n id=\"firstName\"\n name=\"firstName\"\n placeholder=\"Enter First Name..\"\n type=\"text\"\n required\n data-testid=\"firstName\"\n validate={(v) => validateLength(v, 2)}\n renderInvalidMessage={() => defaultCharLengthMessage}\n />\n \n \n \n \n Last Name\n props.onChange({ ...props.formData, lastName: value })}\n value={props.formData.lastName}\n id=\"lastName\"\n name=\"firstName\"\n placeholder=\"Enter Last Name..\"\n type=\"text\"\n required\n data-testid=\"lastName\"\n validate={(v) => validateLength(v, 2)}\n renderInvalidMessage={() => defaultCharLengthMessage}\n />\n \n \n \n \n Email\n props.onChange({ ...props.formData, email: value })}\n value={props.formData.email}\n type=\"email\"\n id=\"email\"\n name=\"email\"\n placeholder=\"Enter Email..\"\n autoComplete=\"email\"\n required\n data-testid=\"email\"\n validate={(v) => validateEmail(v)}\n renderInvalidMessage={() => 'Please Enter Valid Email'}\n />\n \n \n \n
\n )\n}\n","import { CCard, CCardBody, CCardText, CCardFooter, CBadge } from '@coreui/react'\nimport {\n ActionConfirmationModal,\n ActionDropdown,\n ActionDropdownMenuOption,\n Avatar,\n} from '@mobilizeyourtech/vision-core-react'\nimport { inject, observer } from 'mobx-react'\nimport React, { useState } from 'react'\nimport { AccountStore, NotificationStore, ApplicationStore } from '../../stores'\nimport { InvitedUserData, UserData } from '../../stores/UserStore'\nimport { EditInviteModal } from './EditInviteModal'\n\nexport interface MenuOption extends ActionDropdownMenuOption {\n callback: () => void\n}\n\ntype TProps = {\n accountStore?: AccountStore\n notificationStore?: NotificationStore\n user: UserData | InvitedUserData\n currentAccountId: string | number\n onSubmit: () => void\n}\n\nexport const UserDetailCard = inject(\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.accountStore,\n)(\n observer((props: TProps) => {\n const [isEditing, setIsEditing] = useState(false)\n const [actionType, setActionType] = useState(undefined)\n\n const isInvitedUser = (user: UserData | InvitedUserData): user is InvitedUserData => {\n return 'userInviteId' in user && !!user['userInviteId']\n }\n const id = isInvitedUser(props.user) ? props.user.userInviteId : props.user.id\n\n const hasExpired = (dateString: string) => {\n var currentDate = new Date()\n var expirationDate = new Date(dateString)\n\n return currentDate > expirationDate\n }\n\n const userInviteExpired =\n isInvitedUser(props.user) &&\n props.user.inviteTokenExpiry &&\n hasExpired(props.user.inviteTokenExpiry)\n ? true\n : false\n\n const determineRoute = (actionType: string) => {\n let path\n if (actionType === 'resend') {\n path = props.accountStore?.resendUserInvite(props.currentAccountId, id)\n } else if (actionType === 'delete') {\n path = props.accountStore?.deleteUserInvite(props.currentAccountId, id)\n }\n return path\n }\n\n const determineMessage = (actionType: string) => {\n let message\n if (actionType === 'resend') {\n message = 'User invite resent successfully.'\n } else if (actionType === 'delete') {\n message = 'User invite deleted successfully.'\n }\n return message\n }\n\n const resendOrDelete = (actionType: string) => {\n determineRoute(actionType)!\n .then(() => {\n props.notificationStore?.setNotificationMessage(\n determineMessage(actionType),\n 'success',\n 3000,\n )\n props.onSubmit()\n })\n .catch(() => {\n props.notificationStore?.setNotificationMessage(\n `Unable to ${actionType} user invite, please try again later`,\n 'danger',\n 3000,\n )\n setActionType(undefined)\n })\n }\n\n const menuOptions: Array = [\n {\n id: 0,\n name: 'Resend Invite',\n iconClassName: 'fas fa-redo',\n callback: () => {\n setActionType('resend')\n },\n },\n {\n id: 1,\n name: 'Edit Invite',\n iconClassName: 'fas fa-pen',\n callback: () => setIsEditing(true),\n },\n {\n id: 2,\n name: 'Delete Invite',\n iconClassName: 'fa fa-trash',\n callback: () => {\n setActionType('delete')\n },\n },\n ]\n\n return (\n \n \n {isInvitedUser(props.user) && (\n
\n
\n \n {userInviteExpired ? 'Invite Expired' : 'Invited'}\n \n
\n option.callback()}\n dropdownOptions={{ iconClassName: '', text: '' }}\n />\n
\n )}\n {!!actionType && (\n setActionType(undefined)}\n onSubmit={() => {\n resendOrDelete(actionType)\n }}\n />\n )}\n {isEditing && isInvitedUser(props.user) && (\n setIsEditing(false)}\n userInviteId={id}\n currentAccountId={props.currentAccountId}\n formData={props.user}\n onSubmit={() => props.onSubmit()}\n />\n )}\n
\n \n
\n
\n {props.user.firstName} {}\n {props.user.lastName}\n
\n \n {!isInvitedUser(props.user) ? props.user.title : ''}\n \n {!isInvitedUser(props.user) &&

Zone: {props.user.timezone}

}\n
\n \n
\n \n

{props.user.email}

\n
\n {!isInvitedUser(props.user) && props.user.cellPhone && (\n
\n \n

{props.user.cellPhone}

\n
\n )}\n {!isInvitedUser(props.user) && props.user.workPhone && (\n
\n \n

{props.user.workPhone}

\n
\n )}\n
\n \n )\n }),\n)\n","import React, { Dispatch, SetStateAction, useEffect, useState } from 'react'\nimport { CCol, CContainer, CForm, CFormCheck, CRow } from '@coreui/react'\nimport { ApplicationStore, NotificationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { hasGovRole } from '../../stores/UserStore'\n\ntype TProps = {\n userStore?: UserStore\n notificationStore?: NotificationStore\n}\nexport const UserSettingsSection = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const isGovUser = hasGovRole(props.userStore?.currentUserData!)\n\n const [allowMessageRequests, setAllowMessageRequests] = useState(undefined)\n const [allowInAppNotifications, setAllowInApp] = useState(undefined)\n const [allowByEmailNotifications, setAllowByEmail] = useState(undefined)\n\n const [isLoadingMessagePermission, setIsLoadingMessagePermission] = useState(false)\n const [isLoadingInAppNotification, setIsLoadingInAppNotification] = useState(false)\n const [isLoadingByEmailNotification, setIsLoadingByEmailNotification] = useState(false)\n\n useEffect(() => {\n props.userStore\n ?.retrieveCurrentUserData(\n 'govUserSetting,userEmailNotificationSetting,userAppNotificationSetting',\n )\n .then((data) => {\n let allowMessageRequests =\n ('govUserSetting' in data && data.govUserSetting.allowMessageRequests) || false\n isGovUser && setAllowMessageRequests(allowMessageRequests)\n setAllowInApp(data.userAppNotificationSetting?.newChatMessage || false)\n setAllowByEmail(data.userEmailNotificationSetting?.newChatMessage || false)\n })\n .catch((e) => {\n props.notificationStore?.setNotificationMessage(\n 'Unable to get user settings. Please try again.',\n 'danger',\n 3000,\n )\n })\n\n return () => {}\n }, [])\n\n const messagePermissionOnClick = () => {\n handleClick(setIsLoadingMessagePermission, { allowMessageRequests: !allowMessageRequests })\n }\n\n const inAppNotificationOnClick = () => {\n handleClick(setIsLoadingInAppNotification, {\n allowInAppNotifications: !allowInAppNotifications,\n })\n }\n\n const byEmailOnClick = () => {\n handleClick(setIsLoadingByEmailNotification, {\n allowByEmailNotifications: !allowByEmailNotifications,\n })\n }\n\n const handleClick = async (\n setIsLoadingFunction: Dispatch>,\n params: {\n allowMessageRequests?: boolean\n allowInAppNotifications?: boolean\n allowByEmailNotifications?: boolean\n },\n ) => {\n setIsLoadingFunction(true)\n\n props\n .userStore!.updateUserSettings(params)\n .then((data) => {\n isGovUser && setAllowMessageRequests(data.govUserSetting?.allowMessageRequests)\n setAllowInApp(data.userAppNotificationSetting!.newChatMessage!)\n setAllowByEmail(data.userEmailNotificationSetting!.newChatMessage!)\n })\n .catch((e) => {\n props.notificationStore?.setNotificationMessage(\n 'Unable to update user settings. Please try again.',\n 'danger',\n 3000,\n )\n })\n .finally(() => {\n setIsLoadingFunction(false)\n })\n }\n let MessagePermissionsCheckbox = (props: TProps) => {\n return (\n \n {}} //to satisfy CoreUI minimum.\n disabled={isLoadingMessagePermission}\n />\n \n )\n }\n let InAppNotificationsCheckbox = (props: TProps) => {\n return (\n \n {}} //to satisfy CoreUI minimum.\n disabled={isLoadingInAppNotification}\n />\n \n )\n }\n let ByEmailNotificationsCheckbox = (props: TProps) => {\n return (\n \n {}} //to satisfy CoreUI minimum.\n disabled={isLoadingByEmailNotification}\n />\n \n )\n }\n\n let MessagePermissionsSettings = (props: TProps) => {\n return (\n <>\n
Privacy
\n
\n \n
\n \n )\n }\n\n let NotificationsSettings = (props: TProps) => {\n return (\n <>\n
Notifications
\n
\n \n \n
\n \n )\n }\n\n let GovUserSettings = (props: TProps) => {\n return (\n \n \n \n \n \n )\n }\n\n let UserSettings = (props: TProps) => {\n return (\n \n \n \n \n \n )\n }\n\n return (\n \n {isGovUser && }\n \n \n )\n }),\n)\n","import React from 'react'\nimport { CCard, CCardBody, CCardHeader } from '@coreui/react'\nimport { ApplicationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { UserSettingsSection } from './UserSettingsSection'\n\ntype TProps = {\n userStore?: UserStore\n}\n\nexport const UserSettingsCard = inject(ApplicationStore.names.userStore)(\n observer((props: TProps) => {\n return (\n \n \n Settings\n \n \n \n \n \n )\n }),\n)\n","import { CCard, CCardBody, CCardText, CTooltip } from '@coreui/react'\nimport { inject, observer } from 'mobx-react'\nimport { AccountStore, NotificationStore, ApplicationStore } from '../../../stores'\nimport { GovUserData } from '../../../stores/UserStore'\nimport { visionVisibilityIcon } from '../../../assets/brand/vision_visibility_icon'\nimport ReactHtmlParser from 'react-html-parser'\nimport { Link } from 'react-router-dom'\nimport { UserAvatar } from '../../Molecules/Avatars/UserAvatar/UserAvatar'\n\ntype TProps = {\n accountStore?: AccountStore\n notificationStore?: NotificationStore\n user: GovUserData\n}\n\nexport const GovUserDetailCard = inject(\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.accountStore,\n)(\n observer((props: TProps) => {\n const avatar = () => {\n return (\n
\n \n
\n )\n }\n\n const userInfo = () => {\n const currentUserAccountChatThreadId =\n props.user.chatThreadIdsWithCurrentUserAccount &&\n props.user.chatThreadIdsWithCurrentUserAccount.length > 0 &&\n props.user.chatThreadIdsWithCurrentUserAccount[0]\n return (\n
\n \n
\n {props.user.firstName} {props.user.lastName}\n
\n {props.user.govUserExtendedData.visionUserId && (\n \n
\n {visionVisibilityIcon()}\n
\n
\n )}\n {currentUserAccountChatThreadId && (\n \n \n \n )}\n
\n\n {props.user.title}\n \n {props.user.govUserExtendedData.govUserOrganization.longName}\n \n \n )\n }\n\n const numTechTypesShown: number = 1\n\n const userTechnologyTypes = () => {\n let techTypeNames = props.user.technologyTypes\n ?.slice(0, numTechTypesShown)\n .map((technologyType) => {\n return technologyType.name\n })\n\n return (\n
\n

\n {techTypeNames.join(', ')}\n {techTypesNotShown()}\n

\n
\n )\n }\n\n const techTypesNotShown = (): string => {\n if (!props.user.technologyTypes) return ''\n let techTypesNotShownCount = props.user.technologyTypes.length - numTechTypesShown\n\n if (techTypesNotShownCount > 0) {\n return ` and ${techTypesNotShownCount} other(s)`\n }\n\n return ''\n }\n\n const renderCardContent = () => {\n let content\n if (props.user.searchMetadata?.highlight) {\n content = ReactHtmlParser(props.user.searchMetadata.highlight)\n } else {\n content = ReactHtmlParser(props.user.govUserExtendedData.profileDetail)\n }\n\n return (\n
\n {content}\n
\n )\n }\n\n return (\n \n \n {avatar()}\n {userInfo()}\n {renderCardContent()}\n {userTechnologyTypes()}\n \n \n )\n }),\n)\n","import axios from 'axios'\nimport { AuthStore, NotificationStore, UserData } from './'\nimport {\n CountResponse,\n Data,\n GovUserOrganizationParams,\n PaginatedSearchableParams,\n PaginationParams,\n SearchableParams,\n ServerPageData,\n} from '../lib/types/Params'\nimport { IBusinessClassifications, INaicsCodes } from '../components/form/fragments/listing'\nimport { Location } from 'history'\n\nimport { extractRestfulError, VisionRequestInterceptedError } from '../lib/errors/utils'\nimport { AccountData } from './UserStore'\nimport {\n GenericLabeledItemResponse,\n NamedServerArtifact,\n NamedWithLabelServerArtifact,\n RestfulMessage,\n SubPageData,\n} from '../lib/types'\nimport { setRedirectSessionVariables } from '../lib/helpers/sessionHelpers'\n\nexport type SocialMediaTypeResponse = {\n id: number\n name: string\n}\n\nexport interface GovUserClassificationCategory {\n id: number\n name: string\n}\n\nexport interface GovUserClassification {\n id: number\n name: string\n description: string\n createdAt: string\n updatedAt: string\n govUserClassificationCategoryId: number\n govUserClassificationCategory?: GovUserClassificationCategory\n}\n\nexport type ChatMessageResponse = {\n id: number\n userId: number\n chatThreadId: number\n content: string\n user: UserData\n createdAt: string\n updatedAt: string\n}\n\nexport interface ChatParticipantIdentifiers {\n participantType: string\n participantId: number\n}\n\nexport interface ChatParticipantResponse extends ChatParticipantIdentifiers {\n chatThreadId: number\n participant: UserData | AccountData\n}\n\nexport const isAccountData = (data: UserData | AccountData): data is AccountData => {\n return 'name' in data\n}\n\nexport const isUserParticipant = (participant: ChatParticipantResponse) =>\n participant.participantType === 'User'\nexport const isAccountParticipant = (participant: ChatParticipantResponse) =>\n participant.participantType === 'Account'\n\nexport type ChatThreadResponse = {\n id: number\n participants: Array\n currentUserUnreadCount: number\n userChatMessages: SubPageData | string\n lastMessageSeenAt: string\n createdAt: string\n status: string\n}\n\nexport interface GovUserOrganizationResponse extends NamedWithLabelServerArtifact {\n shortName?: string\n longName: string\n category?: string\n}\n\nexport interface TechnologyTypeResponse extends NamedServerArtifact {\n isDeprecated: boolean\n}\n\nexport class ServerStore {\n protected authStore: AuthStore\n protected notificationStore: NotificationStore\n\n constructor(authStore: AuthStore, notificationStore: NotificationStore) {\n this.authStore = authStore\n this.notificationStore = notificationStore\n }\n\n public server() {\n const instance = axios.create({\n headers: {\n 'Cache-Control': 'no-store, no cache, must-revalidate',\n Authorization: this.authStore.getJWT() || '',\n Accept: 'application/json',\n },\n })\n // Leaving this comment here,\n // this is a handy debug tool to use if some network error is occurring in a test due to lack of mock\n // and we need to track it down\n // instance.interceptors.response.use(undefined, function (error) {\n // const bp = true\n // console.log(error)\n // })\n\n instance.interceptors.response.use((response) => response, this.errorInterceptor)\n return instance\n }\n\n public getNaicsCodes(\n params: PaginatedSearchableParams | {} = {},\n ): Promise> {\n return this.server()\n .get('/api/v1/naics_codes', {\n params,\n })\n .then(({ data }) => data as ServerPageData)\n }\n\n public getBusinessClassifications(\n params: SearchableParams,\n ): Promise> {\n return this.server()\n .get('/api/v1/business_classifications', {\n params,\n })\n .then((response) => response as Data)\n }\n\n public getTechnologyTypes(\n params: PaginatedSearchableParams & { ids?: string },\n ): Promise> {\n return this.server()\n .get('/api/v1/technology_types', {\n params,\n })\n .then(({ data }) => data as ServerPageData)\n }\n\n public getAwardsPhases = async (\n params: PaginationParams,\n ): Promise> => {\n return this.server()\n .get('/api/v1/phases', { params })\n .then(({ data }) => data)\n }\n\n public getChatThreadMessages(\n id: number,\n params: PaginationParams,\n ): Promise> {\n return this.server()\n .get(`/api/v1/chat_threads/${id.toString()}/user_chat_messages`, { params: params })\n .then(({ data }) => data)\n }\n\n public getChatThread(id: number, eager?: string): Promise {\n return this.server()\n .get(`/api/v1/chat_threads/${id}`, { params: { eager } })\n .then(({ data }) => data)\n }\n\n public getChatThreads({\n params,\n eager,\n sortThreadId,\n }: {\n params: PaginationParams\n eager?: string\n sortThreadId?: number\n }): Promise> {\n return this.server()\n .get(`/api/v1/current_user/chat/threads`, {\n params: {\n page: params.page,\n perPage: params.perPage,\n eager: eager,\n sortThreadId: sortThreadId,\n },\n })\n .then(({ data }) => data as ServerPageData)\n }\n\n public pauseChatThread(id: number): Promise {\n return this.server()\n .patch(`/api/v1/chat_threads/${id}/pause`)\n .then(({ data }) => data)\n }\n\n public unpauseChatThread(id: number): Promise {\n return this.server()\n .patch(`/api/v1/chat_threads/${id}/unpause`)\n .then(({ data }) => data)\n }\n\n public findChatThreadByParticipants(\n participants: Array,\n ): Promise {\n return this.server()\n .post(`/api/v1/chat_threads/find`, { participants })\n .then(({ data }) => data)\n }\n\n public createChatThread(\n participants: Array,\n initialMessage: string,\n ): Promise {\n return this.server()\n .post(`/api/v1/chat_threads`, {\n participants,\n initialMessages: [{ content: initialMessage }],\n })\n .then(({ data }) => data)\n }\n\n public getUnreadMessagesCount(): Promise {\n return this.server()\n .get('/api/v1/current_user/chat/unread_messages_count')\n .then(({ data }) => data)\n }\n\n public getSocialMediaTypes(): Promise> {\n return this.server()\n .get>('/api/v1/social_media_types')\n .then(({ data }) => data)\n }\n\n public getGovUserOrganizations(\n params: GovUserOrganizationParams,\n ): Promise> {\n return this.server()\n .get('/api/v1/gov_user_organizations', {\n params,\n })\n .then(({ data }) => data as ServerPageData)\n }\n\n public getGovUserClassifications = async (\n params: PaginatedSearchableParams & { eager?: string; ids?: string },\n ): Promise> => {\n return this.server()\n .get('/api/v1/gov/user_classifications', {\n params: { ...params },\n })\n .then(({ data }) => data as ServerPageData)\n }\n\n public checkUniqueEntity(uniqueEntityId: string): Promise {\n return this.server()\n .get('/api/v1/accounts/check_unique_entity', { params: { uniqueEntityId } })\n .then((res) => {\n if (res.status === 204) {\n return undefined\n }\n return res.data\n })\n }\n\n public errorInterceptor = async (error: any) => {\n const currentLocation = {\n pathname: window.location.pathname,\n search: window.location.search,\n } as Location\n\n if (error.response?.status === 401) {\n const err = extractRestfulError(error)\n if (err) {\n // Our custom error response format\n switch (err.error) {\n case 'ExpiredToken':\n setRedirectSessionVariables(currentLocation)\n this.forceLogoutWithMessage('Your session has expired, please sign in again.')\n throw new VisionRequestInterceptedError(err.error)\n\n case 'InvalidToken':\n case 'MissingToken':\n case 'DeviseGeneral':\n setRedirectSessionVariables(currentLocation)\n this.forceLogoutWithMessage('Please sign in.')\n throw new VisionRequestInterceptedError(err.error)\n\n case 'UnconfirmedEmail':\n if (this.authStore.JWT) {\n this.redirectWithMessage('/confirmation_instructions', 'Please confirm your email.', [\n '/confirm_email',\n ])\n } else if (error.config.headers['X-User-Email']) {\n let buff = Buffer.from(error.config.headers['X-User-Email'])\n let base64data = buff.toString('base64')\n\n this.redirectWithMessage(\n `/confirmation_instructions?key=${base64data}`,\n 'Please confirm your email.',\n ['/confirm_email'],\n )\n } else {\n this.redirectWithMessage('/confirmation_instructions', 'Please confirm your email.', [\n '/confirm_email',\n ])\n }\n throw new VisionRequestInterceptedError(err.error)\n\n case 'MissingTermsPrivacy':\n setRedirectSessionVariables(currentLocation)\n this.redirectWithMessage('/sign_terms', undefined)\n throw new VisionRequestInterceptedError(err.error)\n\n default:\n break\n }\n }\n }\n throw error\n }\n\n private forceLogoutWithMessage = (message: string) => {\n this.authStore.setJWT(null)\n this.notificationStore.setNotificationMessage(message, 'info', 3000, true)\n }\n\n private redirectWithMessage = (\n path: string,\n message: string | undefined,\n unlessPaths?: string[],\n ) => {\n if (\n window.location.pathname !== path &&\n (unlessPaths ? unlessPaths?.every((p) => p !== window.location.pathname) : true)\n ) {\n window.location.replace(path)\n this.notificationStore.setNotificationMessage(message, 'info', 3000, true)\n }\n }\n}\n","export const visionVisibilityIcon = (className = undefined) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","export type TRegion = {\n long: string\n short: string\n}\n\nexport const isTRegion = (value: any): value is TRegion => {\n return !!(value && value.long && value.short)\n}\n\nexport type TCountry = {\n long: string\n short: string\n regions: Array\n}\n\nexport const isTCountry = (value: any): value is TCountry => {\n return !!(value && value.long && value.short && value.regions)\n}\n\nexport const isoUSStateCodes: Array = [\n 'AL',\n 'AK',\n 'AZ',\n 'AR',\n 'CA',\n 'CO',\n 'CT',\n 'DE',\n 'FL',\n 'GA',\n 'HI',\n 'ID',\n 'IL',\n 'IN',\n 'IA',\n 'KS',\n 'KY',\n 'LA',\n 'ME',\n 'MD',\n 'MA',\n 'MI',\n 'MN',\n 'MS',\n 'MO',\n 'MT',\n 'NE',\n 'NV',\n 'NH',\n 'NJ',\n 'NM',\n 'NY',\n 'NC',\n 'ND',\n 'OH',\n 'OK',\n 'OR',\n 'PA',\n 'RI',\n 'SC',\n 'SD',\n 'TN',\n 'TX',\n 'UT',\n 'VT',\n 'VA',\n 'WA',\n 'WV',\n 'WI',\n 'WY',\n]\n\nexport const countryRegionData: Array = [\n {\n long: 'Afghanistan',\n short: 'AF',\n regions: [\n {\n long: 'Badakhshan',\n short: 'BDS',\n },\n {\n long: 'Badghis',\n short: 'BDG',\n },\n {\n long: 'Baghlan',\n short: 'BGL',\n },\n {\n long: 'Balkh',\n short: 'BAL',\n },\n {\n long: 'Bamyan',\n short: 'BAM',\n },\n {\n long: 'Daykundi',\n short: 'DAY',\n },\n {\n long: 'Farah',\n short: 'FRA',\n },\n {\n long: 'Faryab',\n short: 'FYB',\n },\n {\n long: 'Ghazni',\n short: 'GHA',\n },\n {\n long: 'Ghor',\n short: 'GHO',\n },\n {\n long: 'Helmand',\n short: 'HEL',\n },\n {\n long: 'Herat',\n short: 'HER',\n },\n {\n long: 'Jowzjan',\n short: 'JOW',\n },\n {\n long: 'Kabul',\n short: 'KAB',\n },\n {\n long: 'Kandahar',\n short: 'KAN',\n },\n {\n long: 'Kapisa',\n short: 'KAP',\n },\n {\n long: 'Khost',\n short: 'KHO',\n },\n {\n long: 'Kunar',\n short: 'KNR',\n },\n {\n long: 'Kunduz',\n short: 'KDZ',\n },\n {\n long: 'Laghman',\n short: 'LAG',\n },\n {\n long: 'Logar',\n short: 'LOW',\n },\n {\n long: 'Maidan Wardak',\n short: 'WAR',\n },\n {\n long: 'Nangarhar',\n short: 'NAN',\n },\n {\n long: 'Nimruz',\n short: 'NIM',\n },\n {\n long: 'Nuristan',\n short: 'NUR',\n },\n {\n long: 'Paktia',\n short: 'PIA',\n },\n {\n long: 'Paktika',\n short: 'PKA',\n },\n {\n long: 'Panjshir',\n short: 'PAN',\n },\n {\n long: 'Parwan',\n short: 'PAR',\n },\n {\n long: 'Samangan',\n short: 'SAM',\n },\n {\n long: 'Sar-e Pol',\n short: 'SAR',\n },\n {\n long: 'Takhar',\n short: 'TAK',\n },\n {\n long: 'Urozgan',\n short: 'ORU',\n },\n {\n long: 'Zabul',\n short: 'ZAB',\n },\n ],\n },\n {\n long: 'Åland Islands',\n short: 'AX',\n regions: [\n {\n long: 'Brändö',\n short: 'BR',\n },\n {\n long: 'Eckerö',\n short: 'EC',\n },\n {\n long: 'Finström',\n short: 'FN',\n },\n {\n long: 'Föglö',\n short: 'FG',\n },\n {\n long: 'Geta',\n short: 'GT',\n },\n {\n long: 'Hammarland',\n short: 'HM',\n },\n {\n long: 'Jomala',\n short: 'JM',\n },\n {\n long: 'Kumlinge',\n short: 'KM',\n },\n {\n long: 'Kökar',\n short: 'KK',\n },\n {\n long: 'Lemland',\n short: 'LE',\n },\n {\n long: 'Lumparland',\n short: 'LU',\n },\n {\n long: 'Mariehamn',\n short: 'MH',\n },\n {\n long: 'Saltvik',\n short: 'SV',\n },\n {\n long: 'Sottunga',\n short: 'ST',\n },\n {\n long: 'Sund',\n short: 'SD',\n },\n {\n long: 'Vårdö',\n short: 'VR',\n },\n ],\n },\n {\n long: 'Albania',\n short: 'AL',\n regions: [\n {\n long: 'Berat',\n short: '01',\n },\n {\n long: 'Dibër',\n short: '09',\n },\n {\n long: 'Durrës',\n short: '02',\n },\n {\n long: 'Elbasan',\n short: '03',\n },\n {\n long: 'Fier',\n short: '04',\n },\n {\n long: 'Gjirokastër',\n short: '05',\n },\n {\n long: 'Korçë',\n short: '06',\n },\n {\n long: 'Kukës',\n short: '07',\n },\n {\n long: 'Lezhë',\n short: '08',\n },\n {\n long: 'Shkodër',\n short: '10',\n },\n {\n long: 'Tirana',\n short: '11',\n },\n {\n long: 'Vlorë',\n short: '12',\n },\n ],\n },\n {\n long: 'Algeria',\n short: 'DZ',\n regions: [\n {\n long: 'Adrar',\n short: '01',\n },\n {\n long: 'Aïn Defla',\n short: '44',\n },\n {\n long: 'Aïn Témouchent',\n short: '46',\n },\n {\n long: 'Algiers',\n short: '16',\n },\n {\n long: 'Annaba',\n short: '23',\n },\n {\n long: 'Batna',\n short: '05',\n },\n {\n long: 'Béchar',\n short: '08',\n },\n {\n long: 'Béjaïa',\n short: '06',\n },\n {\n long: 'Biskra',\n short: '07',\n },\n {\n long: 'Blida',\n short: '09',\n },\n {\n long: 'Bordj Bou Arréridj',\n short: '34',\n },\n {\n long: 'Bouïra',\n short: '10',\n },\n {\n long: 'Boumerdès',\n short: '35',\n },\n {\n long: 'Chlef',\n short: '02',\n },\n {\n long: 'Constantine',\n short: '25',\n },\n {\n long: 'Djelfa',\n short: '17',\n },\n {\n long: 'El Bayadh',\n short: '32',\n },\n {\n long: 'El Oued',\n short: '39',\n },\n {\n long: 'El Tarf',\n short: '36',\n },\n {\n long: 'Ghardaïa',\n short: '47',\n },\n {\n long: 'Guelma',\n short: '24',\n },\n {\n long: 'Illizi',\n short: '33',\n },\n {\n long: 'Jijel',\n short: '18',\n },\n {\n long: 'Khenchela',\n short: '40',\n },\n {\n long: 'Laghouat',\n short: '03',\n },\n {\n long: 'Mascara',\n short: '29',\n },\n {\n long: 'Médéa',\n short: '26',\n },\n {\n long: 'Mila',\n short: '43',\n },\n {\n long: 'Mostaganem',\n short: '27',\n },\n {\n long: 'Msila',\n short: '28',\n },\n {\n long: 'Naâma',\n short: '45',\n },\n {\n long: 'Oran',\n short: '31',\n },\n {\n long: 'Ouargla',\n short: '30',\n },\n {\n long: 'Oum el Bouaghi',\n short: '04',\n },\n {\n long: 'Relizane',\n short: '48',\n },\n {\n long: 'Saïda',\n short: '20',\n },\n {\n long: 'Sétif',\n short: '19',\n },\n {\n long: 'Sidi Bel Abbès',\n short: '22',\n },\n {\n long: 'Skikda',\n short: '21',\n },\n {\n long: 'Souk Ahras',\n short: '41',\n },\n {\n long: 'Tamanghasset',\n short: '11',\n },\n {\n long: 'Tébessa',\n short: '12',\n },\n {\n long: 'Tiaret',\n short: '14',\n },\n {\n long: 'Tindouf',\n short: '37',\n },\n {\n long: 'Tipaza',\n short: '42',\n },\n {\n long: 'Tissemsilt',\n short: '38',\n },\n {\n long: 'Tizi Ouzou',\n short: '15',\n },\n {\n long: 'Tlemcen',\n short: '13',\n },\n ],\n },\n {\n long: 'American Samoa',\n short: 'AS',\n regions: [\n {\n long: 'Tutuila',\n short: '01',\n },\n {\n long: \"Aunu'u\",\n short: '02',\n },\n {\n long: \"Ta'ū\",\n short: '03',\n },\n {\n long: 'Ofu‑Olosega',\n short: '04',\n },\n {\n long: 'Rose Atoll',\n short: '21',\n },\n {\n long: 'Swains Island',\n short: '22',\n },\n ],\n },\n {\n long: 'Andorra',\n short: 'AD',\n regions: [\n {\n long: 'Andorra la Vella',\n short: '07',\n },\n {\n long: 'Canillo',\n short: '02',\n },\n {\n long: 'Encamp',\n short: '03',\n },\n {\n long: 'Escaldes-Engordany',\n short: '08',\n },\n {\n long: 'La Massana',\n short: '04',\n },\n {\n long: 'Ordino',\n short: '05',\n },\n {\n long: 'Sant Julià de Lòria',\n short: '06',\n },\n ],\n },\n {\n long: 'Angola',\n short: 'AO',\n regions: [\n {\n long: 'Bengo',\n short: 'BGO',\n },\n {\n long: 'Benguela',\n short: 'BGU',\n },\n {\n long: 'Bié',\n short: 'BIE',\n },\n {\n long: 'Cabinda',\n short: 'CAB',\n },\n {\n long: 'Cuando Cubango',\n short: 'CCU',\n },\n {\n long: 'Cuanza Norte',\n short: 'CNO',\n },\n {\n long: 'Cuanza Sul',\n short: 'CUS',\n },\n {\n long: 'Cunene',\n short: 'CNN',\n },\n {\n long: 'Huambo',\n short: 'HUA',\n },\n {\n long: 'Huíla',\n short: 'HUI',\n },\n {\n long: 'Luanda',\n short: 'LUA',\n },\n {\n long: 'Lunda Norte',\n short: 'LNO',\n },\n {\n long: 'Lunda Sul',\n short: 'LSU',\n },\n {\n long: 'Malanje',\n short: 'MAL',\n },\n {\n long: 'Moxico',\n short: 'MOX',\n },\n {\n long: 'Namibe',\n short: 'NAM',\n },\n {\n long: 'Uíge',\n short: 'UIG',\n },\n {\n long: 'Zaire',\n short: 'ZAI',\n },\n ],\n },\n {\n long: 'Anguilla',\n short: 'AI',\n regions: [\n {\n long: 'Anguilla',\n short: '01',\n },\n {\n long: 'Anguillita Island',\n short: '02',\n },\n {\n long: 'Blowing Rock',\n short: '03',\n },\n {\n long: 'Cove Cay',\n short: '04',\n },\n {\n long: 'Crocus Cay',\n short: '05',\n },\n {\n long: \"Deadman's Cay\",\n short: '06',\n },\n {\n long: 'Dog Island',\n short: '07',\n },\n {\n long: 'East Cay',\n short: '08',\n },\n {\n long: 'Little Island',\n short: '09',\n },\n {\n long: 'Little Scrub Island',\n short: '10',\n },\n {\n long: 'Mid Cay',\n short: '11',\n },\n {\n long: 'North Cay',\n short: '12',\n },\n {\n long: 'Prickly Pear Cays',\n short: '13',\n },\n {\n long: 'Rabbit Island',\n short: '14',\n },\n {\n long: 'Sandy Island/Sand Island',\n short: '15',\n },\n {\n long: 'Scilly Cay',\n short: '16',\n },\n {\n long: 'Scrub Island',\n short: '17',\n },\n {\n long: 'Seal Island',\n short: '18',\n },\n {\n long: 'Sombrero/Hat Island',\n short: '19',\n },\n {\n long: 'South Cay',\n short: '20',\n },\n {\n long: 'South Wager Island',\n short: '21',\n },\n {\n long: 'West Cay',\n short: '22',\n },\n ],\n },\n {\n long: 'Antarctica',\n short: 'AQ',\n regions: [\n {\n long: 'Antarctica',\n short: 'AQ',\n },\n ],\n },\n {\n long: 'Antigua and Barbuda',\n short: 'AG',\n regions: [\n {\n long: 'Antigua Island',\n short: '01',\n },\n {\n long: 'Barbuda Island',\n short: '02',\n },\n {\n long: 'Bird Island',\n short: '04',\n },\n {\n long: 'Bishop Island',\n short: '05',\n },\n {\n long: 'Blake Island',\n short: '06',\n },\n {\n long: 'Crump Island',\n short: '09',\n },\n {\n long: 'Dulcina Island',\n short: '10',\n },\n {\n long: 'Exchange Island',\n short: '11',\n },\n {\n long: 'Five Islands',\n short: '12',\n },\n {\n long: 'Great Bird Island',\n short: '13',\n },\n {\n long: 'Green Island',\n short: '14',\n },\n {\n long: 'Guiana Island',\n short: '15',\n },\n {\n long: 'Hawes Island',\n short: '17',\n },\n {\n long: 'Hells Gate Island',\n short: '16',\n },\n {\n long: 'Henry Island',\n short: '18',\n },\n {\n long: 'Johnson Island',\n short: '19',\n },\n {\n long: 'Kid Island',\n short: '20',\n },\n {\n long: 'Lobster Island',\n short: '22',\n },\n {\n long: 'Maiden Island',\n short: '24',\n },\n {\n long: 'Moor Island',\n short: '25',\n },\n {\n long: 'Nanny Island',\n short: '26',\n },\n {\n long: 'Pelican Island',\n short: '27',\n },\n {\n long: 'Prickly Pear Island',\n short: '28',\n },\n {\n long: 'Rabbit Island',\n short: '29',\n },\n {\n long: 'Red Head Island',\n short: '31',\n },\n {\n long: 'Redonda Island',\n short: '03',\n },\n {\n long: 'Sandy Island',\n short: '32',\n },\n {\n long: 'Smith Island',\n short: '33',\n },\n {\n long: 'The Sisters',\n short: '34',\n },\n {\n long: 'Vernon Island',\n short: '35',\n },\n {\n long: 'Wicked Will Island',\n short: '36',\n },\n {\n long: 'York Island',\n short: '37',\n },\n ],\n },\n {\n long: 'Argentina',\n short: 'AR',\n regions: [\n {\n long: 'Buenos Aires',\n short: 'B',\n },\n {\n long: 'Capital Federal',\n short: 'C',\n },\n {\n long: 'Catamarca',\n short: 'K',\n },\n {\n long: 'Chaco',\n short: 'H',\n },\n {\n long: 'Chubut',\n short: 'U',\n },\n {\n long: 'Córdoba',\n short: 'X',\n },\n {\n long: 'Corrientes',\n short: 'W',\n },\n {\n long: 'Entre Ríos',\n short: 'E',\n },\n {\n long: 'Formosa',\n short: 'P',\n },\n {\n long: 'Jujuy',\n short: 'Y',\n },\n {\n long: 'La Pampa',\n short: 'L',\n },\n {\n long: 'La Rioja',\n short: 'F',\n },\n {\n long: 'Mendoza',\n short: 'M',\n },\n {\n long: 'Misiones',\n short: 'N',\n },\n {\n long: 'Neuquén',\n short: 'Q',\n },\n {\n long: 'Río Negro',\n short: 'R',\n },\n {\n long: 'Salta',\n short: 'A',\n },\n {\n long: 'San Juan',\n short: 'J',\n },\n {\n long: 'San Luis',\n short: 'D',\n },\n {\n long: 'Santa Cruz',\n short: 'Z',\n },\n {\n long: 'Santa Fe',\n short: 'S',\n },\n {\n long: 'Santiago del Estero',\n short: 'G',\n },\n {\n long: 'Tierra del Fuego',\n short: 'V',\n },\n {\n long: 'Tucumán',\n short: 'T',\n },\n ],\n },\n {\n long: 'Armenia',\n short: 'AM',\n regions: [\n {\n long: 'Aragatsotn',\n short: 'AG',\n },\n {\n long: 'Ararat',\n short: 'AR',\n },\n {\n long: 'Armavir',\n short: 'AV',\n },\n {\n long: 'Gegharkunik',\n short: 'GR',\n },\n {\n long: 'Kotayk',\n short: 'KT',\n },\n {\n long: 'Lori',\n short: 'LO',\n },\n {\n long: 'Shirak',\n short: 'SH',\n },\n {\n long: 'Syunik',\n short: 'SU',\n },\n {\n long: 'Tavush',\n short: 'TV',\n },\n {\n long: 'Vayots Dzor',\n short: 'VD',\n },\n {\n long: 'Yerevan',\n short: 'ER',\n },\n ],\n },\n {\n long: 'Aruba',\n short: 'AW',\n regions: [\n {\n long: 'Aruba',\n short: 'AW',\n },\n ],\n },\n {\n long: 'Australia',\n short: 'AU',\n regions: [\n {\n long: 'Australian Capital Territory',\n short: 'ACT',\n },\n {\n long: 'New South Wales',\n short: 'NSW',\n },\n {\n long: 'Northern Territory',\n short: 'NT',\n },\n {\n long: 'Queensland',\n short: 'QLD',\n },\n {\n long: 'South Australia',\n short: 'SA',\n },\n {\n long: 'Tasmania',\n short: 'TAS',\n },\n {\n long: 'Victoria',\n short: 'VIC',\n },\n {\n long: 'Western Australia',\n short: 'WA',\n },\n ],\n },\n {\n long: 'Austria',\n short: 'AT',\n regions: [\n {\n long: 'Burgenland',\n short: '1',\n },\n {\n long: 'Kärnten',\n short: '2',\n },\n {\n long: 'Niederösterreich',\n short: '3',\n },\n {\n long: 'Oberösterreich',\n short: '4',\n },\n {\n long: 'Salzburg',\n short: '5',\n },\n {\n long: 'Steiermark',\n short: '6',\n },\n {\n long: 'Tirol',\n short: '7',\n },\n {\n long: 'Vorarlberg',\n short: '8',\n },\n {\n long: 'Wien',\n short: '9',\n },\n ],\n },\n {\n long: 'Azerbaijan',\n short: 'AZ',\n regions: [\n {\n long: 'Abşeron',\n short: 'ABS',\n },\n {\n long: 'Ağcabədi',\n short: 'AGC',\n },\n {\n long: 'Ağdam',\n short: 'AGM',\n },\n {\n long: 'Ağdaş',\n short: 'AGS',\n },\n {\n long: 'Ağstafa',\n short: 'AGA',\n },\n {\n long: 'Ağsu',\n short: 'AGU',\n },\n {\n long: 'Astara',\n short: 'AST',\n },\n {\n long: 'Bakı',\n short: 'BAK',\n },\n {\n long: 'Babək',\n short: 'BAB',\n },\n {\n long: 'Balakən',\n short: 'BAL',\n },\n {\n long: 'Bərdə',\n short: 'BAR',\n },\n {\n long: 'Beyləqan',\n short: 'BEY',\n },\n {\n long: 'Biləsuvar',\n short: 'BIL',\n },\n {\n long: 'Cəbrayıl',\n short: 'CAB',\n },\n {\n long: 'Cəlilabad',\n short: 'CAL',\n },\n {\n long: 'Culfa',\n short: 'CUL',\n },\n {\n long: 'Daşkəsən',\n short: 'DAS',\n },\n {\n long: 'Füzuli',\n short: 'FUZ',\n },\n {\n long: 'Gədəbəy',\n short: 'GAD',\n },\n {\n long: 'Goranboy',\n short: 'GOR',\n },\n {\n long: 'Göyçay',\n short: 'GOY',\n },\n {\n long: 'Göygöl',\n short: 'GYG',\n },\n {\n long: 'Hacıqabul',\n short: 'HAC',\n },\n {\n long: 'İmişli',\n short: 'IMI',\n },\n {\n long: 'İsmayıllı',\n short: 'ISM',\n },\n {\n long: 'Kəlbəcər',\n short: 'KAL',\n },\n {\n long: 'Kǝngǝrli',\n short: 'KAN',\n },\n {\n long: 'Kürdəmir',\n short: 'KUR',\n },\n {\n long: 'Laçın',\n short: 'LAC',\n },\n {\n long: 'Lənkəran',\n short: 'LAN',\n },\n {\n long: 'Lerik',\n short: 'LER',\n },\n {\n long: 'Masallı',\n short: 'MAS',\n },\n {\n long: 'Neftçala',\n short: 'NEF',\n },\n {\n long: 'Oğuz',\n short: 'OGU',\n },\n {\n long: 'Ordubad',\n short: 'ORD',\n },\n {\n long: 'Qəbələ',\n short: 'QAB',\n },\n {\n long: 'Qax',\n short: 'QAX',\n },\n {\n long: 'Qazax',\n short: 'QAZ',\n },\n {\n long: 'Qobustan',\n short: 'QOB',\n },\n {\n long: 'Quba',\n short: 'QBA',\n },\n {\n long: 'Qubadli',\n short: 'QBI',\n },\n {\n long: 'Qusar',\n short: 'QUS',\n },\n {\n long: 'Saatlı',\n short: 'SAT',\n },\n {\n long: 'Sabirabad',\n short: 'SAB',\n },\n {\n long: 'Şabran',\n short: 'SBN',\n },\n {\n long: 'Sədərək',\n short: 'SAD',\n },\n {\n long: 'Şahbuz',\n short: 'SAH',\n },\n {\n long: 'Şəki',\n short: 'SAK',\n },\n {\n long: 'Salyan',\n short: 'SAL',\n },\n {\n long: 'Şamaxı',\n short: 'SMI',\n },\n {\n long: 'Şəmkir',\n short: 'SKR',\n },\n {\n long: 'Samux',\n short: 'SMX',\n },\n {\n long: 'Şərur',\n short: 'SAR',\n },\n {\n long: 'Siyəzən',\n short: 'SIY',\n },\n {\n long: 'Şuşa',\n short: 'SUS',\n },\n {\n long: 'Tərtər',\n short: 'TAR',\n },\n {\n long: 'Tovuz',\n short: 'TOV',\n },\n {\n long: 'Ucar',\n short: 'UCA',\n },\n {\n long: 'Xaçmaz',\n short: 'XAC',\n },\n {\n long: 'Xızı',\n short: 'XIZ',\n },\n {\n long: 'Xocalı',\n short: 'XCI',\n },\n {\n long: 'Xocavənd',\n short: 'XVD',\n },\n {\n long: 'Yardımlı',\n short: 'YAR',\n },\n {\n long: 'Yevlax',\n short: 'YEV',\n },\n {\n long: 'Zəngilan',\n short: 'ZAN',\n },\n {\n long: 'Zaqatala',\n short: 'ZAQ',\n },\n {\n long: 'Zərdab',\n short: 'ZAR',\n },\n ],\n },\n {\n long: 'Bahamas',\n short: 'BS',\n regions: [\n {\n long: 'Acklins Island',\n short: '01',\n },\n {\n long: 'Berry Islands',\n short: '22',\n },\n {\n long: 'Bimini',\n short: '02',\n },\n {\n long: 'Black Point',\n short: '23',\n },\n {\n long: 'Cat Island',\n short: '03',\n },\n {\n long: 'Central Abaco',\n short: '24',\n },\n {\n long: 'Crooked Island and Long Cay',\n short: '28',\n },\n {\n long: 'East Grand Bahama',\n short: '29',\n },\n {\n long: 'Exuma',\n short: '04',\n },\n {\n long: 'Freeport',\n short: '05',\n },\n {\n long: 'Fresh Creek',\n short: '06',\n },\n {\n long: \"Governor's Harbour\",\n short: '07',\n },\n {\n long: 'Green Turtle Cay',\n short: '08',\n },\n {\n long: 'Harbour Island',\n short: '09',\n },\n {\n long: 'High Rock',\n short: '10',\n },\n {\n long: 'Inagua',\n short: '11',\n },\n {\n long: 'Kemps Bay',\n short: '12',\n },\n {\n long: 'Long Island',\n short: '13',\n },\n {\n long: 'Marsh Harbour',\n short: '14',\n },\n {\n long: 'Mayaguana',\n short: '15',\n },\n {\n long: 'Moore’s Island',\n short: '40',\n },\n {\n long: 'New Providence',\n short: '16',\n },\n {\n long: 'Nichollstown and Berry Islands',\n short: '17',\n },\n {\n long: 'North Abaco',\n short: '42',\n },\n {\n long: 'North Andros',\n short: '41',\n },\n {\n long: 'North Eleuthera',\n short: '33',\n },\n {\n long: 'Ragged Island',\n short: '18',\n },\n {\n long: 'Rock Sound',\n short: '19',\n },\n {\n long: 'San Salvador and Rum Cay',\n short: '20',\n },\n {\n long: 'Sandy Point',\n short: '21',\n },\n {\n long: 'South Abaco',\n short: '35',\n },\n {\n long: 'South Andros',\n short: '36',\n },\n {\n long: 'South Eleuthera',\n short: '37',\n },\n {\n long: 'West Grand Bahama',\n short: '39',\n },\n ],\n },\n {\n long: 'Bahrain',\n short: 'BH',\n regions: [\n {\n long: 'Al Janūbīyah',\n short: '14',\n },\n {\n long: 'Al Manāmah',\n short: '13',\n },\n {\n long: 'Al Muḩarraq',\n short: '15',\n },\n {\n long: 'Al Wusţá',\n short: '16',\n },\n {\n long: 'Ash Shamālīyah',\n short: '17',\n },\n ],\n },\n {\n long: 'Bangladesh',\n short: 'BD',\n regions: [\n {\n long: 'Barisal',\n short: 'A',\n },\n {\n long: 'Chittagong',\n short: 'B',\n },\n {\n long: 'Dhaka',\n short: 'C',\n },\n {\n long: 'Khulna',\n short: 'D',\n },\n {\n long: 'Mymensingh',\n short: 'M',\n },\n {\n long: 'Rajshahi',\n short: 'E',\n },\n {\n long: 'Rangpur',\n short: 'F',\n },\n {\n long: 'Sylhet',\n short: 'G',\n },\n ],\n },\n {\n long: 'Barbados',\n short: 'BB',\n regions: [\n {\n long: 'Christ Church',\n short: '01',\n },\n {\n long: 'Saint Andrew',\n short: '02',\n },\n {\n long: 'Saint George',\n short: '03',\n },\n {\n long: 'Saint James',\n short: '04',\n },\n {\n long: 'Saint John',\n short: '05',\n },\n {\n long: 'Saint Joseph',\n short: '06',\n },\n {\n long: 'Saint Lucy',\n short: '07',\n },\n {\n long: 'Saint Michael',\n short: '08',\n },\n {\n long: 'Saint Peter',\n short: '09',\n },\n {\n long: 'Saint Philip',\n short: '10',\n },\n {\n long: 'Saint Thomas',\n short: '11',\n },\n ],\n },\n {\n long: 'Belarus',\n short: 'BY',\n regions: [\n {\n long: 'Brest voblast',\n short: 'BR',\n },\n {\n long: 'Gorod Minsk',\n short: 'HM',\n },\n {\n long: 'Homiel voblast',\n short: 'HO',\n },\n {\n long: 'Hrodna voblast',\n short: 'HR',\n },\n {\n long: 'Mahilyow voblast',\n short: 'MA',\n },\n {\n long: 'Minsk voblast',\n short: 'MI',\n },\n {\n long: 'Vitsebsk voblast',\n short: 'VI',\n },\n ],\n },\n {\n long: 'Belgium',\n short: 'BE',\n regions: [\n {\n long: 'Brussels',\n short: 'BRU',\n },\n {\n long: 'Flanders',\n short: 'VLG',\n },\n {\n long: 'Wallonia',\n short: 'WAL',\n },\n ],\n },\n {\n long: 'Belize',\n short: 'BZ',\n regions: [\n {\n long: 'Belize District',\n short: 'BZ',\n },\n {\n long: 'Cayo District',\n short: 'CY',\n },\n {\n long: 'Corozal District',\n short: 'CZL',\n },\n {\n long: 'Orange Walk District',\n short: 'OW',\n },\n {\n long: 'Stann Creek District',\n short: 'SC',\n },\n {\n long: 'Toledo District',\n short: 'TOL',\n },\n ],\n },\n {\n long: 'Benin',\n short: 'BJ',\n regions: [\n {\n long: 'Alibori',\n short: 'AL',\n },\n {\n long: 'Atakora',\n short: 'AK',\n },\n {\n long: 'Atlantique',\n short: 'AQ',\n },\n {\n long: 'Borgou',\n short: 'BO',\n },\n {\n long: 'Collines Department',\n short: 'CO',\n },\n {\n long: 'Donga',\n short: 'DO',\n },\n {\n long: 'Kouffo',\n short: 'KO',\n },\n {\n long: 'Littoral Department',\n short: 'LI',\n },\n {\n long: 'Mono Department',\n short: 'MO',\n },\n {\n long: 'Ouémé',\n short: 'OU',\n },\n {\n long: 'Plateau',\n short: 'PL',\n },\n {\n long: 'Zou',\n short: 'ZO',\n },\n ],\n },\n {\n long: 'Bermuda',\n short: 'BM',\n regions: [\n {\n long: 'City of Hamilton',\n short: '03',\n },\n {\n long: 'Devonshire Parish',\n short: '01',\n },\n {\n long: 'Hamilton Parish',\n short: '02',\n },\n {\n long: 'Paget Parish',\n short: '04',\n },\n {\n long: 'Pembroke Parish',\n short: '05',\n },\n {\n long: 'Sandys Parish',\n short: '08',\n },\n {\n long: \"Smith's Parish\",\n short: '09',\n },\n {\n long: 'Southampton Parish',\n short: '10',\n },\n {\n long: \"St. George's Parish\",\n short: '07',\n },\n {\n long: 'Town of St. George',\n short: '06',\n },\n {\n long: 'Warwick Parish',\n short: '11',\n },\n ],\n },\n {\n long: 'Bhutan',\n short: 'BT',\n regions: [\n {\n long: 'Bumthang',\n short: '33',\n },\n {\n long: 'Chhukha',\n short: '12',\n },\n {\n long: 'Dagana',\n short: '22',\n },\n {\n long: 'Gasa',\n short: 'GA',\n },\n {\n long: 'Haa',\n short: '13',\n },\n {\n long: 'Lhuntse',\n short: '44',\n },\n {\n long: 'Mongar',\n short: '42',\n },\n {\n long: 'Paro',\n short: '11',\n },\n {\n long: 'Pemagatshel',\n short: '43',\n },\n {\n long: 'Punakha',\n short: '23',\n },\n {\n long: 'Samdrup Jongkhar',\n short: '45',\n },\n {\n long: 'Samtse',\n short: '14',\n },\n {\n long: 'Sarpang',\n short: '31',\n },\n {\n long: 'Thimphu',\n short: '15',\n },\n {\n long: 'Trashigang',\n short: '41',\n },\n {\n long: 'Trashiyangtse',\n short: 'TY',\n },\n {\n long: 'Trongsa',\n short: '32',\n },\n {\n long: 'Tsirang',\n short: '21',\n },\n {\n long: 'Wangdue Phodrang',\n short: '24',\n },\n {\n long: 'Zhemgang',\n short: '34',\n },\n ],\n },\n {\n long: 'Bolivia',\n short: 'BO',\n regions: [\n {\n long: 'Beni',\n short: 'B',\n },\n {\n long: 'Chuquisaca',\n short: 'H',\n },\n {\n long: 'Cochabamba',\n short: 'C',\n },\n {\n long: 'La Paz',\n short: 'L',\n },\n {\n long: 'Oruro',\n short: 'O',\n },\n {\n long: 'Pando',\n short: 'N',\n },\n {\n long: 'Potosí',\n short: 'P',\n },\n {\n long: 'Santa Cruz',\n short: 'S',\n },\n {\n long: 'Tarija',\n short: 'T',\n },\n ],\n },\n {\n long: 'Bonaire, Sint Eustatius and Saba',\n short: 'BQ',\n regions: [\n {\n long: 'Bonaire',\n short: 'BO',\n },\n {\n long: 'Saba Isand',\n short: 'SA',\n },\n {\n long: 'Sint Eustatius',\n short: 'SE',\n },\n ],\n },\n {\n long: 'Bosnia and Herzegovina',\n short: 'BA',\n regions: [\n {\n long: 'Brčko Distrikt',\n short: 'BRC',\n },\n {\n long: 'Federacija Bosne i Hercegovine',\n short: 'BIH',\n },\n {\n long: 'Republika Srpska',\n short: 'SRP',\n },\n ],\n },\n {\n long: 'Botswana',\n short: 'BW',\n regions: [\n {\n long: 'Central',\n short: 'CE',\n },\n {\n long: 'Ghanzi',\n short: 'GH',\n },\n {\n long: 'Kgalagadi',\n short: 'KG',\n },\n {\n long: 'Kgatleng',\n short: 'KL',\n },\n {\n long: 'Kweneng',\n short: 'KW',\n },\n {\n long: 'North West',\n short: 'NW',\n },\n {\n long: 'North-East',\n short: 'NE',\n },\n {\n long: 'South East',\n short: 'SE',\n },\n {\n long: 'Southern',\n short: 'SO',\n },\n ],\n },\n {\n long: 'Bouvet Island',\n short: 'BV',\n regions: [\n {\n long: 'Bouvet Island',\n short: 'BV',\n },\n ],\n },\n {\n long: 'Brazil',\n short: 'BR',\n regions: [\n {\n long: 'Acre',\n short: 'AC',\n },\n {\n long: 'Alagoas',\n short: 'AL',\n },\n {\n long: 'Amapá',\n short: 'AP',\n },\n {\n long: 'Amazonas',\n short: 'AM',\n },\n {\n long: 'Bahia',\n short: 'BA',\n },\n {\n long: 'Ceará',\n short: 'CE',\n },\n {\n long: 'Distrito Federal',\n short: 'DF',\n },\n {\n long: 'Espírito Santo',\n short: 'ES',\n },\n {\n long: 'Goiás',\n short: 'GO',\n },\n {\n long: 'Maranhão',\n short: 'MA',\n },\n {\n long: 'Mato Grosso',\n short: 'MT',\n },\n {\n long: 'Mato Grosso do Sul',\n short: 'MS',\n },\n {\n long: 'Minas Gerais',\n short: 'MG',\n },\n {\n long: 'Pará',\n short: 'PA',\n },\n {\n long: 'Paraíba',\n short: 'PB',\n },\n {\n long: 'Paraná',\n short: 'PR',\n },\n {\n long: 'Pernambuco',\n short: 'PE',\n },\n {\n long: 'Piauí',\n short: 'PI',\n },\n {\n long: 'Rio de Janeiro',\n short: 'RJ',\n },\n {\n long: 'Rio Grande do Norte',\n short: 'RN',\n },\n {\n long: 'Rio Grande do Sul',\n short: 'RS',\n },\n {\n long: 'Rondônia',\n short: 'RO',\n },\n {\n long: 'Roraima',\n short: 'RR',\n },\n {\n long: 'Santa Catarina',\n short: 'SC',\n },\n {\n long: 'São Paulo',\n short: 'SP',\n },\n {\n long: 'Sergipe',\n short: 'SE',\n },\n {\n long: 'Tocantins',\n short: 'TO',\n },\n ],\n },\n {\n long: 'British Indian Ocean Territory',\n short: 'IO',\n regions: [\n {\n long: 'British Indian Ocean Territory',\n short: 'IO',\n },\n ],\n },\n {\n long: 'Brunei Darussalam',\n short: 'BN',\n regions: [\n {\n long: 'Belait',\n short: 'BE',\n },\n {\n long: 'Brunei Muara',\n short: 'BM',\n },\n {\n long: 'Temburong',\n short: 'TE',\n },\n {\n long: 'Tutong',\n short: 'TU',\n },\n ],\n },\n {\n long: 'Bulgaria',\n short: 'BG',\n regions: [\n {\n long: 'Blagoevgrad',\n short: '01',\n },\n {\n long: 'Burgas',\n short: '02',\n },\n {\n long: 'Dobrich',\n short: '08',\n },\n {\n long: 'Gabrovo',\n short: '07',\n },\n {\n long: 'Jambol',\n short: '28',\n },\n {\n long: 'Khaskovo',\n short: '26',\n },\n {\n long: 'Kjustendil',\n short: '10',\n },\n {\n long: 'Kurdzhali',\n short: '09',\n },\n {\n long: 'Lovech',\n short: '11',\n },\n {\n long: 'Montana',\n short: '12',\n },\n {\n long: 'Pazardzhik',\n short: '13',\n },\n {\n long: 'Pernik',\n short: '14',\n },\n {\n long: 'Pleven',\n short: '15',\n },\n {\n long: 'Plovdiv',\n short: '16',\n },\n {\n long: 'Razgrad',\n short: '17',\n },\n {\n long: 'Ruse',\n short: '18',\n },\n {\n long: 'Shumen',\n short: '27',\n },\n {\n long: 'Silistra',\n short: '19',\n },\n {\n long: 'Sliven',\n short: '20',\n },\n {\n long: 'Smoljan',\n short: '21',\n },\n {\n long: 'Sofija',\n short: '23',\n },\n {\n long: 'Sofija-Grad',\n short: '22',\n },\n {\n long: 'Stara Zagora',\n short: '24',\n },\n {\n long: 'Turgovishhe',\n short: '25',\n },\n {\n long: 'Varna',\n short: '03',\n },\n {\n long: 'Veliko Turnovo',\n short: '04',\n },\n {\n long: 'Vidin',\n short: '05',\n },\n {\n long: 'Vraca',\n short: '06',\n },\n ],\n },\n {\n long: 'Burkina Faso',\n short: 'BF',\n regions: [\n {\n long: 'Balé',\n short: 'BAL',\n },\n {\n long: 'Bam/Lake Bam',\n short: 'BAM',\n },\n {\n long: 'Banwa Province',\n short: 'BAN',\n },\n {\n long: 'Bazèga',\n short: 'BAZ',\n },\n {\n long: 'Bougouriba',\n short: 'BGR',\n },\n {\n long: 'Boulgou Province',\n short: 'BLG',\n },\n {\n long: 'Boulkiemdé',\n short: 'BLK',\n },\n {\n long: 'Comoé/Komoe',\n short: 'COM',\n },\n {\n long: 'Ganzourgou Province',\n short: 'GAN',\n },\n {\n long: 'Gnagna',\n short: 'GNA',\n },\n {\n long: 'Gourma Province',\n short: 'GOU',\n },\n {\n long: 'Houet',\n short: 'HOU',\n },\n {\n long: 'Ioba',\n short: 'IOB',\n },\n {\n long: 'Kadiogo',\n short: 'KAD',\n },\n {\n long: 'Kénédougou',\n short: 'KEN',\n },\n {\n long: 'Komondjari',\n short: 'KMD',\n },\n {\n long: 'Kompienga',\n short: 'KMP',\n },\n {\n long: 'Kossi Province',\n short: 'KOS',\n },\n {\n long: 'Koulpélogo',\n short: 'KOP',\n },\n {\n long: 'Kouritenga',\n short: 'KOT',\n },\n {\n long: 'Kourwéogo',\n short: 'KOW',\n },\n {\n long: 'Léraba',\n short: 'LER',\n },\n {\n long: 'Loroum',\n short: 'LOR',\n },\n {\n long: 'Mouhoun',\n short: 'MOU',\n },\n {\n long: 'Namentenga',\n short: 'NAM',\n },\n {\n long: 'Naouri/Nahouri',\n short: 'NAO',\n },\n {\n long: 'Nayala',\n short: 'NAY',\n },\n {\n long: 'Noumbiel',\n short: 'NOU',\n },\n {\n long: 'Oubritenga',\n short: 'OUB',\n },\n {\n long: 'Oudalan',\n short: 'OUD',\n },\n {\n long: 'Passoré',\n short: 'PAS',\n },\n {\n long: 'Poni',\n short: 'PON',\n },\n {\n long: 'Sanguié',\n short: 'SNG',\n },\n {\n long: 'Sanmatenga',\n short: 'SMT',\n },\n {\n long: 'Séno',\n short: 'SEN',\n },\n {\n long: 'Sissili',\n short: 'SIS',\n },\n {\n long: 'Soum',\n short: 'SOM',\n },\n {\n long: 'Sourou',\n short: 'SOR',\n },\n {\n long: 'Tapoa',\n short: 'TAP',\n },\n {\n long: 'Tui/Tuy',\n short: 'TUI',\n },\n {\n long: 'Yagha',\n short: 'YAG',\n },\n {\n long: 'Yatenga',\n short: 'YAT',\n },\n {\n long: 'Ziro',\n short: 'ZIR',\n },\n {\n long: 'Zondoma',\n short: 'ZON',\n },\n {\n long: 'Zoundwéogo',\n short: 'ZOU',\n },\n ],\n },\n {\n long: 'Burundi',\n short: 'BI',\n regions: [\n {\n long: 'Bubanza',\n short: 'BB',\n },\n {\n long: 'Bujumbura Mairie',\n short: 'BM',\n },\n {\n long: 'Bujumbura Rural',\n short: 'BL',\n },\n {\n long: 'Bururi',\n short: 'BR',\n },\n {\n long: 'Cankuzo',\n short: 'CA',\n },\n {\n long: 'Cibitoke',\n short: 'CI',\n },\n {\n long: 'Gitega',\n short: 'GI',\n },\n {\n long: 'Karuzi',\n short: 'KR',\n },\n {\n long: 'Kayanza',\n short: 'KY',\n },\n {\n long: 'Kirundo',\n short: 'KI',\n },\n {\n long: 'Makamba',\n short: 'MA',\n },\n {\n long: 'Muramvya',\n short: 'MU',\n },\n {\n long: 'Muyinga',\n short: 'MY',\n },\n {\n long: 'Mwaro',\n short: 'MW',\n },\n {\n long: 'Ngozi',\n short: 'NG',\n },\n {\n long: 'Rutana',\n short: 'RT',\n },\n {\n long: 'Ruyigi',\n short: 'RY',\n },\n ],\n },\n {\n long: 'Cambodia',\n short: 'KH',\n regions: [\n {\n long: 'Baat Dambang',\n short: '2',\n },\n {\n long: 'Banteay Mean Chey',\n short: '1',\n },\n {\n long: 'Kampong Chaam',\n short: '3',\n },\n {\n long: 'Kampong Chhnang',\n short: '4',\n },\n {\n long: 'Kampong Spueu',\n short: '5',\n },\n {\n long: 'Kampong Thum',\n short: '6',\n },\n {\n long: 'Kampot',\n short: '7',\n },\n {\n long: 'Kandaal',\n short: '8',\n },\n {\n long: 'Kaoh Kong',\n short: '9',\n },\n {\n long: 'Kracheh',\n short: '10',\n },\n {\n long: 'Krong Kaeb',\n short: '23',\n },\n {\n long: 'Krong Pailin',\n short: '24',\n },\n {\n long: 'Krong Preah Sihanouk',\n short: '18',\n },\n {\n long: 'Mondol Kiri',\n short: '11',\n },\n {\n long: 'Otdar Mean Chey',\n short: '22',\n },\n {\n long: 'Phnom Penh',\n short: '12',\n },\n {\n long: 'Pousaat',\n short: '15',\n },\n {\n long: 'Preah Vihear',\n short: '13',\n },\n {\n long: 'Prey Veaeng',\n short: '14',\n },\n {\n long: 'Rotanah Kiri',\n short: '16',\n },\n {\n long: 'Siem Reab',\n short: '17',\n },\n {\n long: 'Stueng Treng',\n short: '19',\n },\n {\n long: 'Svaay Rieng',\n short: '20',\n },\n {\n long: 'Taakaev',\n short: '21',\n },\n {\n long: 'Tbong Khmum',\n short: '25',\n },\n ],\n },\n {\n long: 'Cameroon',\n short: 'CM',\n regions: [\n {\n long: 'Adamaoua',\n short: 'AD',\n },\n {\n long: 'Centre',\n short: 'CE',\n },\n {\n long: 'Est',\n short: 'ES',\n },\n {\n long: 'Extrême-Nord',\n short: 'EN',\n },\n {\n long: 'Littoral',\n short: 'LT',\n },\n {\n long: 'Nord',\n short: 'NO',\n },\n {\n long: 'Nord-Ouest',\n short: 'NW',\n },\n {\n long: 'Ouest',\n short: 'OU',\n },\n {\n long: 'Sud',\n short: 'SU',\n },\n {\n long: 'Sud-Ouest',\n short: 'SW',\n },\n ],\n },\n {\n long: 'Canada',\n short: 'CA',\n regions: [\n {\n long: 'Alberta',\n short: 'AB',\n },\n {\n long: 'British Columbia',\n short: 'BC',\n },\n {\n long: 'Manitoba',\n short: 'MB',\n },\n {\n long: 'New Brunswick',\n short: 'NB',\n },\n {\n long: 'Newfoundland and Labrador',\n short: 'NL',\n },\n {\n long: 'Northwest Territories',\n short: 'NT',\n },\n {\n long: 'Nova Scotia',\n short: 'NS',\n },\n {\n long: 'Nunavut',\n short: 'NU',\n },\n {\n long: 'Ontario',\n short: 'ON',\n },\n {\n long: 'Prince Edward Island',\n short: 'PE',\n },\n {\n long: 'Quebec',\n short: 'QC',\n },\n {\n long: 'Saskatchewan',\n short: 'SK',\n },\n {\n long: 'Yukon',\n short: 'YT',\n },\n ],\n },\n {\n long: 'Cape Verde',\n short: 'CV',\n regions: [\n {\n long: 'Boa Vista',\n short: 'BV',\n },\n {\n long: 'Brava',\n short: 'BR',\n },\n {\n long: 'Calheta de São Miguel',\n short: 'CS',\n },\n {\n long: 'Maio',\n short: 'MA',\n },\n {\n long: 'Mosteiros',\n short: 'MO',\n },\n {\n long: 'Paúl',\n short: 'PA',\n },\n {\n long: 'Porto Novo',\n short: 'PN',\n },\n {\n long: 'Praia',\n short: 'PR',\n },\n {\n long: 'Ribeira Brava',\n short: 'RB',\n },\n {\n long: 'Ribeira Grande',\n short: 'RG',\n },\n {\n long: 'Sal',\n short: 'SL',\n },\n {\n long: 'Santa Catarina',\n short: 'CA',\n },\n {\n long: 'Santa Cruz',\n short: 'CR',\n },\n {\n long: 'São Domingos',\n short: 'SD',\n },\n {\n long: 'São Filipe',\n short: 'SF',\n },\n {\n long: 'São Nicolau',\n short: 'SN',\n },\n {\n long: 'São Vicente',\n short: 'SV',\n },\n {\n long: 'Tarrafal',\n short: 'TA',\n },\n {\n long: 'Tarrafal de São Nicolau',\n short: 'TS',\n },\n ],\n },\n {\n long: 'Cayman Islands',\n short: 'KY',\n regions: [\n {\n long: 'Creek',\n short: 'undefined',\n },\n {\n long: 'Eastern',\n short: 'undefined',\n },\n {\n long: 'Midland',\n short: 'undefined',\n },\n {\n long: 'South Town',\n short: 'undefined',\n },\n {\n long: 'Spot Bay',\n short: 'undefined',\n },\n {\n long: 'Stake Bay',\n short: 'undefined',\n },\n {\n long: 'West End',\n short: 'undefined',\n },\n {\n long: 'Western',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Central African Republic',\n short: 'CF',\n regions: [\n {\n long: 'Bamingui-Bangoran',\n short: 'BB',\n },\n {\n long: 'Bangui',\n short: 'BGF',\n },\n {\n long: 'Basse-Kotto',\n short: 'BK',\n },\n {\n long: 'Haute-Kotto',\n short: 'HK',\n },\n {\n long: 'Haut-Mbomou',\n short: 'HM',\n },\n {\n long: 'Kémo',\n short: 'KG',\n },\n {\n long: 'Lobaye',\n short: 'LB',\n },\n {\n long: 'Mambéré-Kadéï',\n short: 'HS',\n },\n {\n long: 'Mbomou',\n short: 'MB',\n },\n {\n long: 'Nana-Grebizi',\n short: '10',\n },\n {\n long: 'Nana-Mambéré',\n short: 'NM',\n },\n {\n long: \"Ombella-M'Poko\",\n short: 'MP',\n },\n {\n long: 'Ouaka',\n short: 'UK',\n },\n {\n long: 'Ouham',\n short: 'AC',\n },\n {\n long: 'Ouham Péndé',\n short: 'OP',\n },\n {\n long: 'Sangha-Mbaéré',\n short: 'SE',\n },\n {\n long: 'Vakaga',\n short: 'VK',\n },\n ],\n },\n {\n long: 'Chad',\n short: 'TD',\n regions: [\n {\n long: 'Bahr el Ghazal',\n short: 'BG',\n },\n {\n long: 'Batha',\n short: 'BA',\n },\n {\n long: 'Borkou',\n short: 'BO',\n },\n {\n long: 'Chari-Baguirmi',\n short: 'CB',\n },\n {\n long: 'Ennedi-Est',\n short: 'EE',\n },\n {\n long: 'Ennedi-Ouest',\n short: 'EO',\n },\n {\n long: 'Guéra',\n short: 'GR',\n },\n {\n long: 'Hadjer Lamis',\n short: 'HL',\n },\n {\n long: 'Kanem',\n short: 'KA',\n },\n {\n long: 'Lac',\n short: 'LC',\n },\n {\n long: 'Logone Occidental',\n short: 'LO',\n },\n {\n long: 'Logone Oriental',\n short: 'LR',\n },\n {\n long: 'Mondoul',\n short: 'MA',\n },\n {\n long: 'Mayo-Kébbi-Est',\n short: 'ME',\n },\n {\n long: 'Moyen-Chari',\n short: 'MC',\n },\n {\n long: 'Ouaddai',\n short: 'OD',\n },\n {\n long: 'Salamat',\n short: 'SA',\n },\n {\n long: 'Sila',\n short: 'SI',\n },\n {\n long: 'Tandjilé',\n short: 'TA',\n },\n {\n long: 'Tibesti',\n short: 'TI',\n },\n {\n long: 'Ville de Ndjamena',\n short: 'ND',\n },\n {\n long: 'Wadi Fira',\n short: 'WF',\n },\n ],\n },\n {\n long: 'Chile',\n short: 'CL',\n regions: [\n {\n long: 'Aisén del General Carlos Ibáñez del Campo',\n short: 'AI',\n },\n {\n long: 'Antofagasta',\n short: 'AN',\n },\n {\n long: 'Araucanía',\n short: 'AR',\n },\n {\n long: 'Arica y Parinacota',\n short: 'AP',\n },\n {\n long: 'Atacama',\n short: 'AT',\n },\n {\n long: 'Bío-Bío',\n short: 'BI',\n },\n {\n long: 'Coquimbo',\n short: 'CO',\n },\n {\n long: \"Libertador General Bernardo O'Higgins\",\n short: 'LI',\n },\n {\n long: 'Los Lagos',\n short: 'LL',\n },\n {\n long: 'Los Ríos',\n short: 'LR',\n },\n {\n long: 'Magallanes y Antartica Chilena',\n short: 'MA',\n },\n {\n long: 'Marga-Marga',\n short: '',\n },\n {\n long: 'Maule',\n short: 'ML',\n },\n {\n long: 'Ñuble',\n short: 'NB',\n },\n {\n long: 'Región Metropolitana de Santiago',\n short: 'RM',\n },\n {\n long: 'Tarapacá',\n short: 'TA',\n },\n {\n long: 'Valparaíso',\n short: 'VS',\n },\n ],\n },\n {\n long: 'China',\n short: 'CN',\n regions: [\n {\n long: 'Anhui',\n short: 'AH',\n },\n {\n long: 'Beijing',\n short: 'BJ',\n },\n {\n long: 'Chongqing',\n short: 'CQ',\n },\n {\n long: 'Fujian',\n short: 'FJ',\n },\n {\n long: 'Gansu',\n short: 'GS',\n },\n {\n long: 'Guangdong',\n short: 'GD',\n },\n {\n long: 'Guangxi',\n short: 'GX',\n },\n {\n long: 'Guizhou',\n short: 'GZ',\n },\n {\n long: 'Hainan',\n short: 'HI',\n },\n {\n long: 'Hebei',\n short: 'HE',\n },\n {\n long: 'Heilongjiang',\n short: 'HL',\n },\n {\n long: 'Henan',\n short: 'HA',\n },\n {\n long: 'Hong Kong',\n short: 'HK',\n },\n {\n long: 'Hubei',\n short: 'HB',\n },\n {\n long: 'Hunan',\n short: 'HN',\n },\n {\n long: 'Inner Mongolia',\n short: 'NM',\n },\n {\n long: 'Jiangsu',\n short: 'JS',\n },\n {\n long: 'Jiangxi',\n short: 'JX',\n },\n {\n long: 'Jilin',\n short: 'JL',\n },\n {\n long: 'Liaoning',\n short: 'LN',\n },\n {\n long: 'Macau',\n short: 'MO',\n },\n {\n long: 'Ningxia',\n short: 'NX',\n },\n {\n long: 'Qinghai',\n short: 'QH',\n },\n {\n long: 'Shaanxi',\n short: 'SN',\n },\n {\n long: 'Shandong',\n short: 'SD',\n },\n {\n long: 'Shanghai',\n short: 'SH',\n },\n {\n long: 'Shanxi',\n short: 'SX',\n },\n {\n long: 'Sichuan',\n short: 'SC',\n },\n {\n long: 'Tianjin',\n short: 'TJ',\n },\n {\n long: 'Tibet',\n short: 'XZ',\n },\n {\n long: 'Xinjiang',\n short: 'XJ',\n },\n {\n long: 'Yunnan',\n short: 'YN',\n },\n {\n long: 'Zhejiang',\n short: 'ZJ',\n },\n ],\n },\n {\n long: 'Christmas Island',\n short: 'CX',\n regions: [\n {\n long: 'Christmas Island',\n short: 'CX',\n },\n ],\n },\n {\n long: 'Cocos (Keeling) Islands',\n short: 'CC',\n regions: [\n {\n long: 'Direction Island',\n short: 'DI',\n },\n {\n long: 'Home Island',\n short: 'HM',\n },\n {\n long: 'Horsburgh Island',\n short: 'HR',\n },\n {\n long: 'North Keeling Island',\n short: 'NK',\n },\n {\n long: 'South Island',\n short: 'SI',\n },\n {\n long: 'West Island',\n short: 'WI',\n },\n ],\n },\n {\n long: 'Colombia',\n short: 'CO',\n regions: [\n {\n long: 'Amazonas',\n short: 'AMA',\n },\n {\n long: 'Antioquia',\n short: 'ANT',\n },\n {\n long: 'Arauca',\n short: 'ARA',\n },\n {\n long: 'Archipiélago de San Andrés',\n short: 'SAP',\n },\n {\n long: 'Atlántico',\n short: 'ATL',\n },\n {\n long: 'Bogotá D.C.',\n short: 'DC',\n },\n {\n long: 'Bolívar',\n short: 'BOL',\n },\n {\n long: 'Boyacá',\n short: 'BOY',\n },\n {\n long: 'Caldas',\n short: 'CAL',\n },\n {\n long: 'Caquetá',\n short: 'CAQ',\n },\n {\n long: 'Casanare',\n short: 'CAS',\n },\n {\n long: 'Cauca',\n short: 'CAU',\n },\n {\n long: 'Cesar',\n short: 'CES',\n },\n {\n long: 'Chocó',\n short: 'CHO',\n },\n {\n long: 'Córdoba',\n short: 'COR',\n },\n {\n long: 'Cundinamarca',\n short: 'CUN',\n },\n {\n long: 'Guainía',\n short: 'GUA',\n },\n {\n long: 'Guaviare',\n short: 'GUV',\n },\n {\n long: 'Huila',\n short: 'HUI',\n },\n {\n long: 'La Guajira',\n short: 'LAG',\n },\n {\n long: 'Magdalena',\n short: 'MAG',\n },\n {\n long: 'Meta',\n short: 'MET',\n },\n {\n long: 'Nariño',\n short: 'NAR',\n },\n {\n long: 'Norte de Santander',\n short: 'NSA',\n },\n {\n long: 'Putumayo',\n short: 'PUT',\n },\n {\n long: 'Quindío',\n short: 'QUI',\n },\n {\n long: 'Risaralda',\n short: 'RIS',\n },\n {\n long: 'Santander',\n short: 'SAN',\n },\n {\n long: 'Sucre',\n short: 'SUC',\n },\n {\n long: 'Tolima',\n short: 'TOL',\n },\n {\n long: 'Valle del Cauca',\n short: 'VAC',\n },\n {\n long: 'Vaupés',\n short: 'VAU',\n },\n {\n long: 'Vichada',\n short: 'VID',\n },\n ],\n },\n {\n long: 'Comoros',\n short: 'KM',\n regions: [\n {\n long: 'Andjazîdja',\n short: 'G',\n },\n {\n long: 'Andjouân',\n short: 'A',\n },\n {\n long: 'Moûhîlî',\n short: 'M',\n },\n ],\n },\n {\n long: 'Congo, Republic of the (Brazzaville)',\n short: 'CG',\n regions: [\n {\n long: 'Bouenza',\n short: '11',\n },\n {\n long: 'Brazzaville',\n short: 'BZV',\n },\n {\n long: 'Cuvette',\n short: '8',\n },\n {\n long: 'Cuvette-Ouest',\n short: '15',\n },\n {\n long: 'Kouilou',\n short: '5',\n },\n {\n long: 'Lékoumou',\n short: '2',\n },\n {\n long: 'Likouala',\n short: '7',\n },\n {\n long: 'Niari',\n short: '9',\n },\n {\n long: 'Plateaux',\n short: '14',\n },\n {\n long: 'Pointe-Noire',\n short: '16',\n },\n {\n long: 'Pool',\n short: '12',\n },\n {\n long: 'Sangha',\n short: '13',\n },\n ],\n },\n {\n long: 'Congo, the Democratic Republic of the (Kinshasa)',\n short: 'CD',\n regions: [\n {\n long: 'Bandundu',\n short: 'BN',\n },\n {\n long: 'Bas-Congo',\n short: 'BC',\n },\n {\n long: 'Équateur',\n short: 'EQ',\n },\n {\n long: 'Kasaï-Occidental',\n short: 'KE',\n },\n {\n long: 'Kasaï-Oriental',\n short: 'KW',\n },\n {\n long: 'Katanga',\n short: 'KA',\n },\n {\n long: 'Kinshasa',\n short: 'KN',\n },\n {\n long: 'Maniema',\n short: 'MA',\n },\n {\n long: 'Nord-Kivu',\n short: 'NK',\n },\n {\n long: 'Orientale',\n short: 'OR',\n },\n {\n long: 'Sud-Kivu',\n short: 'SK',\n },\n ],\n },\n {\n long: 'Cook Islands',\n short: 'CK',\n regions: [\n {\n long: 'Aitutaki',\n short: 'undefined',\n },\n {\n long: 'Atiu',\n short: 'undefined',\n },\n {\n long: 'Avarua',\n short: 'undefined',\n },\n {\n long: 'Mangaia',\n short: 'undefined',\n },\n {\n long: 'Manihiki',\n short: 'undefined',\n },\n {\n long: \"Ma'uke\",\n short: 'undefined',\n },\n {\n long: 'Mitiaro',\n short: 'undefined',\n },\n {\n long: 'Nassau',\n short: 'undefined',\n },\n {\n long: 'Palmerston',\n short: 'undefined',\n },\n {\n long: 'Penrhyn',\n short: 'undefined',\n },\n {\n long: 'Pukapuka',\n short: 'undefined',\n },\n {\n long: 'Rakahanga',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Costa Rica',\n short: 'CR',\n regions: [\n {\n long: 'Alajuela',\n short: '2',\n },\n {\n long: 'Cartago',\n short: '3',\n },\n {\n long: 'Guanacaste',\n short: '5',\n },\n {\n long: 'Heredia',\n short: '4',\n },\n {\n long: 'Limón',\n short: '7',\n },\n {\n long: 'Puntarenas',\n short: '6',\n },\n {\n long: 'San José',\n short: '1',\n },\n ],\n },\n {\n long: \"Côte d'Ivoire, Republic of\",\n short: 'CI',\n regions: [\n {\n long: 'Agnéby',\n short: '16',\n },\n {\n long: 'Bafing',\n short: '17',\n },\n {\n long: 'Bas-Sassandra',\n short: '09',\n },\n {\n long: 'Denguélé',\n short: '10',\n },\n {\n long: 'Dix-Huit Montagnes',\n short: '06',\n },\n {\n long: 'Fromager',\n short: '18',\n },\n {\n long: 'Haut-Sassandra',\n short: '02',\n },\n {\n long: 'Lacs',\n short: '07',\n },\n {\n long: 'Lagunes',\n short: '01',\n },\n {\n long: 'Marahoué',\n short: '12',\n },\n {\n long: 'Moyen-Cavally',\n short: '19',\n },\n {\n long: 'Moyen-Comoé',\n short: '05',\n },\n {\n long: \"N'zi-Comoé\",\n short: '11',\n },\n {\n long: 'Savanes',\n short: '03',\n },\n {\n long: 'Sud-Bandama',\n short: '15',\n },\n {\n long: 'Sud-Comoé',\n short: '13',\n },\n {\n long: 'Vallée du Bandama',\n short: '04',\n },\n {\n long: 'Worodougou',\n short: '14',\n },\n {\n long: 'Zanzan',\n short: '08',\n },\n ],\n },\n {\n long: 'Croatia',\n short: 'HR',\n regions: [\n {\n long: 'Bjelovarsko-bilogorska županija',\n short: '07',\n },\n {\n long: 'Brodsko-posavska županija',\n short: '12',\n },\n {\n long: 'Dubrovačko-neretvanska županija',\n short: '19',\n },\n {\n long: 'Grad Zagreb',\n short: '21',\n },\n {\n long: 'Istarska županija',\n short: '18',\n },\n {\n long: 'Karlovačka županija',\n short: '04',\n },\n {\n long: 'Koprivničko-križevačka županija',\n short: '06',\n },\n {\n long: 'Krapinsko-zagorska županija',\n short: '02',\n },\n {\n long: 'Ličko-senjska županija',\n short: '09',\n },\n {\n long: 'Međimurska županija',\n short: '20',\n },\n {\n long: 'Osječko-baranjska županija',\n short: '14',\n },\n {\n long: 'Požeško-slavonska županija',\n short: '11',\n },\n {\n long: 'Primorsko-goranska županija',\n short: '08',\n },\n {\n long: 'Sisačko-moslavačka županija',\n short: '03',\n },\n {\n long: 'Splitsko-dalmatinska županija',\n short: '17',\n },\n {\n long: 'Šibensko-kninska županija',\n short: '15',\n },\n {\n long: 'Varaždinska županija',\n short: '05',\n },\n {\n long: 'Virovitičko-podravska županija',\n short: '10',\n },\n {\n long: 'Vukovarsko-srijemska županija',\n short: '16',\n },\n {\n long: 'Zadarska županija',\n short: '13',\n },\n {\n long: 'Zagrebačka županija',\n short: '01',\n },\n ],\n },\n {\n long: 'Cuba',\n short: 'CU',\n regions: [\n {\n long: 'Artemisa',\n short: '15',\n },\n {\n long: 'Camagüey',\n short: '09',\n },\n {\n long: 'Ciego de Ávila',\n short: '08',\n },\n {\n long: 'Cienfuegos',\n short: '06',\n },\n {\n long: 'Granma',\n short: '12',\n },\n {\n long: 'Guantánamo',\n short: '14',\n },\n {\n long: 'Holguín',\n short: '11',\n },\n {\n long: 'Isla de la Juventud',\n short: '99',\n },\n {\n long: 'La Habana',\n short: '03',\n },\n {\n long: 'Las Tunas',\n short: '10',\n },\n {\n long: 'Matanzas',\n short: '04',\n },\n {\n long: 'Mayabeque',\n short: '16',\n },\n {\n long: 'Pinar del Río',\n short: '01',\n },\n {\n long: 'Sancti Spíritus',\n short: '07',\n },\n {\n long: 'Santiago de Cuba',\n short: '13',\n },\n {\n long: 'Villa Clara',\n short: '05',\n },\n ],\n },\n {\n long: 'Curaçao',\n short: 'CW',\n regions: [\n {\n long: 'Curaçao',\n short: 'CW',\n },\n ],\n },\n {\n long: 'Cyprus',\n short: 'CY',\n regions: [\n {\n long: 'Ammochostos',\n short: '04',\n },\n {\n long: 'Keryneia',\n short: '06',\n },\n {\n long: 'Larnaka',\n short: '03',\n },\n {\n long: 'Lefkosia',\n short: '01',\n },\n {\n long: 'Lemesos',\n short: '02',\n },\n {\n long: 'Pafos',\n short: '05',\n },\n ],\n },\n {\n long: 'Czech Republic',\n short: 'CZ',\n regions: [\n {\n long: 'Hlavní město Praha',\n short: 'PR',\n },\n {\n long: 'Jihočeský kraj',\n short: 'JC',\n },\n {\n long: 'Jihomoravský kraj',\n short: 'JM',\n },\n {\n long: 'Karlovarský kraj',\n short: 'KA',\n },\n {\n long: 'Královéhradecký kraj',\n short: 'KR',\n },\n {\n long: 'Liberecký kraj',\n short: 'LI',\n },\n {\n long: 'Moravskoslezský kraj',\n short: 'MO',\n },\n {\n long: 'Olomoucký kraj',\n short: 'OL',\n },\n {\n long: 'Pardubický kraj',\n short: 'PA',\n },\n {\n long: 'Plzeňský kraj',\n short: 'PL',\n },\n {\n long: 'Středočeský kraj',\n short: 'ST',\n },\n {\n long: 'Ústecký kraj',\n short: 'US',\n },\n {\n long: 'Vysočina',\n short: 'VY',\n },\n {\n long: 'Zlínský kraj',\n short: 'ZL',\n },\n ],\n },\n {\n long: 'Denmark',\n short: 'DK',\n regions: [\n {\n long: 'Hovedstaden',\n short: '84',\n },\n {\n long: 'Kujalleq',\n short: 'GL-KU',\n },\n {\n long: 'Midtjylland',\n short: '82',\n },\n {\n long: 'Norderøerne',\n short: 'FO-01',\n },\n {\n long: 'Nordjylland',\n short: '81',\n },\n {\n long: 'Østerø',\n short: 'FO-06',\n },\n {\n long: 'Qaasuitsup',\n short: 'GL-QA',\n },\n {\n long: 'Qeqqata',\n short: 'GL-QE',\n },\n {\n long: 'Sandø',\n short: 'FO-02',\n },\n {\n long: 'Sermersooq',\n short: 'GL-SM',\n },\n {\n long: 'Sjælland',\n short: '85',\n },\n {\n long: 'Strømø',\n short: 'FO-03',\n },\n {\n long: 'Suderø',\n short: 'FO-04',\n },\n {\n long: 'Syddanmark',\n short: '83',\n },\n {\n long: 'Vågø',\n short: 'FO-05',\n },\n ],\n },\n {\n long: 'Djibouti',\n short: 'DJ',\n regions: [\n {\n long: 'Ali Sabieh',\n short: 'AS',\n },\n {\n long: 'Arta',\n short: 'AR',\n },\n {\n long: 'Dikhil',\n short: 'DI',\n },\n {\n long: 'Obock',\n short: 'OB',\n },\n {\n long: 'Tadjourah',\n short: 'TA',\n },\n ],\n },\n {\n long: 'Dominica',\n short: 'DM',\n regions: [\n {\n long: 'Saint Andrew Parish',\n short: '02',\n },\n {\n long: 'Saint David Parish',\n short: '03',\n },\n {\n long: 'Saint George Parish',\n short: '04',\n },\n {\n long: 'Saint John Parish',\n short: '05',\n },\n {\n long: 'Saint Joseph Parish',\n short: '06',\n },\n {\n long: 'Saint Luke Parish',\n short: '07',\n },\n {\n long: 'Saint Mark Parish',\n short: '08',\n },\n {\n long: 'Saint Patrick Parish',\n short: '09',\n },\n {\n long: 'Saint Paul Parish',\n short: '10',\n },\n {\n long: 'Saint Peter Parish',\n short: '11',\n },\n ],\n },\n {\n long: 'Dominican Republic',\n short: 'DO',\n regions: [\n {\n long: 'Cibao Central',\n short: '02',\n },\n {\n long: 'Del Valle',\n short: '37',\n },\n {\n long: 'Distrito Nacional',\n short: '01',\n },\n {\n long: 'Enriquillo',\n short: '38',\n },\n {\n long: 'Norcentral',\n short: '04',\n },\n {\n long: 'Nordeste',\n short: '33',\n },\n {\n long: 'Noroeste',\n short: '34',\n },\n {\n long: 'Norte',\n short: '35',\n },\n {\n long: 'Valdesia',\n short: '42',\n },\n ],\n },\n {\n long: 'Ecuador',\n short: 'EC',\n regions: [\n {\n long: 'Azuay',\n short: 'A',\n },\n {\n long: 'Bolívar',\n short: 'B',\n },\n {\n long: 'Cañar',\n short: 'F',\n },\n {\n long: 'Carchi',\n short: 'C',\n },\n {\n long: 'Chimborazo',\n short: 'H',\n },\n {\n long: 'Cotopaxi',\n short: 'X',\n },\n {\n long: 'El Oro',\n short: 'O',\n },\n {\n long: 'Esmeraldas',\n short: 'E',\n },\n {\n long: 'Galápagos',\n short: 'W',\n },\n {\n long: 'Guayas',\n short: 'G',\n },\n {\n long: 'Imbabura',\n short: 'I',\n },\n {\n long: 'Loja',\n short: 'L',\n },\n {\n long: 'Los Ríos',\n short: 'R',\n },\n {\n long: 'Manabí',\n short: 'M',\n },\n {\n long: 'Morona-Santiago',\n short: 'S',\n },\n {\n long: 'Napo',\n short: 'N',\n },\n {\n long: 'Orellana',\n short: 'D',\n },\n {\n long: 'Pastaza',\n short: 'Y',\n },\n {\n long: 'Pichincha',\n short: 'P',\n },\n {\n long: 'Santa Elena',\n short: 'SE',\n },\n {\n long: 'Santo Domingo de los Tsáchilas',\n short: 'SD',\n },\n {\n long: 'Sucumbíos',\n short: 'U',\n },\n {\n long: 'Tungurahua',\n short: 'T',\n },\n {\n long: 'Zamora-Chinchipe',\n short: 'Z',\n },\n ],\n },\n {\n long: 'Egypt',\n short: 'EG',\n regions: [\n {\n long: 'Alexandria',\n short: 'ALX',\n },\n {\n long: 'Aswan',\n short: 'ASN',\n },\n {\n long: 'Asyout',\n short: 'AST',\n },\n {\n long: 'Bani Sueif',\n short: 'BNS',\n },\n {\n long: 'Beheira',\n short: 'BH',\n },\n {\n long: 'Cairo',\n short: 'C',\n },\n {\n long: 'Daqahlia',\n short: 'DK',\n },\n {\n long: 'Dumiat',\n short: 'DT',\n },\n {\n long: 'El Bahr El Ahmar',\n short: 'BA',\n },\n {\n long: 'El Ismailia',\n short: 'IS',\n },\n {\n long: 'El Suez',\n short: 'SUZ',\n },\n {\n long: 'El Wadi El Gedeed',\n short: 'WAD',\n },\n {\n long: 'Fayoum',\n short: 'FYM',\n },\n {\n long: 'Gharbia',\n short: 'GH',\n },\n {\n long: 'Giza',\n short: 'GZ',\n },\n {\n long: 'Helwan',\n short: 'HU',\n },\n {\n long: 'Kafr El Sheikh',\n short: 'KFS',\n },\n {\n long: 'Luxor',\n short: 'LX',\n },\n {\n long: 'Matrouh',\n short: 'MT',\n },\n {\n long: 'Menia',\n short: 'MN',\n },\n {\n long: 'Menofia',\n short: 'MNF',\n },\n {\n long: 'North Sinai',\n short: 'SIN',\n },\n {\n long: 'Port Said',\n short: 'PTS',\n },\n {\n long: 'Qalubia',\n short: 'KB',\n },\n {\n long: 'Qena',\n short: 'KN',\n },\n {\n long: 'Sharqia',\n short: 'SHR',\n },\n {\n long: 'Sixth of October',\n short: 'SU',\n },\n {\n long: 'Sohag',\n short: 'SHG',\n },\n {\n long: 'South Sinai',\n short: 'JS',\n },\n ],\n },\n {\n long: 'El Salvador',\n short: 'SV',\n regions: [\n {\n long: 'Ahuachapán',\n short: 'AH',\n },\n {\n long: 'Cabañas',\n short: 'CA',\n },\n {\n long: 'Cuscatlán',\n short: 'CU',\n },\n {\n long: 'Chalatenango',\n short: 'CH',\n },\n {\n long: 'La Libertad',\n short: 'LI',\n },\n {\n long: 'La Paz',\n short: 'PA',\n },\n {\n long: 'La Unión',\n short: 'UN',\n },\n {\n long: 'Morazán',\n short: 'MO',\n },\n {\n long: 'San Miguel',\n short: 'SM',\n },\n {\n long: 'San Salvador',\n short: 'SS',\n },\n {\n long: 'Santa Ana',\n short: 'SA',\n },\n {\n long: 'San Vicente',\n short: 'SV',\n },\n {\n long: 'Sonsonate',\n short: 'SO',\n },\n {\n long: 'Usulután',\n short: 'US',\n },\n ],\n },\n {\n long: 'Equatorial Guinea',\n short: 'GQ',\n regions: [\n {\n long: 'Annobón',\n short: 'AN',\n },\n {\n long: 'Bioko Norte',\n short: 'BN',\n },\n {\n long: 'Bioko Sur',\n short: 'BS',\n },\n {\n long: 'Centro Sur',\n short: 'CS',\n },\n {\n long: 'Kié-Ntem',\n short: 'KN',\n },\n {\n long: 'Litoral',\n short: 'LI',\n },\n {\n long: 'Wele-Nzas',\n short: 'WN',\n },\n ],\n },\n {\n long: 'Eritrea',\n short: 'ER',\n regions: [\n {\n long: 'Anseba',\n short: 'AN',\n },\n {\n long: 'Debub',\n short: 'DU',\n },\n {\n long: 'Debub-Keih-Bahri',\n short: 'DK',\n },\n {\n long: 'Gash-Barka',\n short: 'GB',\n },\n {\n long: 'Maekel',\n short: 'MA',\n },\n {\n long: 'Semien-Keih-Bahri',\n short: 'SK',\n },\n ],\n },\n {\n long: 'Estonia',\n short: 'EE',\n regions: [\n {\n long: 'Harjumaa (Tallinn)',\n short: '37',\n },\n {\n long: 'Hiiumaa (Kardla)',\n short: '39',\n },\n {\n long: 'Ida-Virumaa (Johvi)',\n short: '44',\n },\n {\n long: 'Järvamaa (Paide)',\n short: '41',\n },\n {\n long: 'Jõgevamaa (Jogeva)',\n short: '49',\n },\n {\n long: 'Läänemaa',\n short: '57',\n },\n {\n long: 'Lääne-Virumaa (Rakvere)',\n short: '59',\n },\n {\n long: 'Pärnumaa (Parnu)',\n short: '67',\n },\n {\n long: 'Põlvamaa (Polva)',\n short: '65',\n },\n {\n long: 'Raplamaa (Rapla)',\n short: '70',\n },\n {\n long: 'Saaremaa (Kuessaare)',\n short: '74',\n },\n {\n long: 'Tartumaa (Tartu)',\n short: '78',\n },\n {\n long: 'Valgamaa (Valga)',\n short: '82',\n },\n {\n long: 'Viljandimaa (Viljandi)',\n short: '84',\n },\n {\n long: 'Võrumaa (Voru)',\n short: '86',\n },\n ],\n },\n {\n long: 'Ethiopia',\n short: 'ET',\n regions: [\n {\n long: 'Addis Ababa',\n short: 'AA',\n },\n {\n long: 'Afar',\n short: 'AF',\n },\n {\n long: 'Amhara',\n short: 'AM',\n },\n {\n long: 'Benshangul-Gumaz',\n short: 'BE',\n },\n {\n long: 'Dire Dawa',\n short: 'DD',\n },\n {\n long: 'Gambela',\n short: 'GA',\n },\n {\n long: 'Harari',\n short: 'HA',\n },\n {\n long: 'Oromia',\n short: 'OR',\n },\n {\n long: 'Somali',\n short: 'SO',\n },\n {\n long: \"Southern Nations Nationalities and People's Region\",\n short: 'SN',\n },\n {\n long: 'Tigray',\n short: 'TI',\n },\n ],\n },\n {\n long: 'Falkland Islands (Islas Malvinas)',\n short: 'FK',\n regions: [\n {\n long: 'Falkland Islands (Islas Malvinas)',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Faroe Islands',\n short: 'FO',\n regions: [\n {\n long: 'Bordoy',\n short: 'undefined',\n },\n {\n long: 'Eysturoy',\n short: 'undefined',\n },\n {\n long: 'Mykines',\n short: 'undefined',\n },\n {\n long: 'Sandoy',\n short: 'undefined',\n },\n {\n long: 'Skuvoy',\n short: 'undefined',\n },\n {\n long: 'Streymoy',\n short: 'undefined',\n },\n {\n long: 'Suduroy',\n short: 'undefined',\n },\n {\n long: 'Tvoroyri',\n short: 'undefined',\n },\n {\n long: 'Vagar',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Fiji',\n short: 'FJ',\n regions: [\n {\n long: 'Ba',\n short: '01',\n },\n {\n long: 'Bua',\n short: '02',\n },\n {\n long: 'Cakaudrove',\n short: '03',\n },\n {\n long: 'Kadavu',\n short: '04',\n },\n {\n long: 'Lau',\n short: '05',\n },\n {\n long: 'Lomaiviti',\n short: '06',\n },\n {\n long: 'Macuata',\n short: '07',\n },\n {\n long: 'Nadroga and Navosa',\n short: '08',\n },\n {\n long: 'Naitasiri',\n short: '09',\n },\n {\n long: 'Namosi',\n short: '10',\n },\n {\n long: 'Ra',\n short: '11',\n },\n {\n long: 'Rewa',\n short: '12',\n },\n {\n long: 'Rotuma',\n short: 'R',\n },\n {\n long: 'Serua',\n short: '13',\n },\n {\n long: 'Tailevu',\n short: '14',\n },\n ],\n },\n {\n long: 'Finland',\n short: 'FI',\n regions: [\n {\n long: 'Ahvenanmaan maakunta',\n short: 'FI-01',\n },\n {\n long: 'Etelä-Karjala',\n short: 'FI-02',\n },\n {\n long: 'Etelä-Pohjanmaa',\n short: 'FI-03',\n },\n {\n long: 'Etelä-Savo',\n short: 'FI-04',\n },\n {\n long: 'Kainuu',\n short: 'FI-05',\n },\n {\n long: 'Kanta-Häme',\n short: 'FI-06',\n },\n {\n long: 'Keski-Pohjanmaa',\n short: 'FI-07',\n },\n {\n long: 'Keski-Suomi',\n short: 'FI-08',\n },\n {\n long: 'Kymenlaakso',\n short: 'FI-09',\n },\n {\n long: 'Lappi',\n short: 'FI-10',\n },\n {\n long: 'Pirkanmaa',\n short: 'FI-11',\n },\n {\n long: 'Pohjanmaa',\n short: 'FI-12',\n },\n {\n long: 'Pohjois-Karjala',\n short: 'FI-13',\n },\n {\n long: 'Pohjois-Pohjanmaa',\n short: 'FI-14',\n },\n {\n long: 'Pohjois-Savo',\n short: 'FI-15',\n },\n {\n long: 'Päijät-Häme',\n short: 'FI-16',\n },\n {\n long: 'Satakunta',\n short: 'FI-17',\n },\n {\n long: 'Uusimaa',\n short: 'FI-18',\n },\n {\n long: 'Varsinais-Suomi',\n short: 'FI-19',\n },\n ],\n },\n {\n long: 'France',\n short: 'FR',\n regions: [\n {\n long: 'Auvergne-Rhône-Alpes',\n short: 'ARA',\n },\n {\n long: 'Bourgogne-Franche-Comté',\n short: 'BFC',\n },\n {\n long: 'Bretagne',\n short: 'BRE',\n },\n {\n long: 'Centre-Val de Loire',\n short: 'CVL',\n },\n {\n long: 'Corse',\n short: 'COR',\n },\n {\n long: 'Grand Est',\n short: 'GES',\n },\n {\n long: 'Hauts-de-France',\n short: 'HDF',\n },\n {\n long: 'Île-de-France',\n short: 'IDF',\n },\n {\n long: 'Normandie',\n short: 'NOR',\n },\n {\n long: 'Nouvelle-Aquitaine',\n short: 'NAQ',\n },\n {\n long: 'Occitanie',\n short: 'OCC',\n },\n {\n long: 'Pays de la Loire',\n short: 'PDL',\n },\n {\n long: \"Provence-Alpes-Cote d'Azur\",\n short: 'PAC',\n },\n {\n long: 'Clipperton',\n short: 'CP',\n },\n {\n long: 'Guadeloupe',\n short: 'GP',\n },\n {\n long: 'Guyane',\n short: 'GF',\n },\n {\n long: 'Martinique',\n short: 'MQ',\n },\n {\n long: 'Mayotte',\n short: 'YT',\n },\n {\n long: 'Novelle-Calédonie',\n short: 'NC',\n },\n {\n long: 'Polynésie',\n short: 'PF',\n },\n {\n long: 'Saint-Pierre-et-Miquelon',\n short: 'PM',\n },\n {\n long: 'Saint Barthélemy',\n short: 'BL',\n },\n {\n long: 'Saint Martin',\n short: 'MF',\n },\n {\n long: 'Réunion',\n short: 'RE',\n },\n {\n long: 'Terres Australes Françaises',\n short: 'TF',\n },\n {\n long: 'Wallis-et-Futuna',\n short: 'WF',\n },\n ],\n },\n {\n long: 'French Guiana',\n short: 'GF',\n regions: [\n {\n long: 'French Guiana',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'French Polynesia',\n short: 'PF',\n regions: [\n {\n long: 'Archipel des Marquises',\n short: 'undefined',\n },\n {\n long: 'Archipel des Tuamotu',\n short: 'undefined',\n },\n {\n long: 'Archipel des Tubuai',\n short: 'undefined',\n },\n {\n long: 'Iles du Vent',\n short: 'undefined',\n },\n {\n long: 'Iles Sous-le-Vent',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'French Southern and Antarctic Lands',\n short: 'TF',\n regions: [\n {\n long: 'Adelie Land',\n short: 'undefined',\n },\n {\n long: 'Ile Crozet',\n short: 'undefined',\n },\n {\n long: 'Iles Kerguelen',\n short: 'undefined',\n },\n {\n long: 'Iles Saint-Paul et Amsterdam',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Gabon',\n short: 'GA',\n regions: [\n {\n long: 'Estuaire',\n short: '1',\n },\n {\n long: 'Haut-Ogooué',\n short: '2',\n },\n {\n long: 'Moyen-Ogooué',\n short: '3',\n },\n {\n long: 'Ngounié',\n short: '4',\n },\n {\n long: 'Nyanga',\n short: '5',\n },\n {\n long: 'Ogooué-Ivindo',\n short: '6',\n },\n {\n long: 'Ogooué-Lolo',\n short: '7',\n },\n {\n long: 'Ogooué-Maritime',\n short: '8',\n },\n {\n long: 'Woleu-Ntem',\n short: '9',\n },\n ],\n },\n {\n long: 'Gambia, The',\n short: 'GM',\n regions: [\n {\n long: 'Banjul',\n short: 'B',\n },\n {\n long: 'Central River',\n short: 'M',\n },\n {\n long: 'Lower River',\n short: 'L',\n },\n {\n long: 'North Bank',\n short: 'N',\n },\n {\n long: 'Upper River',\n short: 'U',\n },\n {\n long: 'Western',\n short: 'W',\n },\n ],\n },\n {\n long: 'Georgia',\n short: 'GE',\n regions: [\n {\n long: 'Abkhazia (Sokhumi)',\n short: 'AB',\n },\n {\n long: \"Ajaria (Bat'umi)\",\n short: 'AJ',\n },\n {\n long: 'Guria',\n short: 'GU',\n },\n {\n long: 'Imereti',\n short: 'IM',\n },\n {\n long: \"K'akheti\",\n short: 'KA',\n },\n {\n long: 'Kvemo Kartli',\n short: 'KK',\n },\n {\n long: 'Mtshkheta-Mtianeti',\n short: 'MM',\n },\n {\n long: \"Rach'a-Lexhkumi-KvemoSvaneti\",\n short: 'RL',\n },\n {\n long: 'Samegrelo-Zemo Svaneti',\n short: 'SZ',\n },\n {\n long: 'Samtskhe-Javakheti',\n short: 'SJ',\n },\n {\n long: 'Shida Kartli',\n short: 'SK',\n },\n {\n long: 'Tbilisi',\n short: 'TB',\n },\n ],\n },\n {\n long: 'Germany',\n short: 'DE',\n regions: [\n {\n long: 'Baden-Württemberg',\n short: 'BW',\n },\n {\n long: 'Bayern',\n short: 'BY',\n },\n {\n long: 'Berlin',\n short: 'BE',\n },\n {\n long: 'Brandenburg',\n short: 'BB',\n },\n {\n long: 'Bremen',\n short: 'HB',\n },\n {\n long: 'Hamburg',\n short: 'HH',\n },\n {\n long: 'Hessen',\n short: 'HE',\n },\n {\n long: 'Mecklenburg-Vorpommern',\n short: 'MV',\n },\n {\n long: 'Niedersachsen',\n short: 'NI',\n },\n {\n long: 'Nordrhein-Westfalen',\n short: 'NW',\n },\n {\n long: 'Rheinland-Pfalz',\n short: 'RP',\n },\n {\n long: 'Saarland',\n short: 'SL',\n },\n {\n long: 'Sachsen',\n short: 'SN',\n },\n {\n long: 'Sachsen-Anhalt',\n short: 'ST',\n },\n {\n long: 'Schleswig-Holstein',\n short: 'SH',\n },\n {\n long: 'Thüringen',\n short: 'TH',\n },\n ],\n },\n {\n long: 'Ghana',\n short: 'GH',\n regions: [\n {\n long: 'Ahafo',\n short: 'undefined',\n },\n {\n long: 'Ashanti',\n short: 'AH',\n },\n {\n long: 'Bono',\n short: 'undefined',\n },\n {\n long: 'Bono East',\n short: 'undefined',\n },\n {\n long: 'Central',\n short: 'CP',\n },\n {\n long: 'Eastern',\n short: 'EP',\n },\n {\n long: 'Greater Accra',\n short: 'AA',\n },\n {\n long: 'Northern',\n short: 'NP',\n },\n {\n long: 'North East',\n short: 'undefined',\n },\n {\n long: 'Oti',\n short: 'undefined',\n },\n {\n long: 'Savannah',\n short: 'undefined',\n },\n {\n long: 'Upper East',\n short: 'UE',\n },\n {\n long: 'Upper West',\n short: 'UW',\n },\n {\n long: 'Volta',\n short: 'TV',\n },\n {\n long: 'Western',\n short: 'WP',\n },\n {\n long: 'Western North',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Gibraltar',\n short: 'GI',\n regions: [\n {\n long: 'Gibraltar',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Greece',\n short: 'GR',\n regions: [\n {\n long: 'Anatolikí Makedonía kai Thráki',\n short: 'A',\n },\n {\n long: 'Attikḯ',\n short: 'I',\n },\n {\n long: 'Dytikí Elláda',\n short: 'G',\n },\n {\n long: 'Dytikí Makedonía',\n short: 'C',\n },\n {\n long: 'Ionía Nísia',\n short: 'F',\n },\n {\n long: 'Kentrikí Makedonía',\n short: 'B',\n },\n {\n long: 'Krítí',\n short: 'M',\n },\n {\n long: 'Notío Aigaío',\n short: 'L',\n },\n {\n long: 'Peloponnísos',\n short: 'J',\n },\n {\n long: 'Stereá Elláda',\n short: 'H',\n },\n {\n long: 'Thessalía',\n short: 'E',\n },\n {\n long: 'Voreío Aigaío',\n short: 'K',\n },\n {\n long: 'Ípeiros',\n short: 'D',\n },\n {\n long: 'Ágion Óros',\n short: '69',\n },\n ],\n },\n {\n long: 'Greenland',\n short: 'GL',\n regions: [\n {\n long: 'Kommune Kujalleq',\n short: 'KU',\n },\n {\n long: 'Kommuneqarfik Sermersooq',\n short: 'SM',\n },\n {\n long: 'Qaasuitsup Kommunia',\n short: 'QA',\n },\n {\n long: 'Qeqqata Kommunia',\n short: 'QE',\n },\n ],\n },\n {\n long: 'Grenada',\n short: 'GD',\n regions: [\n {\n long: 'Saint Andrew',\n short: '01',\n },\n {\n long: 'Saint David',\n short: '02',\n },\n {\n long: 'Saint George',\n short: '03',\n },\n {\n long: 'Saint John',\n short: '04',\n },\n {\n long: 'Saint Mark',\n short: '05',\n },\n {\n long: 'Saint Patrick',\n short: '06',\n },\n {\n long: 'Southern Grenadine Islands',\n short: '10',\n },\n ],\n },\n {\n long: 'Guadeloupe',\n short: 'GP',\n regions: [\n {\n long: 'Guadeloupe',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Guam',\n short: 'GU',\n regions: [\n {\n long: 'Guam',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Guatemala',\n short: 'GT',\n regions: [\n {\n long: 'Alta Verapaz',\n short: 'AV',\n },\n {\n long: 'Baja Verapaz',\n short: 'BV',\n },\n {\n long: 'Chimaltenango',\n short: 'CM',\n },\n {\n long: 'Chiquimula',\n short: 'CQ',\n },\n {\n long: 'El Progreso',\n short: 'PR',\n },\n {\n long: 'Escuintla',\n short: 'ES',\n },\n {\n long: 'Guatemala',\n short: 'GU',\n },\n {\n long: 'Huehuetenango',\n short: 'HU',\n },\n {\n long: 'Izabal',\n short: 'IZ',\n },\n {\n long: 'Jalapa',\n short: 'JA',\n },\n {\n long: 'Jutiapa',\n short: 'JU',\n },\n {\n long: 'Petén',\n short: 'PE',\n },\n {\n long: 'Quetzaltenango',\n short: 'QZ',\n },\n {\n long: 'Quiché',\n short: 'QC',\n },\n {\n long: 'Retalhuleu',\n short: 'Re',\n },\n {\n long: 'Sacatepéquez',\n short: 'SA',\n },\n {\n long: 'San Marcos',\n short: 'SM',\n },\n {\n long: 'Santa Rosa',\n short: 'SR',\n },\n {\n long: 'Sololá',\n short: 'SO',\n },\n {\n long: 'Suchitepéquez',\n short: 'SU',\n },\n {\n long: 'Totonicapán',\n short: 'TO',\n },\n {\n long: 'Zacapa',\n short: 'ZA',\n },\n ],\n },\n {\n long: 'Guernsey',\n short: 'GG',\n regions: [\n {\n long: 'Castel',\n short: 'undefined',\n },\n {\n long: 'Forest',\n short: 'undefined',\n },\n {\n long: 'St. Andrew',\n short: 'undefined',\n },\n {\n long: 'St. Martin',\n short: 'undefined',\n },\n {\n long: 'St. Peter Port',\n short: 'undefined',\n },\n {\n long: 'St. Pierre du Bois',\n short: 'undefined',\n },\n {\n long: 'St. Sampson',\n short: 'undefined',\n },\n {\n long: 'St. Saviour',\n short: 'undefined',\n },\n {\n long: 'Torteval',\n short: 'undefined',\n },\n {\n long: 'Vale',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Guinea',\n short: 'GN',\n regions: [\n {\n long: 'Boké',\n short: 'B',\n },\n {\n long: 'Conakry',\n short: 'C',\n },\n {\n long: 'Faranah',\n short: 'F',\n },\n {\n long: 'Kankan',\n short: 'K',\n },\n {\n long: 'Kindia',\n short: 'D',\n },\n {\n long: 'Labé',\n short: 'L',\n },\n {\n long: 'Mamou',\n short: 'M',\n },\n {\n long: 'Nzérékoré',\n short: 'N',\n },\n ],\n },\n {\n long: 'Guinea-Bissau',\n short: 'GW',\n regions: [\n {\n long: 'Bafatá',\n short: 'BA',\n },\n {\n long: 'Biombo',\n short: 'BM',\n },\n {\n long: 'Bissau',\n short: 'BS',\n },\n {\n long: 'Bolama-Bijagos',\n short: 'BL',\n },\n {\n long: 'Cacheu',\n short: 'CA',\n },\n {\n long: 'Gabú',\n short: 'GA',\n },\n {\n long: 'Oio',\n short: 'OI',\n },\n {\n long: 'Quinara',\n short: 'QU',\n },\n {\n long: 'Tombali',\n short: 'TO',\n },\n ],\n },\n {\n long: 'Guyana',\n short: 'GY',\n regions: [\n {\n long: 'Barima-Waini',\n short: 'BA',\n },\n {\n long: 'Cuyuni-Mazaruni',\n short: 'CU',\n },\n {\n long: 'Demerara-Mahaica',\n short: 'DE',\n },\n {\n long: 'East Berbice-Corentyne',\n short: 'EB',\n },\n {\n long: 'Essequibo Islands-West Demerara',\n short: 'ES',\n },\n {\n long: 'Mahaica-Berbice',\n short: 'MA',\n },\n {\n long: 'Pomeroon-Supenaam',\n short: 'PM',\n },\n {\n long: 'Potaro-Siparuni',\n short: 'PT',\n },\n {\n long: 'Upper Demerara-Berbice',\n short: 'UD',\n },\n {\n long: 'Upper Takutu-Upper Essequibo',\n short: 'UT',\n },\n ],\n },\n {\n long: 'Haiti',\n short: 'HT',\n regions: [\n {\n long: 'Artibonite',\n short: 'AR',\n },\n {\n long: 'Centre',\n short: 'CE',\n },\n {\n long: \"Grand'Anse\",\n short: 'GA',\n },\n {\n long: 'Nippes',\n short: 'NI',\n },\n {\n long: 'Nord',\n short: 'ND',\n },\n {\n long: 'Nord-Est',\n short: 'NE',\n },\n {\n long: 'Nord-Ouest',\n short: 'NO',\n },\n {\n long: 'Ouest',\n short: 'OU',\n },\n {\n long: 'Sud',\n short: 'SD',\n },\n {\n long: 'Sud-Est',\n short: 'SE',\n },\n ],\n },\n {\n long: 'Heard Island and McDonald Islands',\n short: 'HM',\n regions: [\n {\n long: 'Heard Island and McDonald Islands',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Holy See (Vatican City)',\n short: 'VA',\n regions: [\n {\n long: 'Holy See (Vatican City)',\n short: '01',\n },\n ],\n },\n {\n long: 'Honduras',\n short: 'HN',\n regions: [\n {\n long: 'Atlántida',\n short: 'AT',\n },\n {\n long: 'Choluteca',\n short: 'CH',\n },\n {\n long: 'Colón',\n short: 'CL',\n },\n {\n long: 'Comayagua',\n short: 'CM',\n },\n {\n long: 'Copán',\n short: 'CP',\n },\n {\n long: 'Cortés',\n short: 'CR',\n },\n {\n long: 'El Paraíso',\n short: 'EP',\n },\n {\n long: 'Francisco Morazán',\n short: 'FM',\n },\n {\n long: 'Gracias a Dios',\n short: 'GD',\n },\n {\n long: 'Intibucá',\n short: 'IN',\n },\n {\n long: 'Islas de la Bahía',\n short: 'IB',\n },\n {\n long: 'La Paz',\n short: 'LP',\n },\n {\n long: 'Lempira',\n short: 'LE',\n },\n {\n long: 'Ocotepeque',\n short: 'OC',\n },\n {\n long: 'Olancho',\n short: 'OL',\n },\n {\n long: 'Santa Bárbara',\n short: 'SB',\n },\n {\n long: 'Valle',\n short: 'VA',\n },\n {\n long: 'Yoro',\n short: 'YO',\n },\n ],\n },\n {\n long: 'Hong Kong',\n short: 'HK',\n regions: [\n {\n long: 'Hong Kong',\n short: 'HK',\n },\n ],\n },\n {\n long: 'Hungary',\n short: 'HU',\n regions: [\n {\n long: 'Bács-Kiskun',\n short: 'BK',\n },\n {\n long: 'Baranya',\n short: 'BA',\n },\n {\n long: 'Békés',\n short: 'BE',\n },\n {\n long: 'Békéscsaba',\n short: 'BC',\n },\n {\n long: 'Borsod-Abauj-Zemplen',\n short: 'BZ',\n },\n {\n long: 'Budapest',\n short: 'BU',\n },\n {\n long: 'Csongrád',\n short: 'CS',\n },\n {\n long: 'Debrecen',\n short: 'DE',\n },\n {\n long: 'Dunaújváros',\n short: 'DU',\n },\n {\n long: 'Eger',\n short: 'EG',\n },\n {\n long: 'Érd',\n short: 'ER',\n },\n {\n long: 'Fejér',\n short: 'FE',\n },\n {\n long: 'Győr',\n short: 'GY',\n },\n {\n long: 'Győr-Moson-Sopron',\n short: 'GS',\n },\n {\n long: 'Hajdú-Bihar',\n short: 'HB',\n },\n {\n long: 'Heves',\n short: 'HE',\n },\n {\n long: 'Hódmezővásárhely',\n short: 'HV',\n },\n {\n long: 'Jász-Nagykun-Szolnok',\n short: 'N',\n },\n {\n long: 'Kaposvár',\n short: 'KV',\n },\n {\n long: 'Kecskemét',\n short: 'KM',\n },\n {\n long: 'Komárom-Esztergom',\n short: 'KE',\n },\n {\n long: 'Miskolc',\n short: 'MI',\n },\n {\n long: 'Nagykanizsa',\n short: 'NK',\n },\n {\n long: 'Nógrád',\n short: 'NO',\n },\n {\n long: 'Nyíregyháza',\n short: 'NY',\n },\n {\n long: 'Pécs',\n short: 'PS',\n },\n {\n long: 'Pest',\n short: 'PE',\n },\n {\n long: 'Salgótarján',\n short: 'ST',\n },\n {\n long: 'Somogy',\n short: 'SO',\n },\n {\n long: 'Sopron',\n short: 'SN',\n },\n {\n long: 'Szabolcs-á-Bereg',\n short: 'SZ',\n },\n {\n long: 'Szeged',\n short: 'SD',\n },\n {\n long: 'Székesfehérvár',\n short: 'SF',\n },\n {\n long: 'Szekszárd',\n short: 'SS',\n },\n {\n long: 'Szolnok',\n short: 'SK',\n },\n {\n long: 'Szombathely',\n short: 'SH',\n },\n {\n long: 'Tatabánya',\n short: 'TB',\n },\n {\n long: 'Tolna',\n short: 'TO',\n },\n {\n long: 'Vas',\n short: 'VA',\n },\n {\n long: 'Veszprém',\n short: 'VE',\n },\n {\n long: 'Veszprém (City)',\n short: 'VM',\n },\n {\n long: 'Zala',\n short: 'ZA',\n },\n {\n long: 'Zalaegerszeg',\n short: 'ZE',\n },\n ],\n },\n {\n long: 'Iceland',\n short: 'IS',\n regions: [\n {\n long: 'Austurland',\n short: '7',\n },\n {\n long: 'Höfuðborgarsvæði',\n short: '1',\n },\n {\n long: 'Norðurland eystra',\n short: '6',\n },\n {\n long: 'Norðurland vestra',\n short: '5',\n },\n {\n long: 'Suðurland',\n short: '8',\n },\n {\n long: 'Suðurnes',\n short: '2',\n },\n {\n long: 'Vestfirðir',\n short: '4',\n },\n {\n long: 'Vesturland',\n short: '3',\n },\n ],\n },\n {\n long: 'India',\n short: 'IN',\n regions: [\n {\n long: 'Andaman and Nicobar Islands',\n short: 'AN',\n },\n {\n long: 'Andhra Pradesh',\n short: 'AP',\n },\n {\n long: 'Arunachal Pradesh',\n short: 'AR',\n },\n {\n long: 'Assam',\n short: 'AS',\n },\n {\n long: 'Bihar',\n short: 'BR',\n },\n {\n long: 'Chandigarh',\n short: 'CH',\n },\n {\n long: 'Chhattisgarh',\n short: 'CT',\n },\n {\n long: 'Dadra and Nagar Haveli and Daman and Diu',\n short: 'DH',\n },\n {\n long: 'Delhi',\n short: 'DL',\n },\n {\n long: 'Goa',\n short: 'GA',\n },\n {\n long: 'Gujarat',\n short: 'GJ',\n },\n {\n long: 'Haryana',\n short: 'HR',\n },\n {\n long: 'Himachal Pradesh',\n short: 'HP',\n },\n {\n long: 'Jammu and Kashmir',\n short: 'JK',\n },\n {\n long: 'Jharkhand',\n short: 'JH',\n },\n {\n long: 'Karnataka',\n short: 'KA',\n },\n {\n long: 'Kerala',\n short: 'KL',\n },\n {\n long: 'Ladakh',\n short: 'LA',\n },\n {\n long: 'Lakshadweep',\n short: 'LD',\n },\n {\n long: 'Madhya Pradesh',\n short: 'MP',\n },\n {\n long: 'Maharashtra',\n short: 'MH',\n },\n {\n long: 'Manipur',\n short: 'MN',\n },\n {\n long: 'Meghalaya',\n short: 'ML',\n },\n {\n long: 'Mizoram',\n short: 'MZ',\n },\n {\n long: 'Nagaland',\n short: 'NL',\n },\n {\n long: 'Odisha',\n short: 'OR',\n },\n {\n long: 'Puducherry',\n short: 'PY',\n },\n {\n long: 'Punjab',\n short: 'PB',\n },\n {\n long: 'Rajasthan',\n short: 'RJ',\n },\n {\n long: 'Sikkim',\n short: 'SK',\n },\n {\n long: 'Tamil Nadu',\n short: 'TN',\n },\n {\n long: 'Telangana',\n short: 'TG',\n },\n {\n long: 'Tripura',\n short: 'TR',\n },\n {\n long: 'Uttarakhand',\n short: 'UT',\n },\n {\n long: 'Uttar Pradesh',\n short: 'UP',\n },\n {\n long: 'West Bengal',\n short: 'WB',\n },\n ],\n },\n {\n long: 'Indonesia',\n short: 'ID',\n regions: [\n {\n long: 'Aceh',\n short: 'AC',\n },\n {\n long: 'Bali',\n short: 'BA',\n },\n {\n long: 'Bangka Belitung',\n short: 'BB',\n },\n {\n long: 'Banten',\n short: 'BT',\n },\n {\n long: 'Bengkulu',\n short: 'BE',\n },\n {\n long: 'Gorontalo',\n short: 'GO',\n },\n {\n long: 'Jakarta Raya',\n short: 'JK',\n },\n {\n long: 'Jambi',\n short: 'JA',\n },\n {\n long: 'Jawa Barat',\n short: 'JB',\n },\n {\n long: 'Jawa Tengah',\n short: 'JT',\n },\n {\n long: 'Jawa Timur',\n short: 'JI',\n },\n {\n long: 'Kalimantan Barat',\n short: 'KB',\n },\n {\n long: 'Kalimantan Selatan',\n short: 'KS',\n },\n {\n long: 'Kalimantan Tengah',\n short: 'KT',\n },\n {\n long: 'Kalimantan Timur',\n short: 'KI',\n },\n {\n long: 'Kalimantan Utara',\n short: 'KU',\n },\n {\n long: 'Kepulauan Riau',\n short: 'KR',\n },\n {\n long: 'Lampung',\n short: 'LA',\n },\n {\n long: 'Maluku',\n short: 'MA',\n },\n {\n long: 'Maluku Utara',\n short: 'MU',\n },\n {\n long: 'Nusa Tenggara Barat',\n short: 'NB',\n },\n {\n long: 'Nusa Tenggara Timur',\n short: 'NT',\n },\n {\n long: 'Papua',\n short: 'PA',\n },\n {\n long: 'Papua Barat',\n short: 'PB',\n },\n {\n long: 'Riau',\n short: 'RI',\n },\n {\n long: 'Sulawesi Selatan',\n short: 'SR',\n },\n {\n long: 'Sulawesi Tengah',\n short: 'ST',\n },\n {\n long: 'Sulawesi Tenggara',\n short: 'SG',\n },\n {\n long: 'Sulawesi Utara',\n short: 'SA',\n },\n {\n long: 'Sumatera Barat',\n short: 'SB',\n },\n {\n long: 'Sumatera Selatan',\n short: 'SS',\n },\n {\n long: 'Sumatera Utara',\n short: 'SU',\n },\n {\n long: 'Yogyakarta',\n short: 'YO',\n },\n ],\n },\n {\n long: 'Iran, Islamic Republic of',\n short: 'IR',\n regions: [\n {\n long: 'Alborz',\n short: '32',\n },\n {\n long: 'Ardabīl',\n short: '03',\n },\n {\n long: 'Āz̄arbāyjān-e Gharbī',\n short: '02',\n },\n {\n long: 'Āz̄arbāyjān-e Sharqī',\n short: '01',\n },\n {\n long: 'Būshehr',\n short: '06',\n },\n {\n long: 'Chahār Maḩāl va Bakhtīārī',\n short: '08',\n },\n {\n long: 'Eşfahān',\n short: '04',\n },\n {\n long: 'Fārs',\n short: '14',\n },\n {\n long: 'Gīlān',\n short: '19',\n },\n {\n long: 'Golestān',\n short: '27',\n },\n {\n long: 'Hamadān',\n short: '24',\n },\n {\n long: 'Hormozgān',\n short: '23',\n },\n {\n long: 'Īlām',\n short: '05',\n },\n {\n long: 'Kermān',\n short: '15',\n },\n {\n long: 'Kermānshāh',\n short: '17',\n },\n {\n long: 'Khorāsān-e Jonūbī',\n short: '29',\n },\n {\n long: 'Khorāsān-e Raẕavī',\n short: '30',\n },\n {\n long: 'Khorāsān-e Shomālī',\n short: '61',\n },\n {\n long: 'Khūzestān',\n short: '10',\n },\n {\n long: 'Kohgīlūyeh va Bowyer Aḩmad',\n short: '18',\n },\n {\n long: 'Kordestān',\n short: '16',\n },\n {\n long: 'Lorestān',\n short: '20',\n },\n {\n long: 'Markazi',\n short: '22',\n },\n {\n long: 'Māzandarān',\n short: '21',\n },\n {\n long: 'Qazvīn',\n short: '28',\n },\n {\n long: 'Qom',\n short: '26',\n },\n {\n long: 'Semnān',\n short: '12',\n },\n {\n long: 'Sīstān va Balūchestān',\n short: '13',\n },\n {\n long: 'Tehrān',\n short: '07',\n },\n {\n long: 'Yazd',\n short: '25',\n },\n {\n long: 'Zanjān',\n short: '11',\n },\n ],\n },\n {\n long: 'Iraq',\n short: 'IQ',\n regions: [\n {\n long: 'Al Anbār',\n short: 'AN',\n },\n {\n long: 'Al Başrah',\n short: 'BA',\n },\n {\n long: 'Al Muthanná',\n short: 'MU',\n },\n {\n long: 'Al Qādisīyah',\n short: 'QA',\n },\n {\n long: 'An Najaf',\n short: 'NA',\n },\n {\n long: 'Arbīl',\n short: 'AR',\n },\n {\n long: 'As Sulaymānīyah',\n short: 'SU',\n },\n {\n long: 'Bābil',\n short: 'BB',\n },\n {\n long: 'Baghdād',\n short: 'BG',\n },\n {\n long: 'Dohuk',\n short: 'DA',\n },\n {\n long: 'Dhī Qār',\n short: 'DQ',\n },\n {\n long: 'Diyālá',\n short: 'DI',\n },\n {\n long: \"Karbalā'\",\n short: 'KA',\n },\n {\n long: 'Kirkuk',\n short: 'KI',\n },\n {\n long: 'Maysān',\n short: 'MA',\n },\n {\n long: 'Nīnawá',\n short: 'NI',\n },\n {\n long: 'Şalāḩ ad Dīn',\n short: 'SD',\n },\n {\n long: 'Wāsiţ',\n short: 'WA',\n },\n ],\n },\n {\n long: 'Ireland',\n short: 'IE',\n regions: [\n {\n long: 'Carlow',\n short: 'CW',\n },\n {\n long: 'Cavan',\n short: 'CN',\n },\n {\n long: 'Clare',\n short: 'CE',\n },\n {\n long: 'Cork',\n short: 'CO',\n },\n {\n long: 'Donegal',\n short: 'DL',\n },\n {\n long: 'Dublin',\n short: 'D',\n },\n {\n long: 'Galway',\n short: 'G',\n },\n {\n long: 'Kerry',\n short: 'KY',\n },\n {\n long: 'Kildare',\n short: 'KE',\n },\n {\n long: 'Kilkenny',\n short: 'KK',\n },\n {\n long: 'Laois',\n short: 'LS',\n },\n {\n long: 'Leitrim',\n short: 'LM',\n },\n {\n long: 'Limerick',\n short: 'LK',\n },\n {\n long: 'Longford',\n short: 'LD',\n },\n {\n long: 'Louth',\n short: 'LH',\n },\n {\n long: 'Mayo',\n short: 'MO',\n },\n {\n long: 'Meath',\n short: 'MH',\n },\n {\n long: 'Monaghan',\n short: 'MN',\n },\n {\n long: 'Offaly',\n short: 'OY',\n },\n {\n long: 'Roscommon',\n short: 'RN',\n },\n {\n long: 'Sligo',\n short: 'SO',\n },\n {\n long: 'Tipperary',\n short: 'TA',\n },\n {\n long: 'Waterford',\n short: 'WD',\n },\n {\n long: 'Westmeath',\n short: 'WH',\n },\n {\n long: 'Wexford',\n short: 'WX',\n },\n {\n long: 'Wicklow',\n short: 'WW',\n },\n ],\n },\n {\n long: 'Isle of Man',\n short: 'IM',\n regions: [\n {\n long: 'Isle of Man',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Israel',\n short: 'IL',\n regions: [\n {\n long: 'HaDarom',\n short: 'D',\n },\n {\n long: 'HaMerkaz',\n short: 'M',\n },\n {\n long: 'HaTsafon',\n short: 'Z',\n },\n {\n long: 'H̱efa',\n short: 'HA',\n },\n {\n long: 'Tel-Aviv',\n short: 'TA',\n },\n {\n long: 'Yerushalayim',\n short: 'JM',\n },\n ],\n },\n {\n long: 'Italy',\n short: 'IT',\n regions: [\n {\n long: 'Abruzzo',\n short: '65',\n },\n {\n long: 'Basilicata',\n short: '77',\n },\n {\n long: 'Calabria',\n short: '78',\n },\n {\n long: 'Campania',\n short: '72',\n },\n {\n long: 'Emilia-Romagna',\n short: '45',\n },\n {\n long: 'Friuli-Venezia Giulia',\n short: '36',\n },\n {\n long: 'Lazio',\n short: '62',\n },\n {\n long: 'Liguria',\n short: '42',\n },\n {\n long: 'Lombardia',\n short: '25',\n },\n {\n long: 'Marche',\n short: '57',\n },\n {\n long: 'Molise',\n short: '67',\n },\n {\n long: 'Piemonte',\n short: '21',\n },\n {\n long: 'Puglia',\n short: '75',\n },\n {\n long: 'Sardegna',\n short: '88',\n },\n {\n long: 'Sicilia',\n short: '82',\n },\n {\n long: 'Toscana',\n short: '52',\n },\n {\n long: 'Trentino-Alto Adige',\n short: '32',\n },\n {\n long: 'Umbria',\n short: '55',\n },\n {\n long: \"Valle d'Aosta\",\n short: '23',\n },\n {\n long: 'Veneto',\n short: '34',\n },\n ],\n },\n {\n long: 'Jamaica',\n short: 'JM',\n regions: [\n {\n long: 'Clarendon',\n short: '13',\n },\n {\n long: 'Hanover',\n short: '09',\n },\n {\n long: 'Kingston',\n short: '01',\n },\n {\n long: 'Manchester',\n short: '12',\n },\n {\n long: 'Portland',\n short: '04',\n },\n {\n long: 'Saint Andrew',\n short: '02',\n },\n {\n long: 'Saint Ann',\n short: '06',\n },\n {\n long: 'Saint Catherine',\n short: '14',\n },\n {\n long: 'Saint Elizabeth',\n short: '11',\n },\n {\n long: 'Saint James',\n short: '08',\n },\n {\n long: 'Saint Mary',\n short: '05',\n },\n {\n long: 'Saint Thomas',\n short: '03',\n },\n {\n long: 'Trelawny',\n short: '07',\n },\n {\n long: 'Westmoreland',\n short: '10',\n },\n ],\n },\n {\n long: 'Japan',\n short: 'JP',\n regions: [\n {\n long: 'Aichi',\n short: '23',\n },\n {\n long: 'Akita',\n short: '05',\n },\n {\n long: 'Aomori',\n short: '02',\n },\n {\n long: 'Chiba',\n short: '12',\n },\n {\n long: 'Ehime',\n short: '38',\n },\n {\n long: 'Fukui',\n short: '18',\n },\n {\n long: 'Fukuoka',\n short: '40',\n },\n {\n long: 'Fukushima',\n short: '07',\n },\n {\n long: 'Gifu',\n short: '21',\n },\n {\n long: 'Gunma',\n short: '10',\n },\n {\n long: 'Hiroshima',\n short: '34',\n },\n {\n long: 'Hokkaido',\n short: '01',\n },\n {\n long: 'Hyogo',\n short: '28',\n },\n {\n long: 'Ibaraki',\n short: '08',\n },\n {\n long: 'Ishikawa',\n short: '17',\n },\n {\n long: 'Iwate',\n short: '03',\n },\n {\n long: 'Kagawa',\n short: '37',\n },\n {\n long: 'Kagoshima',\n short: '46',\n },\n {\n long: 'Kanagawa',\n short: '14',\n },\n {\n long: 'Kochi',\n short: '39',\n },\n {\n long: 'Kumamoto',\n short: '43',\n },\n {\n long: 'Kyoto',\n short: '26',\n },\n {\n long: 'Mie',\n short: '24',\n },\n {\n long: 'Miyagi',\n short: '04',\n },\n {\n long: 'Miyazaki',\n short: '45',\n },\n {\n long: 'Nagano',\n short: '20',\n },\n {\n long: 'Nagasaki',\n short: '42',\n },\n {\n long: 'Nara',\n short: '29',\n },\n {\n long: 'Niigata',\n short: '15',\n },\n {\n long: 'Oita',\n short: '44',\n },\n {\n long: 'Okayama',\n short: '33',\n },\n {\n long: 'Okinawa',\n short: '47',\n },\n {\n long: 'Osaka',\n short: '27',\n },\n {\n long: 'Saga',\n short: '41',\n },\n {\n long: 'Saitama',\n short: '11',\n },\n {\n long: 'Shiga',\n short: '25',\n },\n {\n long: 'Shimane',\n short: '32',\n },\n {\n long: 'Shizuoka',\n short: '22',\n },\n {\n long: 'Tochigi',\n short: '09',\n },\n {\n long: 'Tokushima',\n short: '36',\n },\n {\n long: 'Tokyo',\n short: '13',\n },\n {\n long: 'Tottori',\n short: '31',\n },\n {\n long: 'Toyama',\n short: '16',\n },\n {\n long: 'Wakayama',\n short: '30',\n },\n {\n long: 'Yamagata',\n short: '06',\n },\n {\n long: 'Yamaguchi',\n short: '35',\n },\n {\n long: 'Yamanashi',\n short: '19',\n },\n ],\n },\n {\n long: 'Jersey',\n short: 'JE',\n regions: [\n {\n long: 'Jersey',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Jordan',\n short: 'JO',\n regions: [\n {\n long: '‘Ajlūn',\n short: 'AJ',\n },\n {\n long: \"Al 'Aqabah\",\n short: 'AQ',\n },\n {\n long: 'Al Balqā’',\n short: 'BA',\n },\n {\n long: 'Al Karak',\n short: 'KA',\n },\n {\n long: 'Al Mafraq',\n short: 'MA',\n },\n {\n long: 'Al ‘A̅şimah',\n short: 'AM',\n },\n {\n long: 'Aţ Ţafīlah',\n short: 'AT',\n },\n {\n long: 'Az Zarqā’',\n short: 'AZ',\n },\n {\n long: 'Irbid',\n short: 'IR',\n },\n {\n long: 'Jarash',\n short: 'JA',\n },\n {\n long: 'Ma‘ān',\n short: 'MN',\n },\n {\n long: 'Mādabā',\n short: 'MD',\n },\n ],\n },\n {\n long: 'Kazakhstan',\n short: 'KZ',\n regions: [\n {\n long: 'Almaty',\n short: 'ALA',\n },\n {\n long: 'Aqmola',\n short: 'AKM',\n },\n {\n long: 'Aqtobe',\n short: 'AKT',\n },\n {\n long: 'Astana',\n short: 'AST',\n },\n {\n long: 'Atyrau',\n short: 'ATY',\n },\n {\n long: 'Batys Qazaqstan',\n short: 'ZAP',\n },\n {\n long: 'Bayqongyr',\n short: 'undefined',\n },\n {\n long: 'Mangghystau',\n short: 'MAN',\n },\n {\n long: 'Ongtustik Qazaqstan',\n short: 'YUZ',\n },\n {\n long: 'Pavlodar',\n short: 'PAV',\n },\n {\n long: 'Qaraghandy',\n short: 'KAR',\n },\n {\n long: 'Qostanay',\n short: 'KUS',\n },\n {\n long: 'Qyzylorda',\n short: 'KZY',\n },\n {\n long: 'Shyghys Qazaqstan',\n short: 'VOS',\n },\n {\n long: 'Soltustik Qazaqstan',\n short: 'SEV',\n },\n {\n long: 'Zhambyl',\n short: 'ZHA',\n },\n ],\n },\n {\n long: 'Kenya',\n short: 'KE',\n regions: [\n {\n long: 'Baringo',\n short: '01',\n },\n {\n long: 'Bomet',\n short: '02',\n },\n {\n long: 'Bungoma',\n short: '03',\n },\n {\n long: 'Busia',\n short: '04',\n },\n {\n long: 'Eleyo/Marakwet',\n short: '05',\n },\n {\n long: 'Embu',\n short: '06',\n },\n {\n long: 'Garissa',\n short: '07',\n },\n {\n long: 'Homa Bay',\n short: '08',\n },\n {\n long: 'Isiolo',\n short: '09',\n },\n {\n long: 'Kajiado',\n short: '10',\n },\n {\n long: 'Kakamega',\n short: '11',\n },\n {\n long: 'Kericho',\n short: '12',\n },\n {\n long: 'Kiambu',\n short: '13',\n },\n {\n long: 'Kilifi',\n short: '14',\n },\n {\n long: 'Kirinyaga',\n short: '15',\n },\n {\n long: 'Kisii',\n short: '16',\n },\n {\n long: 'Kisumu',\n short: '17',\n },\n {\n long: 'Kitui',\n short: '18',\n },\n {\n long: 'Kwale',\n short: '19',\n },\n {\n long: 'Laikipia',\n short: '20',\n },\n {\n long: 'Lamu',\n short: '21',\n },\n {\n long: 'Machakos',\n short: '22',\n },\n {\n long: 'Makueni',\n short: '23',\n },\n {\n long: 'Mandera',\n short: '24',\n },\n {\n long: 'Marsabit',\n short: '25',\n },\n {\n long: 'Meru',\n short: '26',\n },\n {\n long: 'Migori',\n short: '27',\n },\n {\n long: 'Mombasa',\n short: '28',\n },\n {\n long: \"Murang'a\",\n short: '29',\n },\n {\n long: 'Nairobi City',\n short: '30',\n },\n {\n long: 'Nakuru',\n short: '31',\n },\n {\n long: 'Nandi',\n short: '32',\n },\n {\n long: 'Narok',\n short: '33',\n },\n {\n long: 'Nyamira',\n short: '34',\n },\n {\n long: 'Nyandarua',\n short: '35',\n },\n {\n long: 'Nyeri',\n short: '36',\n },\n {\n long: 'Samburu',\n short: '37',\n },\n {\n long: 'Siaya',\n short: '38',\n },\n {\n long: 'Taita/Taveta',\n short: '39',\n },\n {\n long: 'Tana River',\n short: '40',\n },\n {\n long: 'Tharaka-Nithi',\n short: '41',\n },\n {\n long: 'Trans Nzoia',\n short: '42',\n },\n {\n long: 'Turkana',\n short: '43',\n },\n {\n long: 'Uasin Gishu',\n short: '44',\n },\n {\n long: 'Vihiga',\n short: '45',\n },\n {\n long: 'Wajir',\n short: '46',\n },\n {\n long: 'West Pokot',\n short: '47',\n },\n ],\n },\n {\n long: 'Kiribati',\n short: 'KI',\n regions: [\n {\n long: 'Abaiang',\n short: 'undefined',\n },\n {\n long: 'Abemama',\n short: 'undefined',\n },\n {\n long: 'Aranuka',\n short: 'undefined',\n },\n {\n long: 'Arorae',\n short: 'undefined',\n },\n {\n long: 'Banaba',\n short: 'undefined',\n },\n {\n long: 'Beru',\n short: 'undefined',\n },\n {\n long: 'Butaritari',\n short: 'undefined',\n },\n {\n long: 'Central Gilberts',\n short: 'undefined',\n },\n {\n long: 'Gilbert Islands',\n short: 'G',\n },\n {\n long: 'Kanton',\n short: 'undefined',\n },\n {\n long: 'Kiritimati',\n short: 'undefined',\n },\n {\n long: 'Kuria',\n short: 'undefined',\n },\n {\n long: 'Line Islands',\n short: 'L',\n },\n {\n long: 'Maiana',\n short: 'undefined',\n },\n {\n long: 'Makin',\n short: 'undefined',\n },\n {\n long: 'Marakei',\n short: 'undefined',\n },\n {\n long: 'Nikunau',\n short: 'undefined',\n },\n {\n long: 'Nonouti',\n short: 'undefined',\n },\n {\n long: 'Northern Gilberts',\n short: 'undefined',\n },\n {\n long: 'Onotoa',\n short: 'undefined',\n },\n {\n long: 'Phoenix Islands',\n short: 'P',\n },\n {\n long: 'Southern Gilberts',\n short: 'undefined',\n },\n {\n long: 'Tabiteuea',\n short: 'undefined',\n },\n {\n long: 'Tabuaeran',\n short: 'undefined',\n },\n {\n long: 'Tamana',\n short: 'undefined',\n },\n {\n long: 'Tarawa',\n short: 'undefined',\n },\n {\n long: 'Teraina',\n short: 'undefined',\n },\n ],\n },\n {\n long: \"Korea, Democratic People's Republic of\",\n short: 'KP',\n regions: [\n {\n long: 'Chagang-do (Chagang Province)',\n short: '04',\n },\n {\n long: 'Hamgyong-bukto (North Hamgyong Province)',\n short: '09',\n },\n {\n long: 'Hamgyong-namdo (South Hamgyong Province)',\n short: '08',\n },\n {\n long: 'Hwanghae-bukto (North Hwanghae Province)',\n short: '06',\n },\n {\n long: 'Hwanghae-namdo (South Hwanghae Province)',\n short: '05',\n },\n {\n long: 'Kangwon-do (Kangwon Province)',\n short: '07',\n },\n {\n long: 'Nasŏn (Najin-Sŏnbong)',\n short: '13',\n },\n {\n long: \"P'yongan-bukto (North P'yongan Province)\",\n short: '03',\n },\n {\n long: \"P'yongan-namdo (South P'yongan Province)\",\n short: '02',\n },\n {\n long: \"P'yongyang-si (P'yongyang City)\",\n short: '01',\n },\n {\n long: 'Yanggang-do (Yanggang Province)',\n short: '10',\n },\n ],\n },\n {\n long: 'Korea, Republic of',\n short: 'KR',\n regions: [\n {\n long: \"Ch'ungch'ongbuk-do\",\n short: '43',\n },\n {\n long: \"Ch'ungch'ongnam-do\",\n short: '44',\n },\n {\n long: 'Cheju-do',\n short: '49',\n },\n {\n long: 'Chollabuk-do',\n short: '45',\n },\n {\n long: 'Chollanam-do',\n short: '46',\n },\n {\n long: \"Inch'on-Kwangyokhi\",\n short: '28',\n },\n {\n long: 'Kang-won-do',\n short: '42',\n },\n {\n long: 'Kwangju-Kwangyokshi',\n short: '29',\n },\n {\n long: 'Kyonggi-do',\n short: '41',\n },\n {\n long: 'Kyongsangbuk-do',\n short: '47',\n },\n {\n long: 'Kyongsangnam-do',\n short: '48',\n },\n {\n long: 'Pusan-Kwangyokshi',\n short: '26',\n },\n {\n long: \"Seoul-T'ukpyolshi\",\n short: '11',\n },\n {\n long: 'Sejong',\n short: '50',\n },\n {\n long: 'Taegu-Kwangyokshi',\n short: '27',\n },\n {\n long: 'Taejon-Kwangyokshi',\n short: '30',\n },\n {\n long: 'Ulsan-Kwangyokshi',\n short: '31',\n },\n ],\n },\n {\n long: 'Kosovo',\n short: 'XK',\n regions: [\n {\n long: 'Farizaj',\n short: 'FZ',\n },\n {\n long: 'Gjakova',\n short: 'GK',\n },\n {\n long: 'Gjilan',\n short: 'GL',\n },\n {\n long: 'Mitrovica',\n short: 'MI',\n },\n {\n long: 'Peja/Peć',\n short: 'PE',\n },\n {\n long: 'Pristina',\n short: 'PR',\n },\n {\n long: 'Prizren',\n short: 'PZ',\n },\n ],\n },\n {\n long: 'Kuwait',\n short: 'KW',\n regions: [\n {\n long: 'Al Aḩmadi',\n short: 'AH',\n },\n {\n long: 'Al Farwānīyah',\n short: 'FA',\n },\n {\n long: 'Al Jahrā’',\n short: 'JA',\n },\n {\n long: 'Al ‘Āşimah',\n short: 'KU',\n },\n {\n long: 'Ḩawallī',\n short: 'HA',\n },\n {\n long: 'Mubārak al Kabir',\n short: 'MU',\n },\n ],\n },\n {\n long: 'Kyrgyzstan',\n short: 'KG',\n regions: [\n {\n long: 'Batken Oblasty',\n short: 'B',\n },\n {\n long: 'Bishkek Shaary',\n short: 'GB',\n },\n {\n long: 'Chuy Oblasty (Bishkek)',\n short: 'C',\n },\n {\n long: 'Jalal-Abad Oblasty',\n short: 'J',\n },\n {\n long: 'Naryn Oblasty',\n short: 'N',\n },\n {\n long: 'Osh Oblasty',\n short: 'O',\n },\n {\n long: 'Talas Oblasty',\n short: 'T',\n },\n {\n long: 'Ysyk-Kol Oblasty (Karakol)',\n short: 'Y',\n },\n ],\n },\n {\n long: 'Laos',\n short: 'LA',\n regions: [\n {\n long: 'Attapu',\n short: 'AT',\n },\n {\n long: 'Bokèo',\n short: 'BK',\n },\n {\n long: 'Bolikhamxai',\n short: 'BL',\n },\n {\n long: 'Champasak',\n short: 'CH',\n },\n {\n long: 'Houaphan',\n short: 'HO',\n },\n {\n long: 'Khammouan',\n short: 'KH',\n },\n {\n long: 'Louang Namtha',\n short: 'LM',\n },\n {\n long: 'Louangphabang',\n short: 'LP',\n },\n {\n long: 'Oudômxai',\n short: 'OU',\n },\n {\n long: 'Phôngsali',\n short: 'PH',\n },\n {\n long: 'Salavan',\n short: 'SL',\n },\n {\n long: 'Savannakhét',\n short: 'SV',\n },\n {\n long: 'Vientiane',\n short: 'VI',\n },\n {\n long: 'Xaignabouli',\n short: 'XA',\n },\n {\n long: 'Xékong',\n short: 'XE',\n },\n {\n long: 'Xaisomboun',\n short: 'XS',\n },\n {\n long: 'Xiangkhouang',\n short: 'XI',\n },\n ],\n },\n {\n long: 'Latvia',\n short: 'LV',\n regions: [\n {\n long: 'Aglona',\n short: '001',\n },\n {\n long: 'Aizkraukle',\n short: '002',\n },\n {\n long: 'Aizpute',\n short: '003',\n },\n {\n long: 'Aknīste',\n short: '004',\n },\n {\n long: 'Aloja',\n short: '005',\n },\n {\n long: 'Alsunga',\n short: '06',\n },\n {\n long: 'Alūksne',\n short: '007',\n },\n {\n long: 'Amata',\n short: '008',\n },\n {\n long: 'Ape',\n short: '009',\n },\n {\n long: 'Auce',\n short: '010',\n },\n {\n long: 'Ādaži',\n short: '011',\n },\n {\n long: 'Babīte',\n short: '012',\n },\n {\n long: 'Baldone',\n short: '013',\n },\n {\n long: 'Baltinava',\n short: '014',\n },\n {\n long: 'Balvi',\n short: '015',\n },\n {\n long: 'Bauska',\n short: '016',\n },\n {\n long: 'Beverīna',\n short: '017',\n },\n {\n long: 'Brocēni',\n short: '018',\n },\n {\n long: 'Burtnieki',\n short: '019',\n },\n {\n long: 'Carnikava',\n short: '020',\n },\n {\n long: 'Cesvaine',\n short: '021',\n },\n {\n long: 'Cēsis',\n short: '022',\n },\n {\n long: 'Cibla',\n short: '023',\n },\n {\n long: 'Dagda',\n short: '024',\n },\n {\n long: 'Daugavpils',\n short: '025',\n },\n {\n long: 'Daugavpils (City)',\n short: 'DGV',\n },\n {\n long: 'Dobele',\n short: '026',\n },\n {\n long: 'Dundaga',\n short: '027',\n },\n {\n long: 'Durbe',\n short: '028',\n },\n {\n long: 'Engure',\n short: '029',\n },\n {\n long: 'Ērgļi',\n short: '030',\n },\n {\n long: 'Garkalne',\n short: '031',\n },\n {\n long: 'Grobiņa',\n short: '032',\n },\n {\n long: 'Gulbene',\n short: '033',\n },\n {\n long: 'Iecava',\n short: '034',\n },\n {\n long: 'Ikšķile',\n short: '035',\n },\n {\n long: 'Ilūkste',\n short: '036',\n },\n {\n long: 'Inčukalns',\n short: '037',\n },\n {\n long: 'Jaunjelgava',\n short: '038',\n },\n {\n long: 'Jaunpiebalga',\n short: '039',\n },\n {\n long: 'Jaunpils',\n short: '040',\n },\n {\n long: 'Jelgava',\n short: '041',\n },\n {\n long: 'Jelgava (City)',\n short: 'JEL',\n },\n {\n long: 'Jēkabpils',\n short: '042',\n },\n {\n long: 'Jēkabpils (City)',\n short: 'JKB',\n },\n {\n long: 'Jūrmala (City)',\n short: 'JUR',\n },\n {\n long: 'Kandava',\n short: '043',\n },\n {\n long: 'Kārsava',\n short: '044',\n },\n {\n long: 'Kocēni',\n short: '045',\n },\n {\n long: 'Koknese',\n short: '046',\n },\n {\n long: 'Krāslava',\n short: '047',\n },\n {\n long: 'Krimulda',\n short: '048',\n },\n {\n long: 'Krustpils',\n short: '049',\n },\n {\n long: 'Kuldīga',\n short: '050',\n },\n {\n long: 'Ķegums',\n short: '051',\n },\n {\n long: 'Ķekava',\n short: '052',\n },\n {\n long: 'Lielvārde',\n short: '053',\n },\n {\n long: 'Liepāja',\n short: 'LPX',\n },\n {\n long: 'Limbaži',\n short: '054',\n },\n {\n long: 'Līgatne',\n short: '055',\n },\n {\n long: 'Līvāni',\n short: '056',\n },\n {\n long: 'Lubāna',\n short: '057',\n },\n {\n long: 'Ludza',\n short: '058',\n },\n {\n long: 'Madona',\n short: '059',\n },\n {\n long: 'Mazsalaca',\n short: '060',\n },\n {\n long: 'Mālpils',\n short: '061',\n },\n {\n long: 'Mārupe',\n short: '062',\n },\n {\n long: 'Mērsrags',\n short: '063',\n },\n {\n long: 'Naukšēni',\n short: '064',\n },\n {\n long: 'Nereta',\n short: '065',\n },\n {\n long: 'Nīca',\n short: '066',\n },\n {\n long: 'Ogre',\n short: '067',\n },\n {\n long: 'Olaine',\n short: '068',\n },\n {\n long: 'Ozolnieki',\n short: '069',\n },\n {\n long: 'Pārgauja',\n short: '070',\n },\n {\n long: 'Pāvilosta',\n short: '071',\n },\n {\n long: 'Pļaviņas',\n short: '072',\n },\n {\n long: 'Preiļi',\n short: '073',\n },\n {\n long: 'Priekule',\n short: '074',\n },\n {\n long: 'Priekuļi',\n short: '075',\n },\n {\n long: 'Rauna',\n short: '076',\n },\n {\n long: 'Rēzekne',\n short: '077',\n },\n {\n long: 'Rēzekne (City)',\n short: 'REZ',\n },\n {\n long: 'Riebiņi',\n short: '078',\n },\n {\n long: 'Rīga',\n short: 'RIX',\n },\n {\n long: 'Roja',\n short: '079',\n },\n {\n long: 'Ropaži',\n short: '080',\n },\n {\n long: 'Rucava',\n short: '081',\n },\n {\n long: 'Rugāji',\n short: '082',\n },\n {\n long: 'Rundāle',\n short: '083',\n },\n {\n long: 'Rūjiena',\n short: '084',\n },\n {\n long: 'Sala',\n short: '085',\n },\n {\n long: 'Salacgrīva',\n short: '086',\n },\n {\n long: 'Salaspils',\n short: '087',\n },\n {\n long: 'Saldus',\n short: '088',\n },\n {\n long: 'Saulkrasti',\n short: '089',\n },\n {\n long: 'Sēja',\n short: '090',\n },\n {\n long: 'Sigulda',\n short: '091',\n },\n {\n long: 'Skrīveri',\n short: '092',\n },\n {\n long: 'Skrunda',\n short: '093',\n },\n {\n long: 'Smiltene',\n short: '094',\n },\n {\n long: 'Stopiņi',\n short: '095',\n },\n {\n long: 'Strenči',\n short: '096',\n },\n {\n long: 'Talsi',\n short: '097',\n },\n {\n long: 'Tērvete',\n short: '098',\n },\n {\n long: 'Tukums',\n short: '099',\n },\n {\n long: 'Vaiņode',\n short: '100',\n },\n {\n long: 'Valka',\n short: '101',\n },\n {\n long: 'Valmiera',\n short: 'VMR',\n },\n {\n long: 'Varakļāni',\n short: '102',\n },\n {\n long: 'Vārkava',\n short: '103',\n },\n {\n long: 'Vecpiebalga',\n short: '104',\n },\n {\n long: 'Vecumnieki',\n short: '105',\n },\n {\n long: 'Ventspils',\n short: '106',\n },\n {\n long: 'Ventspils (City)',\n short: 'VEN',\n },\n {\n long: 'Viesīte',\n short: '107',\n },\n {\n long: 'Viļaka',\n short: '108',\n },\n {\n long: 'Viļāni',\n short: '109',\n },\n {\n long: 'Zilupe',\n short: '110',\n },\n ],\n },\n {\n long: 'Lebanon',\n short: 'LB',\n regions: [\n {\n long: 'Aakkâr',\n short: 'AK',\n },\n {\n long: 'Baalbelk-Hermel',\n short: 'BH',\n },\n {\n long: 'Béqaa',\n short: 'BI',\n },\n {\n long: 'Beyrouth',\n short: 'BA',\n },\n {\n long: 'Liban-Nord',\n short: 'AS',\n },\n {\n long: 'Liban-Sud',\n short: 'JA',\n },\n {\n long: 'Mont-Liban',\n short: 'JL',\n },\n {\n long: 'Nabatîyé',\n short: 'NA',\n },\n ],\n },\n {\n long: 'Lesotho',\n short: 'LS',\n regions: [\n {\n long: 'Berea',\n short: 'D',\n },\n {\n long: 'Butha-Buthe',\n short: 'B',\n },\n {\n long: 'Leribe',\n short: 'C',\n },\n {\n long: 'Mafeteng',\n short: 'E',\n },\n {\n long: 'Maseru',\n short: 'A',\n },\n {\n long: 'Mohales Hoek',\n short: 'F',\n },\n {\n long: 'Mokhotlong',\n short: 'J',\n },\n {\n long: \"Qacha's Nek\",\n short: 'H',\n },\n {\n long: 'Quthing',\n short: 'G',\n },\n {\n long: 'Thaba-Tseka',\n short: 'K',\n },\n ],\n },\n {\n long: 'Liberia',\n short: 'LR',\n regions: [\n {\n long: 'Bomi',\n short: 'BM',\n },\n {\n long: 'Bong',\n short: 'BG',\n },\n {\n long: 'Gbarpolu',\n short: 'GP',\n },\n {\n long: 'Grand Bassa',\n short: 'GB',\n },\n {\n long: 'Grand Cape Mount',\n short: 'CM',\n },\n {\n long: 'Grand Gedeh',\n short: 'GG',\n },\n {\n long: 'Grand Kru',\n short: 'GK',\n },\n {\n long: 'Lofa',\n short: 'LO',\n },\n {\n long: 'Margibi',\n short: 'MG',\n },\n {\n long: 'Maryland',\n short: 'MY',\n },\n {\n long: 'Montserrado',\n short: 'MO',\n },\n {\n long: 'Nimba',\n short: 'NI',\n },\n {\n long: 'River Cess',\n short: 'RI',\n },\n {\n long: 'River Geee',\n short: 'RG',\n },\n {\n long: 'Sinoe',\n short: 'SI',\n },\n ],\n },\n {\n long: 'Libya',\n short: 'LY',\n regions: [\n {\n long: 'Al Buţnān',\n short: 'BU',\n },\n {\n long: 'Al Jabal al Akhḑar',\n short: 'JA',\n },\n {\n long: 'Al Jabal al Gharbī',\n short: 'JG',\n },\n {\n long: 'Al Jafārah',\n short: 'JI',\n },\n {\n long: 'Al Jufrah',\n short: 'JU',\n },\n {\n long: 'Al Kufrah',\n short: 'FK',\n },\n {\n long: 'Al Marj',\n short: 'MJ',\n },\n {\n long: 'Al Marquab',\n short: 'MB',\n },\n {\n long: 'Al Wāḩāt',\n short: 'WA',\n },\n {\n long: 'An Nuqaţ al Khams',\n short: 'NQ',\n },\n {\n long: 'Az Zāwiyah',\n short: 'ZA',\n },\n {\n long: 'Banghāzī',\n short: 'BA',\n },\n {\n long: 'Darnah',\n short: 'DR',\n },\n {\n long: 'Ghāt',\n short: 'GH',\n },\n {\n long: 'Mişrātah',\n short: 'MI',\n },\n {\n long: 'Murzuq',\n short: 'MQ',\n },\n {\n long: 'Nālūt',\n short: 'NL',\n },\n {\n long: 'Sabhā',\n short: 'SB',\n },\n {\n long: 'Surt',\n short: 'SR',\n },\n {\n long: 'Ţarābulus',\n short: 'TB',\n },\n {\n long: 'Yafran',\n short: 'WD',\n },\n {\n long: 'Wādī ash Shāţiʾ',\n short: 'WS',\n },\n ],\n },\n {\n long: 'Liechtenstein',\n short: 'LI',\n regions: [\n {\n long: 'Balzers',\n short: '01',\n },\n {\n long: 'Eschen',\n short: '02',\n },\n {\n long: 'Gamprin',\n short: '03',\n },\n {\n long: 'Mauren',\n short: '04',\n },\n {\n long: 'Planken',\n short: '05',\n },\n {\n long: 'Ruggell',\n short: '06',\n },\n {\n long: 'Schaan',\n short: '07',\n },\n {\n long: 'Schellenberg',\n short: '08',\n },\n {\n long: 'Triesen',\n short: '09',\n },\n {\n long: 'Triesenberg',\n short: '10',\n },\n {\n long: 'Vaduz',\n short: '11',\n },\n ],\n },\n {\n long: 'Lithuania',\n short: 'LT',\n regions: [\n {\n long: 'Alytaus',\n short: 'AL',\n },\n {\n long: 'Kauno',\n short: 'KU',\n },\n {\n long: 'Klaipėdos',\n short: 'KL',\n },\n {\n long: 'Marijampolės',\n short: 'MR',\n },\n {\n long: 'Panevėžio',\n short: 'PN',\n },\n {\n long: 'Šiaulių',\n short: 'SA',\n },\n {\n long: 'Tauragės',\n short: 'TA',\n },\n {\n long: 'Telšių',\n short: 'TE',\n },\n {\n long: 'Utenos',\n short: 'UT',\n },\n {\n long: 'Vilniaus',\n short: 'VL',\n },\n ],\n },\n {\n long: 'Luxembourg',\n short: 'LU',\n regions: [\n {\n long: 'Capellen',\n short: 'CA',\n },\n {\n long: 'Clevaux',\n short: 'CL',\n },\n {\n long: 'Diekirch',\n short: 'DI',\n },\n {\n long: 'Echternach',\n short: 'EC',\n },\n {\n long: 'Esch-sur-Alzette',\n short: 'ES',\n },\n {\n long: 'Grevenmacher',\n short: 'GR',\n },\n {\n long: 'Luxembourg',\n short: 'LU',\n },\n {\n long: 'Mersch',\n short: 'ME',\n },\n {\n long: 'Redange',\n short: 'RD',\n },\n {\n long: 'Remich',\n short: 'RM',\n },\n {\n long: 'Vianden',\n short: 'VD',\n },\n {\n long: 'Wiltz',\n short: 'WI',\n },\n ],\n },\n {\n long: 'Macao',\n short: 'MO',\n regions: [\n {\n long: 'Macao',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Macedonia, Republic of',\n short: 'MK',\n regions: [\n {\n long: 'Aračinovo',\n short: '02',\n },\n {\n long: 'Berovo',\n short: '03',\n },\n {\n long: 'Bitola',\n short: '04',\n },\n {\n long: 'Bogdanci',\n short: '05',\n },\n {\n long: 'Bogovinje',\n short: '06',\n },\n {\n long: 'Bosilovo',\n short: '07',\n },\n {\n long: 'Brvenica',\n short: '08',\n },\n {\n long: 'Centar Župa',\n short: '78',\n },\n {\n long: 'Čaška',\n short: '80',\n },\n {\n long: 'Češinovo-Obleševo',\n short: '81',\n },\n {\n long: 'Čučer Sandevo',\n short: '82',\n },\n {\n long: 'Debar',\n short: '21',\n },\n {\n long: 'Debarca',\n short: '22',\n },\n {\n long: 'Delčevo',\n short: '23',\n },\n {\n long: 'Demir Hisar',\n short: '25',\n },\n {\n long: 'Demir Kapija',\n short: '24',\n },\n {\n long: 'Doran',\n short: '26',\n },\n {\n long: 'Dolneni',\n short: '27',\n },\n {\n long: 'Gevgelija',\n short: '18',\n },\n {\n long: 'Gostivar',\n short: '19',\n },\n {\n long: 'Gradsko',\n short: '20',\n },\n {\n long: 'Ilinden',\n short: '34',\n },\n {\n long: 'Jegunovce',\n short: '35',\n },\n {\n long: 'Karbinci',\n short: '37',\n },\n {\n long: 'Kavadarci',\n short: '36',\n },\n {\n long: 'Kičevo',\n short: '40',\n },\n {\n long: 'Kočani',\n short: '42',\n },\n {\n long: 'Konče',\n short: '41',\n },\n {\n long: 'Kratovo',\n short: '43',\n },\n {\n long: 'Kriva Palanka',\n short: '44',\n },\n {\n long: 'Krivogaštani',\n short: '45',\n },\n {\n long: 'Kruševo',\n short: '46',\n },\n {\n long: 'Kumanovo',\n short: '47',\n },\n {\n long: 'Lipkovo',\n short: '48',\n },\n {\n long: 'Lozovo',\n short: '49',\n },\n {\n long: 'Makedonska Kamenica',\n short: '51',\n },\n {\n long: 'Makedonski Brod',\n short: '52',\n },\n {\n long: 'Mavrovo i Rostuša',\n short: '50',\n },\n {\n long: 'Mogila',\n short: '53',\n },\n {\n long: 'Negotino',\n short: '54',\n },\n {\n long: 'Novaci',\n short: '55',\n },\n {\n long: 'Novo Selo',\n short: '56',\n },\n {\n long: 'Ohrid',\n short: '58',\n },\n {\n long: 'Pehčevo',\n short: '60',\n },\n {\n long: 'Petrovec',\n short: '59',\n },\n {\n long: 'Plasnica',\n short: '61',\n },\n {\n long: 'Prilep',\n short: '62',\n },\n {\n long: 'Probištip',\n short: '63',\n },\n {\n long: 'Radoviš',\n short: '',\n },\n {\n long: 'Rankovce',\n short: '65',\n },\n {\n long: 'Resen',\n short: '66',\n },\n {\n long: 'Rosoman',\n short: '67',\n },\n {\n long: 'Skopje',\n short: '85',\n },\n {\n long: 'Sopište',\n short: '70',\n },\n {\n long: 'Staro Nagoričane',\n short: '71',\n },\n {\n long: 'Struga',\n short: '72',\n },\n {\n long: 'Strumica',\n short: '73',\n },\n {\n long: 'Studeničani',\n short: '74',\n },\n {\n long: 'Sveti Nikole',\n short: '69',\n },\n {\n long: 'Štip',\n short: '83',\n },\n {\n long: 'Tearce',\n short: '75',\n },\n {\n long: 'Tetovo',\n short: '76',\n },\n {\n long: 'Valandovo',\n short: '10',\n },\n {\n long: 'Vasilevo',\n short: '11',\n },\n {\n long: 'Veles',\n short: '13',\n },\n {\n long: 'Vevčani',\n short: '12',\n },\n {\n long: 'Vinica',\n short: '14',\n },\n {\n long: 'Vrapčište',\n short: '16',\n },\n {\n long: 'Zelenikovo',\n short: '32',\n },\n {\n long: 'Zrnovci',\n short: '33',\n },\n {\n long: 'Želino',\n short: '30',\n },\n ],\n },\n {\n long: 'Madagascar',\n short: 'MG',\n regions: [\n {\n long: 'Antananarivo',\n short: 'T',\n },\n {\n long: 'Antsiranana',\n short: 'D',\n },\n {\n long: 'Fianarantsoa',\n short: 'F',\n },\n {\n long: 'Mahajanga',\n short: 'M',\n },\n {\n long: 'Toamasina',\n short: 'A',\n },\n {\n long: 'Toliara',\n short: 'U',\n },\n ],\n },\n {\n long: 'Malawi',\n short: 'MW',\n regions: [\n {\n long: 'Balaka',\n short: 'BA',\n },\n {\n long: 'Blantyre',\n short: 'BL',\n },\n {\n long: 'Chikwawa',\n short: 'CK',\n },\n {\n long: 'Chiradzulu',\n short: 'CR',\n },\n {\n long: 'Chitipa',\n short: 'CT',\n },\n {\n long: 'Dedza',\n short: 'DE',\n },\n {\n long: 'Dowa',\n short: 'DO',\n },\n {\n long: 'Karonga',\n short: 'KR',\n },\n {\n long: 'Kasungu',\n short: 'KS',\n },\n {\n long: 'Likoma',\n short: 'LK',\n },\n {\n long: 'Lilongwe',\n short: 'LI',\n },\n {\n long: 'Machinga',\n short: 'MH',\n },\n {\n long: 'Mangochi',\n short: 'MG',\n },\n {\n long: 'Mchinji',\n short: 'MC',\n },\n {\n long: 'Mulanje',\n short: 'MU',\n },\n {\n long: 'Mwanza',\n short: 'MW',\n },\n {\n long: 'Mzimba',\n short: 'MZ',\n },\n {\n long: 'Nkhata Bay',\n short: 'NE',\n },\n {\n long: 'Nkhotakota',\n short: 'NB',\n },\n {\n long: 'Nsanje',\n short: 'NS',\n },\n {\n long: 'Ntcheu',\n short: 'NU',\n },\n {\n long: 'Ntchisi',\n short: 'NI',\n },\n {\n long: 'Phalombe',\n short: 'PH',\n },\n {\n long: 'Rumphi',\n short: 'RU',\n },\n {\n long: 'Salima',\n short: 'SA',\n },\n {\n long: 'Thyolo',\n short: 'TH',\n },\n {\n long: 'Zomba',\n short: 'ZO',\n },\n ],\n },\n {\n long: 'Malaysia',\n short: 'MY',\n regions: [\n {\n long: 'Johor',\n short: '01',\n },\n {\n long: 'Kedah',\n short: '02',\n },\n {\n long: 'Kelantan',\n short: '03',\n },\n {\n long: 'Melaka',\n short: '04',\n },\n {\n long: 'Negeri Sembilan',\n short: '05',\n },\n {\n long: 'Pahang',\n short: '06',\n },\n {\n long: 'Perak',\n short: '08',\n },\n {\n long: 'Perlis',\n short: '09',\n },\n {\n long: 'Pulau Pinang',\n short: '07',\n },\n {\n long: 'Sabah',\n short: '12',\n },\n {\n long: 'Sarawak',\n short: '13',\n },\n {\n long: 'Selangor',\n short: '10',\n },\n {\n long: 'Terengganu',\n short: '11',\n },\n {\n long: 'Wilayah Persekutuan (Kuala Lumpur)',\n short: '14',\n },\n {\n long: 'Wilayah Persekutuan (Labuan)',\n short: '15',\n },\n {\n long: 'Wilayah Persekutuan (Putrajaya)',\n short: '16',\n },\n ],\n },\n {\n long: 'Maldives',\n short: 'MV',\n regions: [\n {\n long: 'Alifu Alifu',\n short: '02',\n },\n {\n long: 'Alifu Dhaalu',\n short: '00',\n },\n {\n long: 'Baa',\n short: '20',\n },\n {\n long: 'Dhaalu',\n short: '17',\n },\n {\n long: 'Faafu',\n short: '14',\n },\n {\n long: 'Gaafu Alifu',\n short: '27',\n },\n {\n long: 'Gaafu Dhaalu',\n short: '28',\n },\n {\n long: 'Gnaviyani',\n short: '29',\n },\n {\n long: 'Haa Alifu',\n short: '07',\n },\n {\n long: 'Haa Dhaalu',\n short: '23',\n },\n {\n long: 'Kaafu',\n short: '26',\n },\n {\n long: 'Laamu',\n short: '05',\n },\n {\n long: 'Lhaviyani',\n short: '03',\n },\n {\n long: 'Malé',\n short: 'MLE',\n },\n {\n long: 'Meemu',\n short: '12',\n },\n {\n long: 'Noonu',\n short: '25',\n },\n {\n long: 'Raa',\n short: '13',\n },\n {\n long: 'Seenu',\n short: '01',\n },\n {\n long: 'Shaviyani',\n short: '24',\n },\n {\n long: 'Thaa',\n short: '08',\n },\n {\n long: 'Vaavu',\n short: '04',\n },\n ],\n },\n {\n long: 'Mali',\n short: 'ML',\n regions: [\n {\n long: 'Bamako',\n short: 'BKO',\n },\n {\n long: 'Gao',\n short: '7',\n },\n {\n long: 'Kayes',\n short: '1',\n },\n {\n long: 'Kidal',\n short: '8',\n },\n {\n long: 'Koulikoro',\n short: '2',\n },\n {\n long: 'Mopti',\n short: '5',\n },\n {\n long: 'Segou',\n short: '4',\n },\n {\n long: 'Sikasso',\n short: '3',\n },\n {\n long: 'Tombouctou',\n short: '6',\n },\n {\n long: 'Taoudénit',\n short: '9',\n },\n {\n long: 'Ménaka',\n short: '10',\n },\n ],\n },\n {\n long: 'Malta',\n short: 'MT',\n regions: [\n {\n long: 'Attard',\n short: '01',\n },\n {\n long: 'Balzan',\n short: '02',\n },\n {\n long: 'Birgu',\n short: '03',\n },\n {\n long: 'Birkirkara',\n short: '04',\n },\n {\n long: 'Birżebbuġa',\n short: '05',\n },\n {\n long: 'Bormla',\n short: '06',\n },\n {\n long: 'Dingli',\n short: '07',\n },\n {\n long: 'Fgura',\n short: '08',\n },\n {\n long: 'Floriana',\n short: '09',\n },\n {\n long: 'Fontana',\n short: '10',\n },\n {\n long: 'Guda',\n short: '11',\n },\n {\n long: 'Gżira',\n short: '12',\n },\n {\n long: 'Għajnsielem',\n short: '13',\n },\n {\n long: 'Għarb',\n short: '14',\n },\n {\n long: 'Għargħur',\n short: '15',\n },\n {\n long: 'Għasri',\n short: '16',\n },\n {\n long: 'Għaxaq',\n short: '17',\n },\n {\n long: 'Ħamrun',\n short: '18',\n },\n {\n long: 'Iklin',\n short: '19',\n },\n {\n long: 'Isla',\n short: '20',\n },\n {\n long: 'Kalkara',\n short: '21',\n },\n {\n long: 'Kerċem',\n short: '22',\n },\n {\n long: 'Kirkop',\n short: '23',\n },\n {\n long: 'Lija',\n short: '24',\n },\n {\n long: 'Luqa',\n short: '25',\n },\n {\n long: 'Marsa',\n short: '26',\n },\n {\n long: 'Marsaskala',\n short: '27',\n },\n {\n long: 'Marsaxlokk',\n short: '28',\n },\n {\n long: 'Mdina',\n short: '29',\n },\n {\n long: 'Mellieħa',\n short: '30',\n },\n {\n long: 'Mġarr',\n short: '31',\n },\n {\n long: 'Mosta',\n short: '32',\n },\n {\n long: 'Mqabba',\n short: '33',\n },\n {\n long: 'Msida',\n short: '34',\n },\n {\n long: 'Mtarfa',\n short: '35',\n },\n {\n long: 'Munxar',\n short: '36',\n },\n {\n long: 'Nadur',\n short: '37',\n },\n {\n long: 'Naxxar',\n short: '38',\n },\n {\n long: 'Paola',\n short: '39',\n },\n {\n long: 'Pembroke',\n short: '40',\n },\n {\n long: 'Pietà',\n short: '41',\n },\n {\n long: 'Qala',\n short: '42',\n },\n {\n long: 'Qormi',\n short: '43',\n },\n {\n long: 'Qrendi',\n short: '44',\n },\n {\n long: 'Rabat Għawdex',\n short: '45',\n },\n {\n long: 'Rabat Malta',\n short: '46',\n },\n {\n long: 'Safi',\n short: '47',\n },\n {\n long: 'San Ġiljan',\n short: '48',\n },\n {\n long: 'San Ġwann',\n short: '49',\n },\n {\n long: 'San Lawrenz',\n short: '50',\n },\n {\n long: 'San Pawl il-Baħar',\n short: '51',\n },\n {\n long: 'Sannat',\n short: '52',\n },\n {\n long: 'Santa Luċija',\n short: '53',\n },\n {\n long: 'Santa Venera',\n short: '54',\n },\n {\n long: 'Siġġiewi',\n short: '55',\n },\n {\n long: 'Sliema',\n short: '56',\n },\n {\n long: 'Swieqi',\n short: '57',\n },\n {\n long: 'Tai Xbiex',\n short: '58',\n },\n {\n long: 'Tarzien',\n short: '59',\n },\n {\n long: 'Valletta',\n short: '60',\n },\n {\n long: 'Xagħra',\n short: '61',\n },\n {\n long: 'Xewkija',\n short: '62',\n },\n {\n long: 'Xgħajra',\n short: '63',\n },\n {\n long: 'Żabbar',\n short: '64',\n },\n {\n long: 'Żebbuġ Għawde',\n short: '65',\n },\n {\n long: 'Żebbuġ Malta',\n short: '66',\n },\n {\n long: 'Żejtun',\n short: '67',\n },\n {\n long: 'Żurrieq',\n short: '68',\n },\n ],\n },\n {\n long: 'Marshall Islands',\n short: 'MH',\n regions: [\n {\n long: 'Ailinglaplap',\n short: 'ALL',\n },\n {\n long: 'Ailuk',\n short: 'ALK',\n },\n {\n long: 'Arno',\n short: 'ARN',\n },\n {\n long: 'Aur',\n short: 'AUR',\n },\n {\n long: 'Bikini and Kili',\n short: 'KIL',\n },\n {\n long: 'Ebon',\n short: 'EBO',\n },\n {\n long: 'Jabat',\n short: 'JAB',\n },\n {\n long: 'Jaluit',\n short: 'JAL',\n },\n {\n long: 'Kwajalein',\n short: 'KWA',\n },\n {\n long: 'Lae',\n short: 'LAE',\n },\n {\n long: 'Lib',\n short: 'LIB',\n },\n {\n long: 'Likiep',\n short: 'LIK',\n },\n {\n long: 'Majuro',\n short: 'MAJ',\n },\n {\n long: 'Maloelap',\n short: 'MAL',\n },\n {\n long: 'Mejit',\n short: 'MEJ',\n },\n {\n long: 'Namdrik',\n short: 'NMK',\n },\n {\n long: 'Namu',\n short: 'NMU',\n },\n {\n long: 'Rongelap',\n short: 'RON',\n },\n {\n long: 'Ujae',\n short: 'UJA',\n },\n {\n long: 'Utrik',\n short: 'UTI',\n },\n {\n long: 'Wotho',\n short: 'WTH',\n },\n {\n long: 'Wotje',\n short: 'WTJ',\n },\n ],\n },\n {\n long: 'Martinique',\n short: 'MQ',\n regions: [\n {\n long: 'Martinique',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Mauritania',\n short: 'MR',\n regions: [\n {\n long: 'Adrar',\n short: '07',\n },\n {\n long: 'Assaba',\n short: '03',\n },\n {\n long: 'Brakna',\n short: '05',\n },\n {\n long: 'Dakhlet Nouadhibou',\n short: '08',\n },\n {\n long: 'Gorgol',\n short: '04',\n },\n {\n long: 'Guidimaka',\n short: '10',\n },\n {\n long: 'Hodh Ech Chargui',\n short: '01',\n },\n {\n long: 'Hodh El Gharbi',\n short: '02',\n },\n {\n long: 'Inchiri',\n short: '12',\n },\n {\n long: 'Nouakchott Nord',\n short: '14',\n },\n {\n long: 'Nouakchott Ouest',\n short: '13',\n },\n {\n long: 'Nouakchott Sud',\n short: '15',\n },\n {\n long: 'Tagant',\n short: '09',\n },\n {\n long: 'Tiris Zemmour',\n short: '11',\n },\n {\n long: 'Trarza',\n short: '06',\n },\n ],\n },\n {\n long: 'Mauritius',\n short: 'MU',\n regions: [\n {\n long: 'Agalega Islands',\n short: 'AG',\n },\n {\n long: 'Beau Bassin-Rose Hill',\n short: 'BR',\n },\n {\n long: 'Black River',\n short: 'BL',\n },\n {\n long: 'Cargados Carajos Shoals',\n short: 'CC',\n },\n {\n long: 'Curepipe',\n short: 'CU',\n },\n {\n long: 'Flacq',\n short: 'FL',\n },\n {\n long: 'Grand Port',\n short: 'GP',\n },\n {\n long: 'Moka',\n short: 'MO',\n },\n {\n long: 'Pamplemousses',\n short: 'PA',\n },\n {\n long: 'Plaines Wilhems',\n short: 'PW',\n },\n {\n long: 'Port Louis (City)',\n short: 'PU',\n },\n {\n long: 'Port Louis',\n short: 'PL',\n },\n {\n long: 'Riviere du Rempart',\n short: 'RR',\n },\n {\n long: 'Rodrigues Island',\n short: 'RO',\n },\n {\n long: 'Savanne',\n short: 'SA',\n },\n {\n long: 'Vacoas-Phoenix',\n short: 'CP',\n },\n ],\n },\n {\n long: 'Mayotte',\n short: 'YT',\n regions: [\n {\n long: 'Dzaoudzi',\n short: '01',\n },\n {\n long: 'Pamandzi',\n short: '02',\n },\n {\n long: 'Mamoudzou',\n short: '03',\n },\n {\n long: 'Dembeni',\n short: '04',\n },\n {\n long: 'Bandrélé',\n short: '05',\n },\n {\n long: 'Kani-Kéli',\n short: '06',\n },\n {\n long: 'Bouéni',\n short: '07',\n },\n {\n long: 'Chirongui',\n short: '08',\n },\n {\n long: 'Sada',\n short: '09',\n },\n {\n long: 'Ouangani',\n short: '10',\n },\n {\n long: 'Chiconi',\n short: '11',\n },\n {\n long: 'Tsingoni',\n short: '12',\n },\n {\n long: \"M'Tsangamouji\",\n short: '13',\n },\n {\n long: 'Acoua',\n short: '14',\n },\n {\n long: 'Mtsamboro',\n short: '15',\n },\n {\n long: 'Bandraboua',\n short: '16',\n },\n {\n long: 'Koungou',\n short: '17',\n },\n ],\n },\n {\n long: 'Mexico',\n short: 'MX',\n regions: [\n {\n long: 'Aguascalientes',\n short: 'AGU',\n },\n {\n long: 'Baja California',\n short: 'BCN',\n },\n {\n long: 'Baja California Sur',\n short: 'BCS',\n },\n {\n long: 'Campeche',\n short: 'CAM',\n },\n {\n long: 'Ciudad de México',\n short: 'DIF',\n },\n {\n long: 'Chiapas',\n short: 'CHP',\n },\n {\n long: 'Chihuahua',\n short: 'CHH',\n },\n {\n long: 'Coahuila de Zaragoza',\n short: 'COA',\n },\n {\n long: 'Colima',\n short: 'COL',\n },\n {\n long: 'Durango',\n short: 'DUR',\n },\n {\n long: 'Estado de México',\n short: 'MEX',\n },\n {\n long: 'Guanajuato',\n short: 'GUA',\n },\n {\n long: 'Guerrero',\n short: 'GRO',\n },\n {\n long: 'Hidalgo',\n short: 'HID',\n },\n {\n long: 'Jalisco',\n short: 'JAL',\n },\n {\n long: 'Michoacán de Ocampo',\n short: 'MIC',\n },\n {\n long: 'Morelos',\n short: 'MOR',\n },\n {\n long: 'Nayarit',\n short: 'NAY',\n },\n {\n long: 'Nuevo León',\n short: 'NLE',\n },\n {\n long: 'Oaxaca',\n short: 'OAX',\n },\n {\n long: 'Puebla',\n short: 'PUE',\n },\n {\n long: 'Querétaro de Arteaga',\n short: 'QUE',\n },\n {\n long: 'Quintana Roo',\n short: 'ROO',\n },\n {\n long: 'San Luis Potosí',\n short: 'SLP',\n },\n {\n long: 'Sinaloa',\n short: 'SIN',\n },\n {\n long: 'Sonora',\n short: 'SON',\n },\n {\n long: 'Tabasco',\n short: 'TAB',\n },\n {\n long: 'Tamaulipas',\n short: 'TAM',\n },\n {\n long: 'Tlaxcala',\n short: 'TLA',\n },\n {\n long: 'Veracruz',\n short: 'VER',\n },\n {\n long: 'Yucatán',\n short: 'YUC',\n },\n {\n long: 'Zacatecas',\n short: 'ZAC',\n },\n ],\n },\n {\n long: 'Micronesia, Federated States of',\n short: 'FM',\n regions: [\n {\n long: 'Chuuk (Truk)',\n short: 'TRK',\n },\n {\n long: 'Kosrae',\n short: 'KSA',\n },\n {\n long: 'Pohnpei',\n short: 'PNI',\n },\n {\n long: 'Yap',\n short: 'YAP',\n },\n ],\n },\n {\n long: 'Moldova',\n short: 'MD',\n regions: [\n {\n long: 'Aenii Noi',\n short: 'AN',\n },\n {\n long: 'Basarabeasca',\n short: 'BS',\n },\n {\n long: 'Bălți',\n short: 'BA',\n },\n {\n long: 'Bender',\n short: 'BD',\n },\n {\n long: 'Briceni',\n short: 'BR',\n },\n {\n long: 'Cahul',\n short: 'CA',\n },\n {\n long: 'Cantemir',\n short: 'CT',\n },\n {\n long: 'Călărași',\n short: 'CL',\n },\n {\n long: 'Căușeni',\n short: 'CS',\n },\n {\n long: 'Chișinău',\n short: 'CU',\n },\n {\n long: 'Cimișlia',\n short: 'CM',\n },\n {\n long: 'Criuleni',\n short: 'CR',\n },\n {\n long: 'Dondușeni',\n short: 'DO',\n },\n {\n long: 'Drochia',\n short: 'DR',\n },\n {\n long: 'Dubăsari',\n short: 'DU',\n },\n {\n long: 'Edineț',\n short: 'ED',\n },\n {\n long: 'Fălești',\n short: 'FA',\n },\n {\n long: 'Florești',\n short: 'FL',\n },\n {\n long: 'Găgăuzia',\n short: 'GA',\n },\n {\n long: 'Glodeni',\n short: 'GL',\n },\n {\n long: 'Hîncești',\n short: 'HI',\n },\n {\n long: 'Ialoveni',\n short: 'IA',\n },\n {\n long: 'Leova',\n short: 'LE',\n },\n {\n long: 'Nisporeni',\n short: 'NI',\n },\n {\n long: 'Ocnița',\n short: 'OC',\n },\n {\n long: 'Orhei',\n short: 'OR',\n },\n {\n long: 'Rezina',\n short: 'RE',\n },\n {\n long: 'Rîșcani',\n short: 'RI',\n },\n {\n long: 'Sîngerei',\n short: 'SI',\n },\n {\n long: 'Soroca',\n short: 'SO',\n },\n {\n long: 'Stânga Nistrului',\n short: 'SN',\n },\n {\n long: 'Strășeni',\n short: 'ST',\n },\n {\n long: 'Șoldănești',\n short: 'SD',\n },\n {\n long: 'Ștefan Vodă',\n short: 'SV',\n },\n {\n long: 'Taraclia',\n short: 'TA',\n },\n {\n long: 'Telenești',\n short: 'TE',\n },\n {\n long: 'Ungheni',\n short: 'UN',\n },\n ],\n },\n {\n long: 'Monaco',\n short: 'MC',\n regions: [\n {\n long: 'Colle',\n short: 'CL',\n },\n {\n long: 'Condamine',\n short: 'CO',\n },\n {\n long: 'Fontvieille',\n short: 'FO',\n },\n {\n long: 'Gare',\n short: 'GA',\n },\n {\n long: 'Jardin Exotique',\n short: 'JE',\n },\n {\n long: 'Larvotto',\n short: 'LA',\n },\n {\n long: 'Malbousquet',\n short: 'MA',\n },\n {\n long: 'Monaco-Ville',\n short: 'MO',\n },\n {\n long: 'Moneghetti',\n short: 'MG',\n },\n {\n long: 'Monte-Carlo',\n short: 'MC',\n },\n {\n long: 'Moulins',\n short: 'MU',\n },\n {\n long: 'Port-Hercule',\n short: 'PH',\n },\n {\n long: 'Saint-Roman',\n short: 'SR',\n },\n {\n long: 'Sainte-Dévote',\n short: 'SD',\n },\n {\n long: 'Source',\n short: 'SO',\n },\n {\n long: 'Spélugues',\n short: 'SP',\n },\n {\n long: 'Vallon de la Rousse',\n short: 'VR',\n },\n ],\n },\n {\n long: 'Mongolia',\n short: 'MN',\n regions: [\n {\n long: 'Arhangay',\n short: '073',\n },\n {\n long: 'Bayan-Olgiy',\n short: '071',\n },\n {\n long: 'Bayanhongor',\n short: '069',\n },\n {\n long: 'Bulgan',\n short: '067',\n },\n {\n long: 'Darhan',\n short: '037',\n },\n {\n long: 'Dornod',\n short: '061',\n },\n {\n long: 'Dornogovi',\n short: '063',\n },\n {\n long: 'Dundgovi',\n short: '059',\n },\n {\n long: 'Dzavhan',\n short: '057',\n },\n {\n long: 'Govi-Altay',\n short: '065',\n },\n {\n long: 'Govi-Sumber',\n short: '064',\n },\n {\n long: 'Hovd',\n short: '043',\n },\n {\n long: 'Hovsgol',\n short: '041',\n },\n {\n long: 'Omnogovi',\n short: '053',\n },\n {\n long: 'Ovorhangay',\n short: '055',\n },\n {\n long: 'Selenge',\n short: '049',\n },\n {\n long: 'Suhbaatar',\n short: '051',\n },\n {\n long: 'Tov',\n short: '047',\n },\n {\n long: 'Ulaanbaatar',\n short: '1',\n },\n {\n long: 'Uvs',\n short: '046',\n },\n {\n long: 'Erdenet',\n short: '074',\n },\n ],\n },\n {\n long: 'Montenegro',\n short: 'ME',\n regions: [\n {\n long: 'Andrijevica',\n short: '01',\n },\n {\n long: 'Bar',\n short: '02',\n },\n {\n long: 'Berane',\n short: '03',\n },\n {\n long: 'Bijelo Polje',\n short: '04',\n },\n {\n long: 'Budva',\n short: '05',\n },\n {\n long: 'Cetinje',\n short: '06',\n },\n {\n long: 'Danilovgrad',\n short: '07',\n },\n {\n long: 'Gusinje',\n short: '22',\n },\n {\n long: 'Herceg Novi',\n short: '08',\n },\n {\n long: 'Kolašin',\n short: '09',\n },\n {\n long: 'Kotor',\n short: '10',\n },\n {\n long: 'Mojkovac',\n short: '11',\n },\n {\n long: 'Nikšić',\n short: '12',\n },\n {\n long: 'Petnica',\n short: '23',\n },\n {\n long: 'Plav',\n short: '13',\n },\n {\n long: 'Plužine',\n short: '14',\n },\n {\n long: 'Pljevlja',\n short: '15',\n },\n {\n long: 'Podgorica',\n short: '16',\n },\n {\n long: 'Rožaje',\n short: '17',\n },\n {\n long: 'Šavnik',\n short: '18',\n },\n {\n long: 'Tivat',\n short: '19',\n },\n {\n long: 'Ulcinj',\n short: '20',\n },\n {\n long: 'Žabljak',\n short: '21',\n },\n ],\n },\n {\n long: 'Montserrat',\n short: 'MS',\n regions: [\n {\n long: 'Saint Anthony',\n short: 'undefined',\n },\n {\n long: 'Saint Georges',\n short: 'undefined',\n },\n {\n long: \"Saint Peter's\",\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Morocco',\n short: 'MA',\n regions: [\n {\n long: 'Tanger-Tétouan-Al Hoceïma',\n short: 'MA-01',\n },\n {\n long: \"L'Oriental\",\n short: 'MA-02',\n },\n {\n long: 'Fès-Meknès',\n short: 'MA-03',\n },\n {\n long: 'Rabat-Salé-Kénitra',\n short: 'MA-04',\n },\n {\n long: 'Béni Mellal-Khénifra',\n short: 'MA-05',\n },\n {\n long: 'Casablanca-Settat',\n short: 'MA-06',\n },\n {\n long: 'Marrakech-Safi',\n short: 'MA-07',\n },\n {\n long: 'Drâa-Tafilalet',\n short: 'MA-08',\n },\n {\n long: 'Souss-Massa',\n short: 'MA-09',\n },\n {\n long: 'Guelmim-Oued Noun',\n short: 'MA-10',\n },\n {\n long: 'Laâyoune-Sakia El Hamra',\n short: 'MA-11',\n },\n {\n long: 'Dakhla-Oued Ed-Dahab',\n short: 'MA-12',\n },\n ],\n },\n {\n long: 'Mozambique',\n short: 'MZ',\n regions: [\n {\n long: 'Cabo Delgado',\n short: 'P',\n },\n {\n long: 'Gaza',\n short: 'G',\n },\n {\n long: 'Inhambane',\n short: 'I',\n },\n {\n long: 'Manica',\n short: 'B',\n },\n {\n long: 'Maputo',\n short: 'L',\n },\n {\n long: 'Maputo (City)',\n short: 'MPM',\n },\n {\n long: 'Nampula',\n short: 'N',\n },\n {\n long: 'Niassa',\n short: 'A',\n },\n {\n long: 'Sofala',\n short: 'S',\n },\n {\n long: 'Tete',\n short: 'T',\n },\n {\n long: 'Zambezia',\n short: 'Q',\n },\n ],\n },\n {\n long: 'Myanmar',\n short: 'MM',\n regions: [\n {\n long: 'Ayeyarwady',\n short: '07',\n },\n {\n long: 'Bago',\n short: '02',\n },\n {\n long: 'Chin',\n short: '14',\n },\n {\n long: 'Kachin',\n short: '11',\n },\n {\n long: 'Kayah',\n short: '12',\n },\n {\n long: 'Kayin',\n short: '13',\n },\n {\n long: 'Magway',\n short: '03',\n },\n {\n long: 'Mandalay',\n short: '04',\n },\n {\n long: 'Mon',\n short: '15',\n },\n {\n long: 'Nay Pyi Taw',\n short: '18',\n },\n {\n long: 'Rakhine',\n short: '16',\n },\n {\n long: 'Sagaing',\n short: '01',\n },\n {\n long: 'Shan',\n short: '17',\n },\n {\n long: 'Tanintharyi',\n short: '05',\n },\n {\n long: 'Yangon',\n short: '06',\n },\n ],\n },\n {\n long: 'Namibia',\n short: 'NA',\n regions: [\n {\n long: 'Erongo',\n short: 'ER',\n },\n {\n long: 'Hardap',\n short: 'HA',\n },\n {\n long: 'Kavango East',\n short: 'KE',\n },\n {\n long: 'Kavango West',\n short: 'KW',\n },\n {\n long: 'Karas',\n short: 'KA',\n },\n {\n long: 'Khomas',\n short: 'KH',\n },\n {\n long: 'Kunene',\n short: 'KU',\n },\n {\n long: 'Ohangwena',\n short: 'OW',\n },\n {\n long: 'Omaheke',\n short: 'OH',\n },\n {\n long: 'Omusati',\n short: 'OS',\n },\n {\n long: 'Oshana',\n short: 'ON',\n },\n {\n long: 'Oshikoto',\n short: 'OT',\n },\n {\n long: 'Otjozondjupa',\n short: 'OD',\n },\n {\n long: 'Zambezi',\n short: 'CA',\n },\n ],\n },\n {\n long: 'Nauru',\n short: 'NR',\n regions: [\n {\n long: 'Aiwo',\n short: '01',\n },\n {\n long: 'Anabar',\n short: '02',\n },\n {\n long: 'Anetan',\n short: '03',\n },\n {\n long: 'Anibare',\n short: '04',\n },\n {\n long: 'Baiti',\n short: '05',\n },\n {\n long: 'Boe',\n short: '06',\n },\n {\n long: 'Buada',\n short: '07',\n },\n {\n long: 'Denigomodu',\n short: '08',\n },\n {\n long: 'Ewa',\n short: '09',\n },\n {\n long: 'Ijuw',\n short: '10',\n },\n {\n long: 'Meneng',\n short: '11',\n },\n {\n long: 'Nibok',\n short: '12',\n },\n {\n long: 'Uaboe',\n short: '13',\n },\n {\n long: 'Yaren',\n short: '14',\n },\n ],\n },\n {\n long: 'Nepal',\n short: 'NP',\n regions: [\n {\n long: 'Province No. 1',\n short: '1',\n },\n {\n long: 'Province No. 2',\n short: '2',\n },\n {\n long: 'Bagmati Province',\n short: '3',\n },\n {\n long: 'Gandaki Province',\n short: '4',\n },\n {\n long: 'Lumbini Province',\n short: '5',\n },\n {\n long: 'Karnali Province',\n short: '6',\n },\n {\n long: 'Sudurpashchim',\n short: '7',\n },\n ],\n },\n {\n long: 'Netherlands',\n short: 'NL',\n regions: [\n {\n long: 'Drenthe',\n short: 'DR',\n },\n {\n long: 'Flevoland',\n short: 'FL',\n },\n {\n long: 'Friesland',\n short: 'FR',\n },\n {\n long: 'Gelderland',\n short: 'GE',\n },\n {\n long: 'Groningen',\n short: 'GR',\n },\n {\n long: 'Limburg',\n short: 'LI',\n },\n {\n long: 'Noord-Brabant',\n short: 'NB',\n },\n {\n long: 'Noord-Holland',\n short: 'NH',\n },\n {\n long: 'Overijssel',\n short: 'OV',\n },\n {\n long: 'Utrecht',\n short: 'UT',\n },\n {\n long: 'Zeeland',\n short: 'ZE',\n },\n {\n long: 'Zuid-Holland',\n short: 'ZH',\n },\n ],\n },\n {\n long: 'New Caledonia',\n short: 'NC',\n regions: [\n {\n long: 'Iles Loyaute',\n short: 'undefined',\n },\n {\n long: 'Nord',\n short: 'undefined',\n },\n {\n long: 'Sud',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'New Zealand',\n short: 'NZ',\n regions: [\n {\n long: 'Auckland',\n short: 'AUK',\n },\n {\n long: 'Bay of Plenty',\n short: 'BOP',\n },\n {\n long: 'Canterbury',\n short: 'CAN',\n },\n {\n long: 'Gisborne',\n short: 'GIS',\n },\n {\n long: \"Hawke's Bay\",\n short: 'HKB',\n },\n {\n long: 'Marlborough',\n short: 'MBH',\n },\n {\n long: 'Manawatu-Wanganui',\n short: 'MWT',\n },\n {\n long: 'Northland',\n short: 'NTL',\n },\n {\n long: 'Nelson',\n short: 'NSN',\n },\n {\n long: 'Otago',\n short: 'OTA',\n },\n {\n long: 'Southland',\n short: 'STL',\n },\n {\n long: 'Taranaki',\n short: 'TKI',\n },\n {\n long: 'Tasman',\n short: 'TAS',\n },\n {\n long: 'Waikato',\n short: 'WKO',\n },\n {\n long: 'Wellington',\n short: 'WGN',\n },\n {\n long: 'West Coast',\n short: 'WTC',\n },\n {\n long: 'Chatham Islands Territory',\n short: 'CIT',\n },\n ],\n },\n {\n long: 'Nicaragua',\n short: 'NI',\n regions: [\n {\n long: 'Boaco',\n short: 'BO',\n },\n {\n long: 'Carazo',\n short: 'CA',\n },\n {\n long: 'Chinandega',\n short: 'CI',\n },\n {\n long: 'Chontales',\n short: 'CO',\n },\n {\n long: 'Estelí',\n short: 'ES',\n },\n {\n long: 'Granada',\n short: 'GR',\n },\n {\n long: 'Jinotega',\n short: 'JI',\n },\n {\n long: 'León',\n short: 'LE',\n },\n {\n long: 'Madriz',\n short: 'MD',\n },\n {\n long: 'Managua',\n short: 'MN',\n },\n {\n long: 'Masaya',\n short: 'MS',\n },\n {\n long: 'Matagalpa',\n short: 'MT',\n },\n {\n long: 'Nueva Segovia',\n short: 'NS',\n },\n {\n long: 'Río San Juan',\n short: 'SJ',\n },\n {\n long: 'Rivas',\n short: 'RI',\n },\n {\n long: 'Atlántico Norte',\n short: 'AN',\n },\n {\n long: 'Atlántico Sur',\n short: 'AS',\n },\n ],\n },\n {\n long: 'Niger',\n short: 'NE',\n regions: [\n {\n long: 'Agadez',\n short: '1',\n },\n {\n long: 'Diffa',\n short: '2',\n },\n {\n long: 'Dosso',\n short: '3',\n },\n {\n long: 'Maradi',\n short: '4',\n },\n {\n long: 'Niamey',\n short: '8',\n },\n {\n long: 'Tahoua',\n short: '5',\n },\n {\n long: 'Tillabéri',\n short: '6',\n },\n {\n long: 'Zinder',\n short: '7',\n },\n ],\n },\n {\n long: 'Nigeria',\n short: 'NG',\n regions: [\n {\n long: 'Abia',\n short: 'AB',\n },\n {\n long: 'Abuja Federal Capital Territory',\n short: 'FC',\n },\n {\n long: 'Adamawa',\n short: 'AD',\n },\n {\n long: 'Akwa Ibom',\n short: 'AK',\n },\n {\n long: 'Anambra',\n short: 'AN',\n },\n {\n long: 'Bauchi',\n short: 'BA',\n },\n {\n long: 'Bayelsa',\n short: 'BY',\n },\n {\n long: 'Benue',\n short: 'BE',\n },\n {\n long: 'Borno',\n short: 'BO',\n },\n {\n long: 'Cross River',\n short: 'CR',\n },\n {\n long: 'Delta',\n short: 'DE',\n },\n {\n long: 'Ebonyi',\n short: 'EB',\n },\n {\n long: 'Edo',\n short: 'ED',\n },\n {\n long: 'Ekiti',\n short: 'EK',\n },\n {\n long: 'Enugu',\n short: 'EN',\n },\n {\n long: 'Gombe',\n short: 'GO',\n },\n {\n long: 'Imo',\n short: 'IM',\n },\n {\n long: 'Jigawa',\n short: 'JI',\n },\n {\n long: 'Kaduna',\n short: 'KD',\n },\n {\n long: 'Kano',\n short: 'KN',\n },\n {\n long: 'Katsina',\n short: 'KT',\n },\n {\n long: 'Kebbi',\n short: 'KE',\n },\n {\n long: 'Kogi',\n short: 'KO',\n },\n {\n long: 'Kwara',\n short: 'KW',\n },\n {\n long: 'Lagos',\n short: 'LA',\n },\n {\n long: 'Nassarawa',\n short: 'NA',\n },\n {\n long: 'Niger',\n short: 'NI',\n },\n {\n long: 'Ogun',\n short: 'OG',\n },\n {\n long: 'Ondo',\n short: 'ON',\n },\n {\n long: 'Osun',\n short: 'OS',\n },\n {\n long: 'Oyo',\n short: 'OY',\n },\n {\n long: 'Plateau',\n short: 'PL',\n },\n {\n long: 'Rivers',\n short: 'RI',\n },\n {\n long: 'Sokoto',\n short: 'SO',\n },\n {\n long: 'Taraba',\n short: 'TA',\n },\n {\n long: 'Yobe',\n short: 'YO',\n },\n {\n long: 'Zamfara',\n short: 'ZA',\n },\n ],\n },\n {\n long: 'Niue',\n short: 'NU',\n regions: [\n {\n long: 'Niue',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Norfolk Island',\n short: 'NF',\n regions: [\n {\n long: 'Norfolk Island',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Northern Mariana Islands',\n short: 'MP',\n regions: [\n {\n long: 'Northern Islands',\n short: 'undefined',\n },\n {\n long: 'Rota',\n short: 'undefined',\n },\n {\n long: 'Saipan',\n short: 'undefined',\n },\n {\n long: 'Tinian',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Norway',\n short: 'NO',\n regions: [\n {\n long: 'Akershus',\n short: '02',\n },\n {\n long: 'Aust-Agder',\n short: '09',\n },\n {\n long: 'Buskerud',\n short: '06',\n },\n {\n long: 'Finnmark',\n short: '20',\n },\n {\n long: 'Hedmark',\n short: '04',\n },\n {\n long: 'Hordaland',\n short: '12',\n },\n {\n long: 'Møre og Romsdal',\n short: '15',\n },\n {\n long: 'Nordland',\n short: '18',\n },\n {\n long: 'Nord-Trøndelag',\n short: '17',\n },\n {\n long: 'Oppland',\n short: '05',\n },\n {\n long: 'Oslo',\n short: '03',\n },\n {\n long: 'Rogaland',\n short: '11',\n },\n {\n long: 'Sogn og Fjordane',\n short: '14',\n },\n {\n long: 'Sør-Trøndelag',\n short: '16',\n },\n {\n long: 'Telemark',\n short: '08',\n },\n {\n long: 'Troms',\n short: '19',\n },\n {\n long: 'Vest-Agder',\n short: '10',\n },\n {\n long: 'Vestfold',\n short: '07',\n },\n {\n long: 'Østfold',\n short: '01',\n },\n {\n long: 'Jan Mayen',\n short: '22',\n },\n {\n long: 'Svalbard',\n short: '21',\n },\n ],\n },\n {\n long: 'Oman',\n short: 'OM',\n regions: [\n {\n long: 'Ad Dakhiliyah',\n short: 'DA',\n },\n {\n long: 'Al Buraymi',\n short: 'BU',\n },\n {\n long: 'Al Wusta',\n short: 'WU',\n },\n {\n long: 'Az Zahirah',\n short: 'ZA',\n },\n {\n long: 'Janub al Batinah',\n short: 'BS',\n },\n {\n long: 'Janub ash Sharqiyah',\n short: 'SS',\n },\n {\n long: 'Masqat',\n short: 'MA',\n },\n {\n long: 'Musandam',\n short: 'MU',\n },\n {\n long: 'Shamal al Batinah',\n short: 'BJ',\n },\n {\n long: 'Shamal ash Sharqiyah',\n short: 'SJ',\n },\n {\n long: 'Zufar',\n short: 'ZU',\n },\n ],\n },\n {\n long: 'Pakistan',\n short: 'PK',\n regions: [\n {\n long: 'Āzād Kashmīr',\n short: 'JK',\n },\n {\n long: 'Balōchistān',\n short: 'BA',\n },\n {\n long: 'Gilgit-Baltistān',\n short: 'GB',\n },\n {\n long: 'Islāmābād',\n short: 'IS',\n },\n {\n long: 'Khaībar Pakhtūnkhwās',\n short: 'KP',\n },\n {\n long: 'Punjāb',\n short: 'PB',\n },\n {\n long: 'Sindh',\n short: 'SD',\n },\n {\n long: 'Federally Administered Tribal Areas',\n short: 'TA',\n },\n ],\n },\n {\n long: 'Palau',\n short: 'PW',\n regions: [\n {\n long: 'Aimeliik',\n short: '002',\n },\n {\n long: 'Airai',\n short: '004',\n },\n {\n long: 'Angaur',\n short: '010',\n },\n {\n long: 'Hatobohei',\n short: '050',\n },\n {\n long: 'Kayangel',\n short: '100',\n },\n {\n long: 'Koror',\n short: '150',\n },\n {\n long: 'Melekeok',\n short: '212',\n },\n {\n long: 'Ngaraard',\n short: '214',\n },\n {\n long: 'Ngarchelong',\n short: '218',\n },\n {\n long: 'Ngardmau',\n short: '222',\n },\n {\n long: 'Ngatpang',\n short: '224',\n },\n {\n long: 'Ngchesar',\n short: '226',\n },\n {\n long: 'Ngeremlengui',\n short: '227',\n },\n {\n long: 'Ngiwal',\n short: '228',\n },\n {\n long: 'Peleliu',\n short: '350',\n },\n {\n long: 'Sonsoral',\n short: '370',\n },\n ],\n },\n {\n long: 'Palestine, State of',\n short: 'PS',\n regions: [\n {\n long: 'Ak Khalīl',\n short: 'HBN',\n },\n {\n long: 'Al Quds',\n short: 'JEM',\n },\n {\n long: 'Arīḩā wal Aghwār',\n short: 'JRH',\n },\n {\n long: 'Bayt Laḩm',\n short: 'BTH',\n },\n {\n long: 'Dayr al Balaḩ',\n short: 'DEB',\n },\n {\n long: 'Ghazzah',\n short: 'GZA',\n },\n {\n long: 'Janīn',\n short: 'JEN',\n },\n {\n long: 'Khān Yūnis',\n short: 'KYS',\n },\n {\n long: 'Nāblus',\n short: 'NBS',\n },\n {\n long: 'Qalqīyah',\n short: 'QQA',\n },\n {\n long: 'Rafaḩ',\n short: 'RFH',\n },\n {\n long: 'Rām Allāh wal Bīrah',\n short: 'RBH',\n },\n {\n long: 'Salfīt',\n short: 'SLT',\n },\n {\n long: 'Shamāl Ghazzah',\n short: 'NGZ',\n },\n {\n long: 'Ţūbās',\n short: 'TBS',\n },\n {\n long: 'Ţūlkarm',\n short: 'TKM',\n },\n ],\n },\n {\n long: 'Panama',\n short: 'PA',\n regions: [\n {\n long: 'Bocas del Toro',\n short: '1',\n },\n {\n long: 'Chiriquí',\n short: '4',\n },\n {\n long: 'Coclé',\n short: '2',\n },\n {\n long: 'Colón',\n short: '3',\n },\n {\n long: 'Darién',\n short: '5',\n },\n {\n long: 'Emberá',\n short: 'EM',\n },\n {\n long: 'Herrera',\n short: '6',\n },\n {\n long: 'Kuna Yala',\n short: 'KY',\n },\n {\n long: 'Los Santos',\n short: '7',\n },\n {\n long: 'Ngäbe-Buglé',\n short: 'NB',\n },\n {\n long: 'Panamá',\n short: '8',\n },\n {\n long: 'Panamá Oeste',\n short: '10',\n },\n {\n long: 'Veraguas',\n short: '9',\n },\n ],\n },\n {\n long: 'Papua New Guinea',\n short: 'PG',\n regions: [\n {\n long: 'Bougainville',\n short: 'NSB',\n },\n {\n long: 'Central',\n short: 'CPM',\n },\n {\n long: 'Chimbu',\n short: 'CPK',\n },\n {\n long: 'East New Britain',\n short: 'EBR',\n },\n {\n long: 'East Sepik',\n short: 'ESW',\n },\n {\n long: 'Eastern Highlands',\n short: 'EHG',\n },\n {\n long: 'Enga',\n short: 'EPW',\n },\n {\n long: 'Gulf',\n short: 'GPK',\n },\n {\n long: 'Hela',\n short: 'HLA',\n },\n {\n long: 'Jiwaka',\n short: 'JWK',\n },\n {\n long: 'Madang',\n short: 'MOM',\n },\n {\n long: 'Manus',\n short: 'MRL',\n },\n {\n long: 'Milne Bay',\n short: 'MBA',\n },\n {\n long: 'Morobe',\n short: 'MPL',\n },\n {\n long: 'Port Moresby',\n short: 'NCD',\n },\n {\n long: 'New Ireland',\n short: 'NIK',\n },\n {\n long: 'Northern',\n short: 'NPP',\n },\n {\n long: 'Southern Highlands',\n short: 'SHM',\n },\n {\n long: 'West New Britain',\n short: 'WBK',\n },\n {\n long: 'West Sepik',\n short: 'SAN',\n },\n {\n long: 'Western',\n short: 'WPD',\n },\n {\n long: 'Western Highlands',\n short: 'WHM',\n },\n ],\n },\n {\n long: 'Paraguay',\n short: 'PY',\n regions: [\n {\n long: 'Alto Paraguay',\n short: '16',\n },\n {\n long: 'Alto Parana',\n short: '10',\n },\n {\n long: 'Amambay',\n short: '13',\n },\n {\n long: 'Asuncion',\n short: 'ASU',\n },\n {\n long: 'Caaguazu',\n short: '5',\n },\n {\n long: 'Caazapa',\n short: '6',\n },\n {\n long: 'Canindeyu',\n short: '14',\n },\n {\n long: 'Central',\n short: '11',\n },\n {\n long: 'Concepcion',\n short: '1',\n },\n {\n long: 'Cordillera',\n short: '3',\n },\n {\n long: 'Boqueron',\n short: '17',\n },\n {\n long: 'Guaira',\n short: '4',\n },\n {\n long: 'Itapua',\n short: '7',\n },\n {\n long: 'Misiones',\n short: '8',\n },\n {\n long: 'Neembucu',\n short: '12',\n },\n {\n long: 'Paraguari',\n short: '9',\n },\n {\n long: 'Presidente Hayes',\n short: '15',\n },\n {\n long: 'San Pedro',\n short: '2',\n },\n ],\n },\n {\n long: 'Peru',\n short: 'PE',\n regions: [\n {\n long: 'Amazonas',\n short: 'AMA',\n },\n {\n long: 'Ancash',\n short: 'ANC',\n },\n {\n long: 'Apurimac',\n short: 'APU',\n },\n {\n long: 'Arequipa',\n short: 'ARE',\n },\n {\n long: 'Ayacucho',\n short: 'AYA',\n },\n {\n long: 'Cajamarca',\n short: 'CAJ',\n },\n {\n long: 'Callao',\n short: 'CAL',\n },\n {\n long: 'Cusco',\n short: 'CUS',\n },\n {\n long: 'Huancavelica',\n short: 'HUV',\n },\n {\n long: 'Huanuco',\n short: 'HUC',\n },\n {\n long: 'Ica',\n short: 'ICA',\n },\n {\n long: 'Junin',\n short: 'JUN',\n },\n {\n long: 'La Libertad',\n short: 'LAL',\n },\n {\n long: 'Lambayeque',\n short: 'LAM',\n },\n {\n long: 'Lima',\n short: 'LIM',\n },\n {\n long: 'Loreto',\n short: 'LOR',\n },\n {\n long: 'Madre de Dios',\n short: 'MDD',\n },\n {\n long: 'Moquegua',\n short: 'MOQ',\n },\n {\n long: 'Municipalidad Metropolitana de Lima',\n short: 'LMA',\n },\n {\n long: 'Pasco',\n short: 'PAS',\n },\n {\n long: 'Piura',\n short: 'PIU',\n },\n {\n long: 'Puno',\n short: 'PUN',\n },\n {\n long: 'San Martin',\n short: 'SAM',\n },\n {\n long: 'Tacna',\n short: 'TAC',\n },\n {\n long: 'Tumbes',\n short: 'TUM',\n },\n {\n long: 'Ucayali',\n short: 'UCA',\n },\n ],\n },\n {\n long: 'Philippines',\n short: 'PH',\n regions: [\n {\n long: 'Abra',\n short: 'ABR',\n },\n {\n long: 'Agusan del Norte',\n short: 'AGN',\n },\n {\n long: 'Agusan del Sur',\n short: 'AGS',\n },\n {\n long: 'Aklan',\n short: 'AKL',\n },\n {\n long: 'Albay',\n short: 'ALB',\n },\n {\n long: 'Antique',\n short: 'ANT',\n },\n {\n long: 'Apayao',\n short: 'APA',\n },\n {\n long: 'Aurora',\n short: 'AUR',\n },\n {\n long: 'Basilan',\n short: 'BAS',\n },\n {\n long: 'Bataan',\n short: 'BAN',\n },\n {\n long: 'Batanes',\n short: 'BTN',\n },\n {\n long: 'Batangas',\n short: 'BTG',\n },\n {\n long: 'Benguet',\n short: 'BEN',\n },\n {\n long: 'Biliran',\n short: 'BIL',\n },\n {\n long: 'Bohol',\n short: 'BOH',\n },\n {\n long: 'Bukidnon',\n short: 'BUK',\n },\n {\n long: 'Bulacan',\n short: 'BUL',\n },\n {\n long: 'Cagayan',\n short: 'CAG',\n },\n {\n long: 'Camarines Norte',\n short: 'CAN',\n },\n {\n long: 'Camarines Sur',\n short: 'CAS',\n },\n {\n long: 'Camiguin',\n short: 'CAM',\n },\n {\n long: 'Capiz',\n short: 'CAP',\n },\n {\n long: 'Catanduanes',\n short: 'CAT',\n },\n {\n long: 'Cavite',\n short: 'CAV',\n },\n {\n long: 'Cebu',\n short: 'CEB',\n },\n {\n long: 'Compostela',\n short: 'COM',\n },\n {\n long: 'Cotabato',\n short: 'NCO',\n },\n {\n long: 'Davao del Norte',\n short: 'DAV',\n },\n {\n long: 'Davao del Sur',\n short: 'DAS',\n },\n {\n long: 'Davao Occidental',\n short: 'DVO',\n },\n {\n long: 'Davao Oriental',\n short: 'DAO',\n },\n {\n long: 'Dinagat Islands',\n short: 'DIN',\n },\n {\n long: 'Eastern Samar',\n short: 'EAS',\n },\n {\n long: 'Guimaras',\n short: 'GUI',\n },\n {\n long: 'Ifugao',\n short: 'IFU',\n },\n {\n long: 'Ilocos Norte',\n short: 'ILN',\n },\n {\n long: 'Ilocos Sur',\n short: 'ILS',\n },\n {\n long: 'Iloilo',\n short: 'ILI',\n },\n {\n long: 'Isabela',\n short: 'ISA',\n },\n {\n long: 'Kalinga',\n short: 'KAL',\n },\n {\n long: 'La Union',\n short: 'LUN',\n },\n {\n long: 'Laguna',\n short: 'LAG',\n },\n {\n long: 'Lanao del Norte',\n short: 'LAN',\n },\n {\n long: 'Lanao del Sur',\n short: 'LAS',\n },\n {\n long: 'Leyte',\n short: 'LEY',\n },\n {\n long: 'Maguindanao',\n short: 'MAG',\n },\n {\n long: 'Masbate',\n short: 'MAS',\n },\n {\n long: 'Metro Manila',\n short: '00',\n },\n {\n long: 'Mindoro Occidental',\n short: 'MDC',\n },\n {\n long: 'Mindoro Oriental',\n short: 'MDR',\n },\n {\n long: 'Misamis Occidental',\n short: 'MSC',\n },\n {\n long: 'Misamis Oriental',\n short: 'MSR',\n },\n {\n long: 'Mountain Province',\n short: 'MOU',\n },\n {\n long: 'Negros Occidental',\n short: 'NEC',\n },\n {\n long: 'Negros Oriental',\n short: 'NER',\n },\n {\n long: 'Northern Samar',\n short: 'NSA',\n },\n {\n long: 'Nueva Ecija',\n short: 'NUE',\n },\n {\n long: 'Nueva Vizcaya',\n short: 'NUV',\n },\n {\n long: 'Palawan',\n short: 'PLW',\n },\n {\n long: 'Pampanga',\n short: 'PAM',\n },\n {\n long: 'Pangasinan',\n short: 'PAN',\n },\n {\n long: 'Quezon',\n short: 'QUE',\n },\n {\n long: 'Quirino',\n short: 'QUI',\n },\n {\n long: 'Rizal',\n short: 'RIZ',\n },\n {\n long: 'Romblon',\n short: 'ROM',\n },\n {\n long: 'Samar',\n short: 'WSA',\n },\n {\n long: 'Sarangani',\n short: 'SAR',\n },\n {\n long: 'Siquijor',\n short: 'SIG',\n },\n {\n long: 'Sorsogon',\n short: 'SOR',\n },\n {\n long: 'Southern Leyte',\n short: 'SLE',\n },\n {\n long: 'Sultan Kudarat',\n short: 'AUK',\n },\n {\n long: 'Sulu',\n short: 'SLU',\n },\n {\n long: 'Surigao del Norte',\n short: 'SUN',\n },\n {\n long: 'Surigao del Sur',\n short: 'SUR',\n },\n {\n long: 'Tarlac',\n short: 'TAR',\n },\n {\n long: 'Tawi-Tawi',\n short: 'TAW',\n },\n {\n long: 'Zambales',\n short: 'ZMB',\n },\n {\n long: 'Zamboanga del Norte',\n short: 'ZAN',\n },\n {\n long: 'Zamboanga del Sur',\n short: 'ZAS',\n },\n {\n long: 'Zamboanga Sibugay',\n short: 'ZSI',\n },\n ],\n },\n {\n long: 'Pitcairn',\n short: 'PN',\n regions: [\n {\n long: 'Pitcairn Islands',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Poland',\n short: 'PL',\n regions: [\n {\n long: 'Dolnośląskie',\n short: 'DS',\n },\n {\n long: 'Kujawsko-pomorskie',\n short: 'KP',\n },\n {\n long: 'Łódzkie',\n short: 'LD',\n },\n {\n long: 'Lubelskie',\n short: 'LU',\n },\n {\n long: 'Lubuskie',\n short: 'LB',\n },\n {\n long: 'Małopolskie',\n short: 'MA',\n },\n {\n long: 'Mazowieckie',\n short: 'MZ',\n },\n {\n long: 'Opolskie',\n short: 'OP',\n },\n {\n long: 'Podkarpackie',\n short: 'PK',\n },\n {\n long: 'Podlaskie',\n short: 'PD',\n },\n {\n long: 'Pomorskie',\n short: 'PM',\n },\n {\n long: 'Śląskie',\n short: 'SL',\n },\n {\n long: 'Świętokrzyskie',\n short: 'SK',\n },\n {\n long: 'Warmińsko-mazurskie',\n short: 'WN',\n },\n {\n long: 'Wielkopolskie',\n short: 'WP',\n },\n {\n long: 'Zachodniopomorskie',\n short: 'ZP',\n },\n ],\n },\n {\n long: 'Portugal',\n short: 'PT',\n regions: [\n {\n long: 'Açores',\n short: '20',\n },\n {\n long: 'Aveiro',\n short: '01',\n },\n {\n long: 'Beja',\n short: '02',\n },\n {\n long: 'Braga',\n short: '03',\n },\n {\n long: 'Bragança',\n short: '04',\n },\n {\n long: 'Castelo Branco',\n short: '05',\n },\n {\n long: 'Coimbra',\n short: '06',\n },\n {\n long: 'Évora',\n short: '07',\n },\n {\n long: 'Faro',\n short: '08',\n },\n {\n long: 'Guarda',\n short: '09',\n },\n {\n long: 'Leiria',\n short: '10',\n },\n {\n long: 'Lisboa',\n short: '11',\n },\n {\n long: 'Madeira',\n short: '30',\n },\n {\n long: 'Portalegre',\n short: '12',\n },\n {\n long: 'Porto',\n short: '13',\n },\n {\n long: 'Santarém',\n short: '14',\n },\n {\n long: 'Setúbal',\n short: '15',\n },\n {\n long: 'Viana do Castelo',\n short: '16',\n },\n {\n long: 'Vila Real',\n short: '17',\n },\n {\n long: 'Viseu',\n short: '18',\n },\n ],\n },\n {\n long: 'Puerto Rico',\n short: 'PR',\n regions: [\n {\n long: 'Adjuntas',\n short: 'undefined',\n },\n {\n long: 'Aguada',\n short: 'undefined',\n },\n {\n long: 'Aguadilla',\n short: 'undefined',\n },\n {\n long: 'Aguas Buenas',\n short: 'undefined',\n },\n {\n long: 'Aibonito',\n short: 'undefined',\n },\n {\n long: 'Anasco',\n short: 'undefined',\n },\n {\n long: 'Arecibo',\n short: 'undefined',\n },\n {\n long: 'Arroyo',\n short: 'undefined',\n },\n {\n long: 'Barceloneta',\n short: 'undefined',\n },\n {\n long: 'Barranquitas',\n short: 'undefined',\n },\n {\n long: 'Bayamon',\n short: 'undefined',\n },\n {\n long: 'Cabo Rojo',\n short: 'undefined',\n },\n {\n long: 'Caguas',\n short: 'undefined',\n },\n {\n long: 'Camuy',\n short: 'undefined',\n },\n {\n long: 'Canovanas',\n short: 'undefined',\n },\n {\n long: 'Carolina',\n short: 'undefined',\n },\n {\n long: 'Cat',\n short: 'undefined',\n },\n {\n long: 'Ceiba',\n short: 'undefined',\n },\n {\n long: 'Ciales',\n short: 'undefined',\n },\n {\n long: 'Cidra',\n short: 'undefined',\n },\n {\n long: 'Coamo',\n short: 'undefined',\n },\n {\n long: 'Comerio',\n short: 'undefined',\n },\n {\n long: 'Corozal',\n short: 'undefined',\n },\n {\n long: 'Culebra',\n short: 'undefined',\n },\n {\n long: 'Dorado',\n short: 'undefined',\n },\n {\n long: 'Fajardo',\n short: 'undefined',\n },\n {\n long: 'Florida',\n short: 'undefined',\n },\n {\n long: 'Guanica',\n short: 'undefined',\n },\n {\n long: 'Guayama',\n short: 'undefined',\n },\n {\n long: 'Guayanilla',\n short: 'undefined',\n },\n {\n long: 'Guaynabo',\n short: 'undefined',\n },\n {\n long: 'Gurabo',\n short: 'undefined',\n },\n {\n long: 'Hatillo',\n short: 'undefined',\n },\n {\n long: 'Hormigueros',\n short: 'undefined',\n },\n {\n long: 'Humacao',\n short: 'undefined',\n },\n {\n long: 'Isabe',\n short: 'undefined',\n },\n {\n long: 'Juana Diaz',\n short: 'undefined',\n },\n {\n long: 'Juncos',\n short: 'undefined',\n },\n {\n long: 'Lajas',\n short: 'undefined',\n },\n {\n long: 'Lares',\n short: 'undefined',\n },\n {\n long: 'Las Marias',\n short: 'undefined',\n },\n {\n long: 'Las oiza',\n short: 'undefined',\n },\n {\n long: 'Luquillo',\n short: 'undefined',\n },\n {\n long: 'Manati',\n short: 'undefined',\n },\n {\n long: 'Maricao',\n short: 'undefined',\n },\n {\n long: 'Maunabo',\n short: 'undefined',\n },\n {\n long: 'Mayaguez',\n short: 'undefined',\n },\n {\n long: 'Moca',\n short: 'undefined',\n },\n {\n long: 'Morovis',\n short: 'undefined',\n },\n {\n long: 'Naguabo',\n short: 'undefined',\n },\n {\n long: 'Naranjito',\n short: 'undefined',\n },\n {\n long: 'Orocovis',\n short: 'undefined',\n },\n {\n long: 'Patillas',\n short: 'undefined',\n },\n {\n long: 'Penuelas',\n short: 'undefined',\n },\n {\n long: 'Ponce',\n short: 'undefined',\n },\n {\n long: 'Quebradillas',\n short: 'undefined',\n },\n {\n long: 'Rincon',\n short: 'undefined',\n },\n {\n long: 'Rio Grande',\n short: 'undefined',\n },\n {\n long: 'Sabana linas',\n short: 'undefined',\n },\n {\n long: 'San German',\n short: 'undefined',\n },\n {\n long: 'San Juan',\n short: 'undefined',\n },\n {\n long: 'San Lorenzo',\n short: 'undefined',\n },\n {\n long: 'San Sebastian',\n short: 'undefined',\n },\n {\n long: 'Santa Isabel',\n short: 'undefined',\n },\n {\n long: 'Toa Alta',\n short: 'undefined',\n },\n {\n long: 'Toa Baja',\n short: 'undefined',\n },\n {\n long: 'Trujillo Alto',\n short: 'undefined',\n },\n {\n long: 'Utuado',\n short: 'undefined',\n },\n {\n long: 'Vega Alta',\n short: 'undefined',\n },\n {\n long: 'Vega ues',\n short: 'undefined',\n },\n {\n long: 'Villalba',\n short: 'undefined',\n },\n {\n long: 'Yabucoa',\n short: 'undefined',\n },\n {\n long: 'Yauco',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Qatar',\n short: 'QA',\n regions: [\n {\n long: 'Ad Dawḩah',\n short: 'DA',\n },\n {\n long: 'Al Khawr wa adh Dhakhīrah',\n short: 'KH',\n },\n {\n long: 'Al Wakrah',\n short: 'WA',\n },\n {\n long: 'Ar Rayyān',\n short: 'RA',\n },\n {\n long: 'Ash Shamāl',\n short: 'MS',\n },\n {\n long: 'Az̧ Za̧`āyin',\n short: 'ZA',\n },\n {\n long: 'Umm Şalāl',\n short: 'US',\n },\n ],\n },\n {\n long: 'Réunion',\n short: 'RE',\n regions: [\n {\n long: 'Réunion',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Romania',\n short: 'RO',\n regions: [\n {\n long: 'Alba',\n short: 'AB',\n },\n {\n long: 'Arad',\n short: 'AR',\n },\n {\n long: 'Arges',\n short: 'AG',\n },\n {\n long: 'Bacau',\n short: 'BC',\n },\n {\n long: 'Bihor',\n short: 'BH',\n },\n {\n long: 'Bistrita-Nasaud',\n short: 'BN',\n },\n {\n long: 'Botosani',\n short: 'BT',\n },\n {\n long: 'Braila',\n short: 'BR',\n },\n {\n long: 'Brasov',\n short: 'BV',\n },\n {\n long: 'Bucuresti',\n short: 'B',\n },\n {\n long: 'Buzau',\n short: 'BZ',\n },\n {\n long: 'Calarasi',\n short: 'CL',\n },\n {\n long: 'Caras-Severin',\n short: 'CS',\n },\n {\n long: 'Cluj',\n short: 'CJ',\n },\n {\n long: 'Constanta',\n short: 'CT',\n },\n {\n long: 'Covasna',\n short: 'CV',\n },\n {\n long: 'Dambovita',\n short: 'DB',\n },\n {\n long: 'Dolj',\n short: 'DJ',\n },\n {\n long: 'Galati',\n short: 'GL',\n },\n {\n long: 'Giurgiu',\n short: 'GR',\n },\n {\n long: 'Gorj',\n short: 'GJ',\n },\n {\n long: 'Harghita',\n short: 'HR',\n },\n {\n long: 'Hunedoara',\n short: 'HD',\n },\n {\n long: 'Ialomita',\n short: 'IL',\n },\n {\n long: 'Iasi',\n short: 'IS',\n },\n {\n long: 'Maramures',\n short: 'MM',\n },\n {\n long: 'Mehedinti',\n short: 'MH',\n },\n {\n long: 'Mures',\n short: 'MS',\n },\n {\n long: 'Neamt',\n short: 'NT',\n },\n {\n long: 'Olt',\n short: 'OT',\n },\n {\n long: 'Prahova',\n short: 'PH',\n },\n {\n long: 'Salaj',\n short: 'SJ',\n },\n {\n long: 'Satu Mare',\n short: 'SM',\n },\n {\n long: 'Sibiu',\n short: 'SB',\n },\n {\n long: 'Suceava',\n short: 'SV',\n },\n {\n long: 'Teleorman',\n short: 'TR',\n },\n {\n long: 'Timis',\n short: 'TM',\n },\n {\n long: 'Tulcea',\n short: 'TL',\n },\n {\n long: 'Valcea',\n short: 'VL',\n },\n {\n long: 'Vaslui',\n short: 'VS',\n },\n {\n long: 'Vrancea',\n short: 'VN',\n },\n ],\n },\n {\n long: 'Russian Federation',\n short: 'RU',\n regions: [\n {\n long: 'Republic of Adygea',\n short: 'AD',\n },\n {\n long: 'Republic of Altai (Gorno-Altaysk)',\n short: 'AL',\n },\n {\n long: 'Altai Krai',\n short: 'ALT',\n },\n {\n long: 'Amur Oblast',\n short: 'AMU',\n },\n {\n long: 'Arkhangelsk Oblast',\n short: 'ARK',\n },\n {\n long: 'Astrakhan Oblast',\n short: 'AST',\n },\n {\n long: 'Republic of Bashkortostan',\n short: 'BA',\n },\n {\n long: 'Belgorod Oblast',\n short: 'BEL',\n },\n {\n long: 'Bryansk Oblast',\n short: 'BRY',\n },\n {\n long: 'Republic of Buryatia',\n short: 'BU',\n },\n {\n long: 'Chechen Republic',\n short: 'CE',\n },\n {\n long: 'Chelyabinsk Oblast',\n short: 'CHE',\n },\n {\n long: 'Chukotka Autonomous Okrug',\n short: 'CHU',\n },\n {\n long: 'Chuvash Republic',\n short: 'CU',\n },\n {\n long: 'Republic of Dagestan',\n short: 'DA',\n },\n {\n long: 'Republic of Ingushetia',\n short: 'IN',\n },\n {\n long: 'Irkutsk Oblast',\n short: 'IRK',\n },\n {\n long: 'Ivanovo Oblast',\n short: 'IVA',\n },\n {\n long: 'Jewish Autonomous Oblast',\n short: 'JEW',\n },\n {\n long: 'Kabardino-Balkar Republic',\n short: 'KB',\n },\n {\n long: 'Kaliningrad Oblast',\n short: 'KLN',\n },\n {\n long: 'Republic of Kalmykia',\n short: 'KL',\n },\n {\n long: 'Kaluga Oblast',\n short: 'KLU',\n },\n {\n long: 'Kamchatka Krai',\n short: 'KAM',\n },\n {\n long: 'Karachay-Cherkess Republic',\n short: 'KC',\n },\n {\n long: 'Republic of Karelia',\n short: 'KR',\n },\n {\n long: 'Khabarovsk Krai',\n short: 'KHA',\n },\n {\n long: 'Republic of Khakassia',\n short: 'KK',\n },\n {\n long: 'Khanty-Mansi Autonomous Okrug - Yugra',\n short: 'KHM',\n },\n {\n long: 'Kemerovo Oblast',\n short: 'KEM',\n },\n {\n long: 'Kirov Oblast',\n short: 'KIR',\n },\n {\n long: 'Komi Republic',\n short: 'KO',\n },\n {\n long: 'Kostroma Oblast',\n short: 'KOS',\n },\n {\n long: 'Krasnodar Krai',\n short: 'KDA',\n },\n {\n long: 'Krasnoyarsk Krai',\n short: 'KYA',\n },\n {\n long: 'Kurgan Oblast',\n short: 'KGN',\n },\n {\n long: 'Kursk Oblast',\n short: 'KRS',\n },\n {\n long: 'Leningrad Oblast',\n short: 'LEN',\n },\n {\n long: 'Lipetsk Oblast',\n short: 'LIP',\n },\n {\n long: 'Magadan Oblast',\n short: 'MAG',\n },\n {\n long: 'Mari El Republic',\n short: 'ME',\n },\n {\n long: 'Republic of Mordovia',\n short: 'MO',\n },\n {\n long: 'Moscow Oblast',\n short: 'MOS',\n },\n {\n long: 'Moscow',\n short: 'MOW',\n },\n {\n long: 'Murmansk Oblast',\n short: 'MU',\n },\n {\n long: 'Nenets Autonomous Okrug',\n short: 'NEN',\n },\n {\n long: 'Nizhny Novgorod Oblast',\n short: 'NIZ',\n },\n {\n long: 'Novgorod Oblast',\n short: 'NGR',\n },\n {\n long: 'Novosibirsk Oblast',\n short: 'NVS',\n },\n {\n long: 'Omsk Oblast',\n short: 'OMS',\n },\n {\n long: 'Orenburg Oblast',\n short: 'ORE',\n },\n {\n long: 'Oryol Oblast',\n short: 'ORL',\n },\n {\n long: 'Penza Oblast',\n short: 'PNZ',\n },\n {\n long: 'Perm Krai',\n short: 'PER',\n },\n {\n long: 'Primorsky Krai',\n short: 'PRI',\n },\n {\n long: 'Pskov Oblast',\n short: 'PSK',\n },\n {\n long: 'Rostov Oblast',\n short: 'ROS',\n },\n {\n long: 'Ryazan Oblast',\n short: 'RYA',\n },\n {\n long: 'Saint Petersburg',\n short: 'SPE',\n },\n {\n long: 'Sakha (Yakutia) Republic',\n short: 'SA',\n },\n {\n long: 'Sakhalin Oblast',\n short: 'SAK',\n },\n {\n long: 'Samara Oblast',\n short: 'SAM',\n },\n {\n long: 'Saratov Oblast',\n short: 'SAR',\n },\n {\n long: 'Republic of North Ossetia-Alania',\n short: 'NOA',\n },\n {\n long: 'Smolensk Oblast',\n short: 'SMO',\n },\n {\n long: 'Stavropol Krai',\n short: 'STA',\n },\n {\n long: 'Sverdlovsk Oblast',\n short: 'SVE',\n },\n {\n long: 'Tambov Oblast',\n short: 'TAM',\n },\n {\n long: 'Republic of Tatarstan',\n short: 'TA',\n },\n {\n long: 'Tomsk Oblast',\n short: 'TOM',\n },\n {\n long: 'Tuva Republic',\n short: 'TU',\n },\n {\n long: 'Tula Oblast',\n short: 'TUL',\n },\n {\n long: 'Tver Oblast',\n short: 'TVE',\n },\n {\n long: 'Tyumen Oblast',\n short: 'TYU',\n },\n {\n long: 'Udmurt Republic',\n short: 'UD',\n },\n {\n long: 'Ulyanovsk Oblast',\n short: 'ULY',\n },\n {\n long: 'Vladimir Oblast',\n short: 'VLA',\n },\n {\n long: 'Volgograd Oblast',\n short: 'VGG',\n },\n {\n long: 'Vologda Oblast',\n short: 'VLG',\n },\n {\n long: 'Voronezh Oblast',\n short: 'VOR',\n },\n {\n long: 'Yamalo-Nenets Autonomous Okrug',\n short: 'YAN',\n },\n {\n long: 'Yaroslavl Oblast',\n short: 'YAR',\n },\n {\n long: 'Zabaykalsky Krai',\n short: 'ZAB',\n },\n ],\n },\n {\n long: 'Rwanda',\n short: 'RW',\n regions: [\n {\n long: 'Kigali',\n short: '01',\n },\n {\n long: 'Eastern',\n short: '02',\n },\n {\n long: 'Northern',\n short: '03',\n },\n {\n long: 'Western',\n short: '04',\n },\n {\n long: 'Southern',\n short: '05',\n },\n ],\n },\n {\n long: 'Saint Barthélemy',\n short: 'BL',\n regions: [\n {\n long: 'Au Vent',\n short: '02',\n },\n {\n long: 'Sous le Vent',\n short: '01',\n },\n ],\n },\n {\n long: 'Saint Helena, Ascension and Tristan da Cunha',\n short: 'SH',\n regions: [\n {\n long: 'Ascension',\n short: 'AC',\n },\n {\n long: 'Saint Helena',\n short: 'HL',\n },\n {\n long: 'Tristan da Cunha',\n short: 'TA',\n },\n ],\n },\n {\n long: 'Saint Kitts and Nevis',\n short: 'KN',\n regions: [\n {\n long: 'Saint Kitts',\n short: 'K',\n },\n {\n long: 'Nevis',\n short: 'N',\n },\n ],\n },\n {\n long: 'Saint Lucia',\n short: 'LC',\n regions: [\n {\n long: 'Anse-la-Raye',\n short: '01',\n },\n {\n long: 'Canaries',\n short: '12',\n },\n {\n long: 'Castries',\n short: '02',\n },\n {\n long: 'Choiseul',\n short: '03',\n },\n {\n long: 'Dennery',\n short: '05',\n },\n {\n long: 'Gros Islet',\n short: '06',\n },\n {\n long: 'Laborie',\n short: '07',\n },\n {\n long: 'Micoud',\n short: '08',\n },\n {\n long: 'Soufriere',\n short: '10',\n },\n {\n long: 'Vieux Fort',\n short: '11',\n },\n ],\n },\n {\n long: 'Saint Martin',\n short: 'MF',\n regions: [\n {\n long: 'Saint Martin',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Saint Pierre and Miquelon',\n short: 'PM',\n regions: [\n {\n long: 'Miquelon',\n short: 'undefined',\n },\n {\n long: 'Saint Pierre',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Saint Vincent and the Grenadines',\n short: 'VC',\n regions: [\n {\n long: 'Charlotte',\n short: '01',\n },\n {\n long: 'Grenadines',\n short: '06',\n },\n {\n long: 'Saint Andrew',\n short: '02',\n },\n {\n long: 'Saint David',\n short: '03',\n },\n {\n long: 'Saint George',\n short: '04',\n },\n {\n long: 'Saint Patrick',\n short: '05',\n },\n ],\n },\n {\n long: 'Samoa',\n short: 'WS',\n regions: [\n {\n long: \"A'ana\",\n short: 'AA',\n },\n {\n long: 'Aiga-i-le-Tai',\n short: 'AL',\n },\n {\n long: 'Atua',\n short: 'AT',\n },\n {\n long: \"Fa'asaleleaga\",\n short: 'FA',\n },\n {\n long: \"Gaga'emauga\",\n short: 'GE',\n },\n {\n long: 'Gagaifomauga',\n short: 'GI',\n },\n {\n long: 'Palauli',\n short: 'PA',\n },\n {\n long: \"Satupa'itea\",\n short: 'SA',\n },\n {\n long: 'Tuamasaga',\n short: 'TU',\n },\n {\n long: \"Va'a-o-Fonoti\",\n short: 'VF',\n },\n {\n long: 'Vaisigano',\n short: 'VS',\n },\n ],\n },\n {\n long: 'San Marino',\n short: 'SM',\n regions: [\n {\n long: 'Acquaviva',\n short: '01',\n },\n {\n long: 'Borgo Maggiore',\n short: '06',\n },\n {\n long: 'Chiesanuova',\n short: '02',\n },\n {\n long: 'Domagnano',\n short: '03',\n },\n {\n long: 'Faetano',\n short: '04',\n },\n {\n long: 'Fiorentino',\n short: '05',\n },\n {\n long: 'Montegiardino',\n short: '08',\n },\n {\n long: 'San Marino',\n short: '07',\n },\n {\n long: 'Serravalle',\n short: '09',\n },\n ],\n },\n {\n long: 'Sao Tome and Principe',\n short: 'ST',\n regions: [\n {\n long: 'Principe',\n short: 'P',\n },\n {\n long: 'Sao Tome',\n short: 'S',\n },\n ],\n },\n {\n long: 'Saudi Arabia',\n short: 'SA',\n regions: [\n {\n long: \"'Asir\",\n short: '14',\n },\n {\n long: 'Al Bahah',\n short: '11',\n },\n {\n long: 'Al Hudud ash Shamaliyah',\n short: '08',\n },\n {\n long: 'Al Jawf',\n short: '12',\n },\n {\n long: 'Al Madinah al Munawwarah',\n short: '03',\n },\n {\n long: 'Al Qasim',\n short: '05',\n },\n {\n long: 'Ar Riyad',\n short: '01',\n },\n {\n long: 'Ash Sharqiyah',\n short: '04',\n },\n {\n long: \"Ha'il\",\n short: '06',\n },\n {\n long: 'Jazan',\n short: '09',\n },\n {\n long: 'Makkah al Mukarramah',\n short: '02',\n },\n {\n long: 'Najran',\n short: '10',\n },\n {\n long: 'Tabuk',\n short: '07',\n },\n ],\n },\n {\n long: 'Senegal',\n short: 'SN',\n regions: [\n {\n long: 'Dakar',\n short: 'DK',\n },\n {\n long: 'Diourbel',\n short: 'DB',\n },\n {\n long: 'Fatick',\n short: 'FK',\n },\n {\n long: 'Kaffrine',\n short: 'KA',\n },\n {\n long: 'Kaolack',\n short: 'KL',\n },\n {\n long: 'Kedougou',\n short: 'KE',\n },\n {\n long: 'Kolda',\n short: 'KD',\n },\n {\n long: 'Louga',\n short: 'LG',\n },\n {\n long: 'Matam',\n short: 'MT',\n },\n {\n long: 'Saint-Louis',\n short: 'SL',\n },\n {\n long: 'Sedhiou',\n short: 'SE',\n },\n {\n long: 'Tambacounda',\n short: 'TC',\n },\n {\n long: 'Thies',\n short: 'TH',\n },\n {\n long: 'Ziguinchor',\n short: 'ZG',\n },\n ],\n },\n {\n long: 'Serbia',\n short: 'RS',\n regions: [\n {\n long: 'Beograd (Belgrade)',\n short: '00',\n },\n {\n long: 'Borski',\n short: '14',\n },\n {\n long: 'Braničevski',\n short: '11',\n },\n {\n long: 'Jablanički',\n short: '23',\n },\n {\n long: 'Južnobački',\n short: '06',\n },\n {\n long: 'Južnobanatski',\n short: '04',\n },\n {\n long: 'Kolubarski',\n short: '09',\n },\n {\n long: 'Kosovski',\n short: '25',\n },\n {\n long: 'Kosovsko-Mitrovački',\n short: '28',\n },\n {\n long: 'Kosovsko-Pomoravski',\n short: '29',\n },\n {\n long: 'Mačvanski',\n short: '08',\n },\n {\n long: 'Moravički',\n short: '17',\n },\n {\n long: 'Nišavski',\n short: '20',\n },\n {\n long: 'Pčinjski',\n short: '24',\n },\n {\n long: 'Pećki',\n short: '26',\n },\n {\n long: 'Pirotski',\n short: '22',\n },\n {\n long: 'Podunavski',\n short: '10',\n },\n {\n long: 'Pomoravski',\n short: '13',\n },\n {\n long: 'Prizrenski',\n short: '27',\n },\n {\n long: 'Rasinski',\n short: '19',\n },\n {\n long: 'Raški',\n short: '18',\n },\n {\n long: 'Severnobački',\n short: '01',\n },\n {\n long: 'Severnobanatski',\n short: '03',\n },\n {\n long: 'Srednjebanatski',\n short: '02',\n },\n {\n long: 'Sremski',\n short: '07',\n },\n {\n long: 'Šumadijski',\n short: '12',\n },\n {\n long: 'Toplički',\n short: '21',\n },\n {\n long: 'Zaječarski',\n short: '15',\n },\n {\n long: 'Zapadnobački',\n short: '05',\n },\n {\n long: 'Zlatiborski',\n short: '16',\n },\n ],\n },\n {\n long: 'Seychelles',\n short: 'SC',\n regions: [\n {\n long: 'Anse aux Pins',\n short: '01',\n },\n {\n long: 'Anse Boileau',\n short: '02',\n },\n {\n long: 'Anse Etoile',\n short: '03',\n },\n {\n long: 'Anse Royale',\n short: '05',\n },\n {\n long: 'Anu Cap',\n short: '04',\n },\n {\n long: 'Baie Lazare',\n short: '06',\n },\n {\n long: 'Baie Sainte Anne',\n short: '07',\n },\n {\n long: 'Beau Vallon',\n short: '08',\n },\n {\n long: 'Bel Air',\n short: '09',\n },\n {\n long: 'Bel Ombre',\n short: '10',\n },\n {\n long: 'Cascade',\n short: '11',\n },\n {\n long: 'Glacis',\n short: '12',\n },\n {\n long: \"Grand'Anse Mahe\",\n short: '13',\n },\n {\n long: \"Grand'Anse Praslin\",\n short: '14',\n },\n {\n long: 'La Digue',\n short: '15',\n },\n {\n long: 'La Riviere Anglaise',\n short: '16',\n },\n {\n long: 'Les Mamelles',\n short: '24',\n },\n {\n long: 'Mont Buxton',\n short: '17',\n },\n {\n long: 'Mont Fleuri',\n short: '18',\n },\n {\n long: 'Plaisance',\n short: '19',\n },\n {\n long: 'Pointe La Rue',\n short: '20',\n },\n {\n long: 'Port Glaud',\n short: '21',\n },\n {\n long: 'Roche Caiman',\n short: '25',\n },\n {\n long: 'Saint Louis',\n short: '22',\n },\n {\n long: 'Takamaka',\n short: '23',\n },\n ],\n },\n {\n long: 'Sierra Leone',\n short: 'SL',\n regions: [\n {\n long: 'Eastern',\n short: 'E',\n },\n {\n long: 'Northern',\n short: 'N',\n },\n {\n long: 'Southern',\n short: 'S',\n },\n {\n long: 'Western',\n short: 'W',\n },\n ],\n },\n {\n long: 'Singapore',\n short: 'SG',\n regions: [\n {\n long: 'Central Singapore',\n short: '01',\n },\n {\n long: 'North East',\n short: '02',\n },\n {\n long: 'North West',\n short: '03',\n },\n {\n long: 'South East',\n short: '04',\n },\n {\n long: 'South West',\n short: '05',\n },\n ],\n },\n {\n long: 'Sint Maarten (Dutch part)',\n short: 'SX',\n regions: [\n {\n long: 'Sint Maarten',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Slovakia',\n short: 'SK',\n regions: [\n {\n long: 'Banskobystricky',\n short: 'BC',\n },\n {\n long: 'Bratislavsky',\n short: 'BL',\n },\n {\n long: 'Kosicky',\n short: 'KI',\n },\n {\n long: 'Nitriansky',\n short: 'NI',\n },\n {\n long: 'Presovsky',\n short: 'PV',\n },\n {\n long: 'Trenciansky',\n short: 'TC',\n },\n {\n long: 'Trnavsky',\n short: 'TA',\n },\n {\n long: 'Zilinsky',\n short: 'ZI',\n },\n ],\n },\n {\n long: 'Slovenia',\n short: 'SI',\n regions: [\n {\n long: 'Ajdovscina',\n short: '001',\n },\n {\n long: 'Apace',\n short: '195',\n },\n {\n long: 'Beltinci',\n short: '002',\n },\n {\n long: 'Benedikt',\n short: '148',\n },\n {\n long: 'Bistrica ob Sotli',\n short: '149',\n },\n {\n long: 'Bled',\n short: '003',\n },\n {\n long: 'Bloke',\n short: '150',\n },\n {\n long: 'Bohinj',\n short: '004',\n },\n {\n long: 'Borovnica',\n short: '005',\n },\n {\n long: 'Bovec',\n short: '006',\n },\n {\n long: 'Braslovce',\n short: '151',\n },\n {\n long: 'Brda',\n short: '007',\n },\n {\n long: 'Brezice',\n short: '009',\n },\n {\n long: 'Brezovica',\n short: '008',\n },\n {\n long: 'Cankova',\n short: '152',\n },\n {\n long: 'Celje',\n short: '011',\n },\n {\n long: 'Cerklje na Gorenjskem',\n short: '012',\n },\n {\n long: 'Cerknica',\n short: '013',\n },\n {\n long: 'Cerkno',\n short: '014',\n },\n {\n long: 'Cerkvenjak',\n short: '153',\n },\n {\n long: 'Cirkulane',\n short: '196',\n },\n {\n long: 'Crensovci',\n short: '015',\n },\n {\n long: 'Crna na Koroskem',\n short: '016',\n },\n {\n long: 'Crnomelj',\n short: '017',\n },\n {\n long: 'Destrnik',\n short: '018',\n },\n {\n long: 'Divaca',\n short: '019',\n },\n {\n long: 'Dobje',\n short: '154',\n },\n {\n long: 'Dobrepolje',\n short: '020',\n },\n {\n long: 'Dobrna',\n short: '155',\n },\n {\n long: 'Dobrova-Polhov Gradec',\n short: '021',\n },\n {\n long: 'Dobrovnik',\n short: '156',\n },\n {\n long: 'Dol pri Ljubljani',\n short: '022',\n },\n {\n long: 'Dolenjske Toplice',\n short: '157',\n },\n {\n long: 'Domzale',\n short: '023',\n },\n {\n long: 'Dornava',\n short: '024',\n },\n {\n long: 'Dravograd',\n short: '025',\n },\n {\n long: 'Duplek',\n short: '026',\n },\n {\n long: 'Gorenja Vas-Poljane',\n short: '027',\n },\n {\n long: 'Gorisnica',\n short: '028',\n },\n {\n long: 'Gorje',\n short: '207',\n },\n {\n long: 'Gornja Radgona',\n short: '029',\n },\n {\n long: 'Gornji Grad',\n short: '030',\n },\n {\n long: 'Gornji Petrovci',\n short: '031',\n },\n {\n long: 'Grad',\n short: '158',\n },\n {\n long: 'Grosuplje',\n short: '032',\n },\n {\n long: 'Hajdina',\n short: '159',\n },\n {\n long: 'Hoce-Slivnica',\n short: '160',\n },\n {\n long: 'Hodos',\n short: '161',\n },\n {\n long: 'Horjul',\n short: '162',\n },\n {\n long: 'Hrastnik',\n short: '034',\n },\n {\n long: 'Hrpelje-Kozina',\n short: '035',\n },\n {\n long: 'Idrija',\n short: '036',\n },\n {\n long: 'Ig',\n short: '037',\n },\n {\n long: 'Ilirska Bistrica',\n short: '038',\n },\n {\n long: 'Ivancna Gorica',\n short: '039',\n },\n {\n long: 'Izola',\n short: '040',\n },\n {\n long: 'Jesenice',\n short: '041',\n },\n {\n long: 'Jursinci',\n short: '042',\n },\n {\n long: 'Kamnik',\n short: '043',\n },\n {\n long: 'Kanal',\n short: '044',\n },\n {\n long: 'Kidricevo',\n short: '045',\n },\n {\n long: 'Kobarid',\n short: '046',\n },\n {\n long: 'Kobilje',\n short: '047',\n },\n {\n long: 'Kocevje',\n short: '048',\n },\n {\n long: 'Komen',\n short: '049',\n },\n {\n long: 'Komenda',\n short: '164',\n },\n {\n long: 'Koper',\n short: '050',\n },\n {\n long: 'Kodanjevica na Krki',\n short: '197',\n },\n {\n long: 'Kostel',\n short: '165',\n },\n {\n long: 'Kozje',\n short: '051',\n },\n {\n long: 'Kranj',\n short: '052',\n },\n {\n long: 'Kranjska Gora',\n short: '053',\n },\n {\n long: 'Krizevci',\n short: '166',\n },\n {\n long: 'Krsko',\n short: '054',\n },\n {\n long: 'Kungota',\n short: '055',\n },\n {\n long: 'Kuzma',\n short: '056',\n },\n {\n long: 'Lasko',\n short: '057',\n },\n {\n long: 'Lenart',\n short: '058',\n },\n {\n long: 'Lendava',\n short: '059',\n },\n {\n long: 'Litija',\n short: '060',\n },\n {\n long: 'Ljubljana',\n short: '061',\n },\n {\n long: 'Ljubno',\n short: '062',\n },\n {\n long: 'Ljutomer',\n short: '063',\n },\n {\n long: 'Log-Dragomer',\n short: '208',\n },\n {\n long: 'Logatec',\n short: '064',\n },\n {\n long: 'Loska Dolina',\n short: '065',\n },\n {\n long: 'Loski Potok',\n short: '066',\n },\n {\n long: 'Lovrenc na Pohorju',\n short: '167',\n },\n {\n long: 'Lukovica',\n short: '068',\n },\n {\n long: 'Luce',\n short: '067',\n },\n {\n long: 'Majsperk',\n short: '069',\n },\n {\n long: 'Makole',\n short: '198',\n },\n {\n long: 'Maribor',\n short: '070',\n },\n {\n long: 'Markovci',\n short: '168',\n },\n {\n long: 'Medvode',\n short: '071',\n },\n {\n long: 'Menges',\n short: '072',\n },\n {\n long: 'Metlika',\n short: '073',\n },\n {\n long: 'Mezica',\n short: '074',\n },\n {\n long: 'Miklavz na Dravskem Polju',\n short: '169',\n },\n {\n long: 'Miren-Kostanjevica',\n short: '075',\n },\n {\n long: 'Mirna',\n short: '212',\n },\n {\n long: 'Mirna Pec',\n short: '170',\n },\n {\n long: 'Mislinja',\n short: '076',\n },\n {\n long: 'Mokronog-Trebelno',\n short: '199',\n },\n {\n long: 'Moravce',\n short: '077',\n },\n {\n long: 'Moravske Toplice',\n short: '078',\n },\n {\n long: 'Mozirje',\n short: '079',\n },\n {\n long: 'Murska Sobota',\n short: '080',\n },\n {\n long: 'Naklo',\n short: '082',\n },\n {\n long: 'Nazarje',\n short: '083',\n },\n {\n long: 'Nova Gorica',\n short: '084',\n },\n {\n long: 'Novo Mesto',\n short: '085',\n },\n {\n long: 'Odranci',\n short: '086',\n },\n {\n long: 'Ormoz',\n short: '087',\n },\n {\n long: 'Osilnica',\n short: '088',\n },\n {\n long: 'Pesnica',\n short: '089',\n },\n {\n long: 'Piran',\n short: '090',\n },\n {\n long: 'Pivka',\n short: '091',\n },\n {\n long: 'Podcetrtek',\n short: '092',\n },\n {\n long: 'Podlehnik',\n short: '172',\n },\n {\n long: 'Podvelka',\n short: '093',\n },\n {\n long: 'Poljcane',\n short: '200',\n },\n {\n long: 'Postojna',\n short: '094',\n },\n {\n long: 'Prebold',\n short: '174',\n },\n {\n long: 'Preddvor',\n short: '095',\n },\n {\n long: 'Prevalje',\n short: '175',\n },\n {\n long: 'Ptuj',\n short: '096',\n },\n {\n long: 'Race-Fram',\n short: '098',\n },\n {\n long: 'Radece',\n short: '099',\n },\n {\n long: 'Radenci',\n short: '100',\n },\n {\n long: 'Radlje ob Dravi',\n short: '101',\n },\n {\n long: 'Radovljica',\n short: '102',\n },\n {\n long: 'Ravne na Koroskem',\n short: '103',\n },\n {\n long: 'Razkrizje',\n short: '176',\n },\n {\n long: 'Recica ob Savinji',\n short: '209',\n },\n {\n long: 'Rence-Vogrsko',\n short: '201',\n },\n {\n long: 'Ribnica',\n short: '104',\n },\n {\n long: 'Ribnica na Poboriu',\n short: '177',\n },\n {\n long: 'Rogaska Slatina',\n short: '106',\n },\n {\n long: 'Rogasovci',\n short: '105',\n },\n {\n long: 'Rogatec',\n short: '107',\n },\n {\n long: 'Ruse',\n short: '108',\n },\n {\n long: 'Salovci',\n short: '033',\n },\n {\n long: 'Selnica ob Dravi',\n short: '178',\n },\n {\n long: 'Semic',\n short: '109',\n },\n {\n long: 'Sempeter-Vrtojba',\n short: '183',\n },\n {\n long: 'Sencur',\n short: '117',\n },\n {\n long: 'Sentilj',\n short: '118',\n },\n {\n long: 'Sentjernej',\n short: '119',\n },\n {\n long: 'Sentjur',\n short: '120',\n },\n {\n long: 'Sentrupert',\n short: '211',\n },\n {\n long: 'Sevnica',\n short: '110',\n },\n {\n long: 'Sezana',\n short: '111',\n },\n {\n long: 'Skocjan',\n short: '121',\n },\n {\n long: 'Skofja Loka',\n short: '122',\n },\n {\n long: 'Skofljica',\n short: '123',\n },\n {\n long: 'Slovenj Gradec',\n short: '112',\n },\n {\n long: 'Slovenska Bistrica',\n short: '113',\n },\n {\n long: 'Slovenske Konjice',\n short: '114',\n },\n {\n long: 'Smarje pri elsah',\n short: '124',\n },\n {\n long: 'Smarjeske Toplice',\n short: '206',\n },\n {\n long: 'Smartno ob Paki',\n short: '125',\n },\n {\n long: 'Smartno pri Litiji',\n short: '194',\n },\n {\n long: 'Sodrazica',\n short: '179',\n },\n {\n long: 'Solcava',\n short: '180',\n },\n {\n long: 'Sostanj',\n short: '126',\n },\n {\n long: 'Sredisce ob Dravi',\n short: '202',\n },\n {\n long: 'Starse',\n short: '115',\n },\n {\n long: 'Store',\n short: '127',\n },\n {\n long: 'Straza',\n short: '203',\n },\n {\n long: 'Sveta Ana',\n short: '181',\n },\n {\n long: 'Sveta Trojica v Slovenskih Goricah',\n short: '204',\n },\n {\n long: 'Sveta Andraz v Slovenskih Goricah',\n short: '182',\n },\n {\n long: 'Sveti Jurij',\n short: '116',\n },\n {\n long: 'Sveti Jurij v Slovenskih Goricah',\n short: '210',\n },\n {\n long: 'Sveti Tomaz',\n short: '205',\n },\n {\n long: 'Tabor',\n short: '184',\n },\n {\n long: 'Tisina',\n short: '010',\n },\n {\n long: 'Tolmin',\n short: '128',\n },\n {\n long: 'Trbovlje',\n short: '129',\n },\n {\n long: 'Trebnje',\n short: '130',\n },\n {\n long: 'Trnovska Vas',\n short: '185',\n },\n {\n long: 'Trzin',\n short: '186',\n },\n {\n long: 'Trzic',\n short: '131',\n },\n {\n long: 'Turnisce',\n short: '132',\n },\n {\n long: 'Velenje',\n short: '133',\n },\n {\n long: 'Velika Polana',\n short: '187',\n },\n {\n long: 'Velike Lasce',\n short: '134',\n },\n {\n long: 'Verzej',\n short: '188',\n },\n {\n long: 'Videm',\n short: '135',\n },\n {\n long: 'Vipava',\n short: '136',\n },\n {\n long: 'Vitanje',\n short: '137',\n },\n {\n long: 'Vodice',\n short: '138',\n },\n {\n long: 'Vojnik',\n short: '139',\n },\n {\n long: 'Vransko',\n short: '189',\n },\n {\n long: 'Vrhnika',\n short: '140',\n },\n {\n long: 'Vuzenica',\n short: '141',\n },\n {\n long: 'Zagorje ob Savi',\n short: '142',\n },\n {\n long: 'Zavrc',\n short: '143',\n },\n {\n long: 'Zrece',\n short: '144',\n },\n {\n long: 'Zalec',\n short: '190',\n },\n {\n long: 'Zelezniki',\n short: '146',\n },\n {\n long: 'Zetale',\n short: '191',\n },\n {\n long: 'Ziri',\n short: '147',\n },\n {\n long: 'Zirovnica',\n short: '192',\n },\n {\n long: 'Zuzemberk',\n short: '193',\n },\n ],\n },\n {\n long: 'Solomon Islands',\n short: 'SB',\n regions: [\n {\n long: 'Central',\n short: 'CE',\n },\n {\n long: 'Choiseul',\n short: 'CH',\n },\n {\n long: 'Guadalcanal',\n short: 'GU',\n },\n {\n long: 'Honiara',\n short: 'CT',\n },\n {\n long: 'Isabel',\n short: 'IS',\n },\n {\n long: 'Makira-Ulawa',\n short: 'MK',\n },\n {\n long: 'Malaita',\n short: 'ML',\n },\n {\n long: 'Rennell and Bellona',\n short: 'RB',\n },\n {\n long: 'Temotu',\n short: 'TE',\n },\n {\n long: 'Western',\n short: 'WE',\n },\n ],\n },\n {\n long: 'Somalia',\n short: 'SO',\n regions: [\n {\n long: 'Awdal',\n short: 'AW',\n },\n {\n long: 'Bakool',\n short: 'BK',\n },\n {\n long: 'Banaadir',\n short: 'BN',\n },\n {\n long: 'Bari',\n short: 'BR',\n },\n {\n long: 'Bay',\n short: 'BY',\n },\n {\n long: 'Galguduud',\n short: 'GA',\n },\n {\n long: 'Gedo',\n short: 'GE',\n },\n {\n long: 'Hiiraan',\n short: 'HI',\n },\n {\n long: 'Jubbada Dhexe',\n short: 'JD',\n },\n {\n long: 'Jubbada Hoose',\n short: 'JH',\n },\n {\n long: 'Mudug',\n short: 'MU',\n },\n {\n long: 'Nugaal',\n short: 'NU',\n },\n {\n long: 'Sanaag',\n short: 'SA',\n },\n {\n long: 'Shabeellaha Dhexe',\n short: 'SD',\n },\n {\n long: 'Shabeellaha Hoose',\n short: 'SH',\n },\n {\n long: 'Sool',\n short: 'SO',\n },\n {\n long: 'Togdheer',\n short: 'TO',\n },\n {\n long: 'Woqooyi Galbeed',\n short: 'WO',\n },\n ],\n },\n {\n long: 'South Africa',\n short: 'ZA',\n regions: [\n {\n long: 'Eastern Cape',\n short: 'EC',\n },\n {\n long: 'Free State',\n short: 'FS',\n },\n {\n long: 'Gauteng',\n short: 'GT',\n },\n {\n long: 'KwaZulu-Natal',\n short: 'NL',\n },\n {\n long: 'Limpopo',\n short: 'LP',\n },\n {\n long: 'Mpumalanga',\n short: 'MP',\n },\n {\n long: 'Northern Cape',\n short: 'NC',\n },\n {\n long: 'North West',\n short: 'NW',\n },\n {\n long: 'Western Cape',\n short: 'WC',\n },\n ],\n },\n {\n long: 'South Georgia and South Sandwich Islands',\n short: 'GS',\n regions: [\n {\n long: 'Bird Island',\n short: 'undefined',\n },\n {\n long: 'Bristol Island',\n short: 'undefined',\n },\n {\n long: 'Clerke Rocks',\n short: 'undefined',\n },\n {\n long: 'Montagu Island',\n short: 'undefined',\n },\n {\n long: 'Saunders Island',\n short: 'undefined',\n },\n {\n long: 'South Georgia',\n short: 'undefined',\n },\n {\n long: 'Southern Thule',\n short: 'undefined',\n },\n {\n long: 'Traversay Islands',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'South Sudan',\n short: 'SS',\n regions: [\n {\n long: 'Central Equatoria',\n short: 'CE',\n },\n {\n long: 'Eastern Equatoria',\n short: 'EE',\n },\n {\n long: 'Jonglei',\n short: 'JG',\n },\n {\n long: 'Lakes',\n short: 'LK',\n },\n {\n long: 'Northern Bahr el Ghazal',\n short: 'BN',\n },\n {\n long: 'Unity',\n short: 'UY',\n },\n {\n long: 'Upper Nile',\n short: 'NU',\n },\n {\n long: 'Warrap',\n short: 'WR',\n },\n {\n long: 'Western Bahr el Ghazal',\n short: 'BW',\n },\n {\n long: 'Western Equatoria',\n short: 'EW',\n },\n ],\n },\n {\n long: 'Spain',\n short: 'ES',\n regions: [\n {\n long: 'Albacete',\n short: 'AB',\n },\n {\n long: 'Alicante',\n short: 'A',\n },\n {\n long: 'Almería',\n short: 'AN',\n },\n {\n long: 'Araba/Álava',\n short: 'VI',\n },\n {\n long: 'Asturias',\n short: 'O',\n },\n {\n long: 'Ávila',\n short: 'AV',\n },\n {\n long: 'Badajoz',\n short: 'BA',\n },\n {\n long: 'Barcelona',\n short: 'B',\n },\n {\n long: 'Bizkaia',\n short: 'BI',\n },\n {\n long: 'Burgos',\n short: 'BU',\n },\n {\n long: 'Cáceres',\n short: 'CC',\n },\n {\n long: 'Cádiz',\n short: 'CA',\n },\n {\n long: 'Cantabria',\n short: 'S',\n },\n {\n long: 'Castellón/Castelló',\n short: 'CS',\n },\n {\n long: 'Ceuta',\n short: 'CE',\n },\n {\n long: 'Ciudad Real',\n short: 'CR',\n },\n {\n long: 'Córdoba',\n short: 'CO',\n },\n {\n long: 'A Coruña',\n short: 'C',\n },\n {\n long: 'Cuenca',\n short: 'CU',\n },\n {\n long: 'Gipuzkoa',\n short: 'SS',\n },\n {\n long: 'Girona',\n short: 'GI',\n },\n {\n long: 'Granada',\n short: 'GR',\n },\n {\n long: 'Guadalajara',\n short: 'GU',\n },\n {\n long: 'Huelva',\n short: 'H',\n },\n {\n long: 'Huesca',\n short: 'HU',\n },\n {\n long: 'Illes Balears',\n short: 'PM',\n },\n {\n long: 'Jaén',\n short: 'J',\n },\n {\n long: 'León',\n short: 'LE',\n },\n {\n long: 'Lleida',\n short: 'L',\n },\n {\n long: 'Lugo',\n short: 'LU',\n },\n {\n long: 'Madrid',\n short: 'M',\n },\n {\n long: 'Málaga',\n short: 'MA',\n },\n {\n long: 'Melilla',\n short: 'ML',\n },\n {\n long: 'Murcia',\n short: 'MU',\n },\n {\n long: 'Navarra/Nafarroa',\n short: 'NA',\n },\n {\n long: 'Ourense',\n short: 'OR',\n },\n {\n long: 'Palencia',\n short: 'P',\n },\n {\n long: 'Las Palmas',\n short: 'GC',\n },\n {\n long: 'Pontevedra',\n short: 'PO',\n },\n {\n long: 'La Rioja',\n short: 'LO',\n },\n {\n long: 'Salamanca',\n short: 'SA',\n },\n {\n long: 'Santa Cruz de Tenerife',\n short: 'TF',\n },\n {\n long: 'Segovia',\n short: 'SG',\n },\n {\n long: 'Sevilla',\n short: 'SE',\n },\n {\n long: 'Soria',\n short: 'SO',\n },\n {\n long: 'Tarragona',\n short: 'T',\n },\n {\n long: 'Teruel',\n short: 'TE',\n },\n {\n long: 'Toledo',\n short: 'TO',\n },\n {\n long: 'Valencia/València',\n short: 'V',\n },\n {\n long: 'Valladolid',\n short: 'VA',\n },\n {\n long: 'Zamora',\n short: 'ZA',\n },\n {\n long: 'Zaragoza',\n short: 'Z',\n },\n ],\n },\n {\n long: 'Sri Lanka',\n short: 'LK',\n regions: [\n {\n long: 'Basnahira',\n short: '1',\n },\n {\n long: 'Dakunu',\n short: '3',\n },\n {\n long: 'Madhyama',\n short: '2',\n },\n {\n long: 'Naegenahira',\n short: '5',\n },\n {\n long: 'Sabaragamuwa',\n short: '9',\n },\n {\n long: 'Uturu',\n short: '4',\n },\n {\n long: 'Uturumaeda',\n short: '7',\n },\n {\n long: 'Vayamba',\n short: '6',\n },\n {\n long: 'Uva',\n short: '8',\n },\n ],\n },\n {\n long: 'Sudan',\n short: 'SD',\n regions: [\n {\n long: 'Al Bahr al Ahmar',\n short: 'RS',\n },\n {\n long: 'Al Jazirah',\n short: 'GZ',\n },\n {\n long: 'Al Khartum',\n short: 'KH',\n },\n {\n long: 'Al Qadarif',\n short: 'GD',\n },\n {\n long: 'An Nil al Abyad',\n short: 'NW',\n },\n {\n long: 'An Nil al Azraq',\n short: 'NB',\n },\n {\n long: 'Ash Shamaliyah',\n short: 'NO',\n },\n {\n long: 'Gharb Darfur',\n short: 'DW',\n },\n {\n long: 'Gharb Kurdufan',\n short: 'GK',\n },\n {\n long: 'Janub Darfur',\n short: 'DS',\n },\n {\n long: 'Janub Kurdufan',\n short: 'KS',\n },\n {\n long: 'Kassala',\n short: 'KA',\n },\n {\n long: 'Nahr an Nil',\n short: 'NR',\n },\n {\n long: 'Shamal Darfur',\n short: 'DN',\n },\n {\n long: 'Sharq Darfur',\n short: 'DE',\n },\n {\n long: 'Shiamal Kurdufan',\n short: 'KN',\n },\n {\n long: 'Sinnar',\n short: 'SI',\n },\n {\n long: 'Wasat Darfur Zalinjay',\n short: 'DC',\n },\n ],\n },\n {\n long: 'Suriname',\n short: 'SR',\n regions: [\n {\n long: 'Brokopondo',\n short: 'BR',\n },\n {\n long: 'Commewijne',\n short: 'CM',\n },\n {\n long: 'Coronie',\n short: 'CR',\n },\n {\n long: 'Marowijne',\n short: 'MA',\n },\n {\n long: 'Nickerie',\n short: 'NI',\n },\n {\n long: 'Para',\n short: 'PR',\n },\n {\n long: 'Paramaribo',\n short: 'PM',\n },\n {\n long: 'Saramacca',\n short: 'SA',\n },\n {\n long: 'Sipaliwini',\n short: 'SI',\n },\n {\n long: 'Wanica',\n short: 'WA',\n },\n ],\n },\n {\n long: 'Swaziland',\n short: 'SZ',\n regions: [\n {\n long: 'Hhohho',\n short: 'HH',\n },\n {\n long: 'Lubombo',\n short: 'LU',\n },\n {\n long: 'Manzini',\n short: 'MA',\n },\n {\n long: 'Shiselweni',\n short: 'SH',\n },\n ],\n },\n {\n long: 'Sweden',\n short: 'SE',\n regions: [\n {\n long: 'Blekinge',\n short: 'K',\n },\n {\n long: 'Dalarna',\n short: 'W',\n },\n {\n long: 'Gävleborg',\n short: 'X',\n },\n {\n long: 'Gotland',\n short: 'I',\n },\n {\n long: 'Halland',\n short: 'N',\n },\n {\n long: 'Jämtland',\n short: 'Z',\n },\n {\n long: 'Jönköping',\n short: 'F',\n },\n {\n long: 'Kalmar',\n short: 'H',\n },\n {\n long: 'Kronoberg',\n short: 'G',\n },\n {\n long: 'Norrbotten',\n short: 'BD',\n },\n {\n long: 'Örebro',\n short: 'T',\n },\n {\n long: 'Östergötland',\n short: 'E',\n },\n {\n long: 'Skåne',\n short: 'M',\n },\n {\n long: 'Södermanland',\n short: 'D',\n },\n {\n long: 'Stockholm',\n short: 'AB',\n },\n {\n long: 'Uppsala',\n short: 'C',\n },\n {\n long: 'Värmland',\n short: 'S',\n },\n {\n long: 'Västerbotten',\n short: 'AC',\n },\n {\n long: 'Västernorrland',\n short: 'Y',\n },\n {\n long: 'Västmanland',\n short: 'U',\n },\n {\n long: 'Västra Götaland',\n short: 'O',\n },\n ],\n },\n {\n long: 'Switzerland',\n short: 'CH',\n regions: [\n {\n long: 'Aargau',\n short: 'AG',\n },\n {\n long: 'Appenzell Ausserrhoden',\n short: 'AR',\n },\n {\n long: 'Appenzell Innerhoden',\n short: 'AI',\n },\n {\n long: 'Basel-Landschaft',\n short: 'BL',\n },\n {\n long: 'Basel-Stadt',\n short: 'BS',\n },\n {\n long: 'Bern',\n short: 'BE',\n },\n {\n long: 'Fribourg',\n short: 'FR',\n },\n {\n long: 'Genève',\n short: 'GE',\n },\n {\n long: 'Glarus',\n short: 'GL',\n },\n {\n long: 'Graubünden',\n short: 'GR',\n },\n {\n long: 'Jura',\n short: 'JU',\n },\n {\n long: 'Luzern',\n short: 'LU',\n },\n {\n long: 'Neuchâtel',\n short: 'NE',\n },\n {\n long: 'Nidwalden',\n short: 'NW',\n },\n {\n long: 'Obwalden',\n short: 'OW',\n },\n {\n long: 'Sankt Gallen',\n short: 'SG',\n },\n {\n long: 'Schaffhausen',\n short: 'SH',\n },\n {\n long: 'Schwyz',\n short: 'SZ',\n },\n {\n long: 'Solothurn',\n short: 'SO',\n },\n {\n long: 'Thurgau',\n short: 'TG',\n },\n {\n long: 'Ticino',\n short: 'TI',\n },\n {\n long: 'Uri',\n short: 'UR',\n },\n {\n long: 'Valais',\n short: 'VS',\n },\n {\n long: 'Vaud',\n short: 'VD',\n },\n {\n long: 'Zug',\n short: 'ZG',\n },\n {\n long: 'Zürich',\n short: 'ZH',\n },\n ],\n },\n {\n long: 'Syrian Arab Republic',\n short: 'SY',\n regions: [\n {\n long: 'Al Hasakah',\n short: 'HA',\n },\n {\n long: 'Al Ladhiqiyah',\n short: 'LA',\n },\n {\n long: 'Al Qunaytirah',\n short: 'QU',\n },\n {\n long: 'Ar Raqqah',\n short: 'RA',\n },\n {\n long: \"As Suwayda'\",\n short: 'SU',\n },\n {\n long: \"Dar'a\",\n short: 'DR',\n },\n {\n long: 'Dayr az Zawr',\n short: 'DY',\n },\n {\n long: 'Dimashq',\n short: 'DI',\n },\n {\n long: 'Halab',\n short: 'HL',\n },\n {\n long: 'Hamah',\n short: 'HM',\n },\n {\n long: 'Hims',\n short: 'HI',\n },\n {\n long: 'Idlib',\n short: 'ID',\n },\n {\n long: 'Rif Dimashq',\n short: 'RD',\n },\n {\n long: 'Tartus',\n short: 'TA',\n },\n ],\n },\n {\n long: 'Taiwan',\n short: 'TW',\n regions: [\n {\n long: 'Chang-hua',\n short: 'CHA',\n },\n {\n long: 'Chia-i',\n short: 'CYQ',\n },\n {\n long: 'Hsin-chu',\n short: 'HSQ',\n },\n {\n long: 'Hua-lien',\n short: 'HUA',\n },\n {\n long: 'Kao-hsiung',\n short: 'KHH',\n },\n {\n long: 'Keelung',\n short: 'KEE',\n },\n {\n long: 'Kinmen',\n short: 'KIN',\n },\n {\n long: 'Lienchiang',\n short: 'LIE',\n },\n {\n long: 'Miao-li',\n short: 'MIA',\n },\n {\n long: \"Nan-t'ou\",\n short: 'NAN',\n },\n {\n long: \"P'eng-hu\",\n short: 'PEN',\n },\n {\n long: 'New Taipei',\n short: 'NWT',\n },\n {\n long: \"P'ing-tung\",\n short: 'PING',\n },\n {\n long: \"T'ai-chung\",\n short: 'TXG',\n },\n {\n long: \"T'ai-nan\",\n short: 'TNN',\n },\n {\n long: \"T'ai-pei\",\n short: 'TPE',\n },\n {\n long: \"T'ai-tung\",\n short: 'TTT',\n },\n {\n long: \"T'ao-yuan\",\n short: 'TAO',\n },\n {\n long: 'Yi-lan',\n short: 'ILA',\n },\n {\n long: 'Yun-lin',\n short: 'YUN',\n },\n ],\n },\n {\n long: 'Tajikistan',\n short: 'TJ',\n regions: [\n {\n long: 'Dushanbe',\n short: 'DU',\n },\n {\n long: 'Kŭhistoni Badakhshon',\n short: 'GB',\n },\n {\n long: 'Khatlon',\n short: 'KT',\n },\n {\n long: 'Sughd',\n short: 'SU',\n },\n ],\n },\n {\n long: 'Tanzania, United Republic of',\n short: 'TZ',\n regions: [\n {\n long: 'Arusha',\n short: '01',\n },\n {\n long: 'Coast',\n short: '19',\n },\n {\n long: 'Dar es Salaam',\n short: '02',\n },\n {\n long: 'Dodoma',\n short: '03',\n },\n {\n long: 'Iringa',\n short: '04',\n },\n {\n long: 'Kagera',\n short: '05',\n },\n {\n long: 'Kigoma',\n short: '08',\n },\n {\n long: 'Kilimanjaro',\n short: '09',\n },\n {\n long: 'Lindi',\n short: '12',\n },\n {\n long: 'Manyara',\n short: '26',\n },\n {\n long: 'Mara',\n short: '13',\n },\n {\n long: 'Mbeya',\n short: '14',\n },\n {\n long: 'Morogoro',\n short: '16',\n },\n {\n long: 'Mtwara',\n short: '17',\n },\n {\n long: 'Mwanza',\n short: '18',\n },\n {\n long: 'Pemba North',\n short: '06',\n },\n {\n long: 'Pemba South',\n short: '10',\n },\n {\n long: 'Rukwa',\n short: '20',\n },\n {\n long: 'Ruvuma',\n short: '21',\n },\n {\n long: 'Shinyanga',\n short: '22',\n },\n {\n long: 'Singida',\n short: '23',\n },\n {\n long: 'Tabora',\n short: '24',\n },\n {\n long: 'Tanga',\n short: '25',\n },\n {\n long: 'Zanzibar North',\n short: '07',\n },\n {\n long: 'Zanzibar Central/South',\n short: '11',\n },\n {\n long: 'Zanzibar Urban/West',\n short: '15',\n },\n ],\n },\n {\n long: 'Thailand',\n short: 'TH',\n regions: [\n {\n long: 'Amnat Charoen',\n short: '37',\n },\n {\n long: 'Ang Thong',\n short: '15',\n },\n {\n long: 'Bueng Kan',\n short: '38',\n },\n {\n long: 'Buri Ram',\n short: '31',\n },\n {\n long: 'Chachoengsao',\n short: '24',\n },\n {\n long: 'Chai Nat',\n short: '18',\n },\n {\n long: 'Chaiyaphum',\n short: '36',\n },\n {\n long: 'Chanthaburi',\n short: '22',\n },\n {\n long: 'Chiang Mai',\n short: '50',\n },\n {\n long: 'Chiang Rai',\n short: '57',\n },\n {\n long: 'Chon Buri',\n short: '20',\n },\n {\n long: 'Chumphon',\n short: '86',\n },\n {\n long: 'Kalasin',\n short: '46',\n },\n {\n long: 'Kamphaeng Phet',\n short: '62',\n },\n {\n long: 'Kanchanaburi',\n short: '71',\n },\n {\n long: 'Khon Kaen',\n short: '40',\n },\n {\n long: 'Krabi',\n short: '81',\n },\n {\n long: 'Krung Thep Mahanakhon (Bangkok)',\n short: '10',\n },\n {\n long: 'Lampang',\n short: '52',\n },\n {\n long: 'Lamphun',\n short: '51',\n },\n {\n long: 'Loei',\n short: '42',\n },\n {\n long: 'Lop Buri',\n short: '16',\n },\n {\n long: 'Mae Hong Son',\n short: '58',\n },\n {\n long: 'Maha Sarakham',\n short: '44',\n },\n {\n long: 'Mukdahan',\n short: '49',\n },\n {\n long: 'Nakhon Nayok',\n short: '26',\n },\n {\n long: 'Nakhon Phathom',\n short: '73',\n },\n {\n long: 'Nakhon Phanom',\n short: '48',\n },\n {\n long: 'Nakhon Ratchasima',\n short: '30',\n },\n {\n long: 'Nakhon Sawan',\n short: '60',\n },\n {\n long: 'Nakhon Si Thammarat',\n short: '80',\n },\n {\n long: 'Nan',\n short: '55',\n },\n {\n long: 'Narathiwat',\n short: '96',\n },\n {\n long: 'Nong Bua Lam Phu',\n short: '39',\n },\n {\n long: 'Nong Khai',\n short: '43',\n },\n {\n long: 'Nonthaburi',\n short: '12',\n },\n {\n long: 'Pathum Thani',\n short: '13',\n },\n {\n long: 'Pattani',\n short: '94',\n },\n {\n long: 'Phangnga',\n short: '82',\n },\n {\n long: 'Phatthalung',\n short: '93',\n },\n {\n long: 'Phayao',\n short: '56',\n },\n {\n long: 'Phetchabun',\n short: '67',\n },\n {\n long: 'Phetchaburi',\n short: '76',\n },\n {\n long: 'Phichit',\n short: '66',\n },\n {\n long: 'Phitsanulok',\n short: '65',\n },\n {\n long: 'Phra Nakhon Si Ayutthaya',\n short: '14',\n },\n {\n long: 'Phrae',\n short: '54',\n },\n {\n long: 'Phuket',\n short: '83',\n },\n {\n long: 'Prachin Buri',\n short: '25',\n },\n {\n long: 'Prachuap Khiri Khan',\n short: '77',\n },\n {\n long: 'Ranong',\n short: '85',\n },\n {\n long: 'Ratchaburi',\n short: '70',\n },\n {\n long: 'Rayong',\n short: '21',\n },\n {\n long: 'Roi Et',\n short: '45',\n },\n {\n long: 'Sa Kaeo',\n short: '27',\n },\n {\n long: 'Sakon Nakhon',\n short: '47',\n },\n {\n long: 'Samut Prakan',\n short: '11',\n },\n {\n long: 'Samut Sakhon',\n short: '74',\n },\n {\n long: 'Samut Songkhram',\n short: '75',\n },\n {\n long: 'Saraburi',\n short: '19',\n },\n {\n long: 'Satun',\n short: '91',\n },\n {\n long: 'Sing Buri',\n short: '17',\n },\n {\n long: 'Si Sa ket',\n short: '33',\n },\n {\n long: 'Songkhla',\n short: '90',\n },\n {\n long: 'Sukhothai',\n short: '64',\n },\n {\n long: 'Suphan Buri',\n short: '72',\n },\n {\n long: 'Surat Thani',\n short: '84',\n },\n {\n long: 'Surin',\n short: '32',\n },\n {\n long: 'Tak',\n short: '63',\n },\n {\n long: 'Trang',\n short: '92',\n },\n {\n long: 'Trat',\n short: '23',\n },\n {\n long: 'Ubon Ratchathani',\n short: '34',\n },\n {\n long: 'Udon Thani',\n short: '41',\n },\n {\n long: 'Uthai Thani',\n short: '61',\n },\n {\n long: 'Uttaradit',\n short: '53',\n },\n {\n long: 'Yala',\n short: '95',\n },\n {\n long: 'Yasothon',\n short: '35',\n },\n ],\n },\n {\n long: 'Timor-Leste',\n short: 'TL',\n regions: [\n {\n long: 'Aileu',\n short: 'AL',\n },\n {\n long: 'Ainaro',\n short: 'AN',\n },\n {\n long: 'Baucau',\n short: 'BA',\n },\n {\n long: 'Bobonaro',\n short: 'BO',\n },\n {\n long: 'Cova Lima',\n short: 'CO',\n },\n {\n long: 'Dili',\n short: 'DI',\n },\n {\n long: 'Ermera',\n short: 'ER',\n },\n {\n long: 'Lautem',\n short: 'LA',\n },\n {\n long: 'Liquica',\n short: 'LI',\n },\n {\n long: 'Manatuto',\n short: 'MT',\n },\n {\n long: 'Manufahi',\n short: 'MF',\n },\n {\n long: 'Oecussi',\n short: 'OE',\n },\n {\n long: 'Viqueque',\n short: 'VI',\n },\n ],\n },\n {\n long: 'Togo',\n short: 'TG',\n regions: [\n {\n long: 'Centre',\n short: 'C',\n },\n {\n long: 'Kara',\n short: 'K',\n },\n {\n long: 'Maritime',\n short: 'M',\n },\n {\n long: 'Plateaux',\n short: 'P',\n },\n {\n long: 'Savannes',\n short: 'S',\n },\n ],\n },\n {\n long: 'Tokelau',\n short: 'TK',\n regions: [\n {\n long: 'Atafu',\n short: 'undefined',\n },\n {\n long: 'Fakaofo',\n short: 'undefined',\n },\n {\n long: 'Nukunonu',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Tonga',\n short: 'TO',\n regions: [\n {\n long: \"'Eua\",\n short: '01',\n },\n {\n long: \"Ha'apai\",\n short: '02',\n },\n {\n long: 'Niuas',\n short: '03',\n },\n {\n long: 'Tongatapu',\n short: '04',\n },\n {\n long: \"Vava'u\",\n short: '05',\n },\n ],\n },\n {\n long: 'Trinidad and Tobago',\n short: 'TT',\n regions: [\n {\n long: 'Arima',\n short: 'ARI',\n },\n {\n long: 'Chaguanas',\n short: 'CHA',\n },\n {\n long: 'Couva-Tabaquite-Talparo',\n short: 'CTT',\n },\n {\n long: 'Diefo Martin',\n short: 'DMN',\n },\n {\n long: 'Mayaro-Rio Claro',\n short: 'MRC',\n },\n {\n long: 'Penal-Debe',\n short: 'PED',\n },\n {\n long: 'Point Fortin',\n short: 'PTF',\n },\n {\n long: 'Port-of-Spain',\n short: 'POS',\n },\n {\n long: 'Princes Town',\n short: 'PRT',\n },\n {\n long: 'San Fernando',\n short: 'SFO',\n },\n {\n long: 'San Juan-Laventille',\n short: 'SJL',\n },\n {\n long: 'Sangre Grande',\n short: 'SGE',\n },\n {\n long: 'Siparia',\n short: 'SIP',\n },\n {\n long: 'Tobago',\n short: 'TOB',\n },\n {\n long: 'Tunapuna-Piarco',\n short: 'TUP',\n },\n ],\n },\n {\n long: 'Tunisia',\n short: 'TN',\n regions: [\n {\n long: 'Ariana',\n short: '12',\n },\n {\n long: 'Beja',\n short: '31',\n },\n {\n long: 'Ben Arous',\n short: '13',\n },\n {\n long: 'Bizerte',\n short: '23',\n },\n {\n long: 'Gabes',\n short: '81',\n },\n {\n long: 'Gafsa',\n short: '71',\n },\n {\n long: 'Jendouba',\n short: '32',\n },\n {\n long: 'Kairouan',\n short: '41',\n },\n {\n long: 'Kasserine',\n short: '42',\n },\n {\n long: 'Kebili',\n short: '73',\n },\n {\n long: 'Kef',\n short: '33',\n },\n {\n long: 'Mahdia',\n short: '53',\n },\n {\n long: 'Medenine',\n short: '82',\n },\n {\n long: 'Monastir',\n short: '52',\n },\n {\n long: 'Nabeul',\n short: '21',\n },\n {\n long: 'Sfax',\n short: '61',\n },\n {\n long: 'Sidi Bouzid',\n short: '43',\n },\n {\n long: 'Siliana',\n short: '34',\n },\n {\n long: 'Sousse',\n short: '51',\n },\n {\n long: 'Tataouine',\n short: '83',\n },\n {\n long: 'Tozeur',\n short: '72',\n },\n {\n long: 'Tunis',\n short: '11',\n },\n {\n long: 'Zaghouan',\n short: '22',\n },\n ],\n },\n {\n long: 'Turkey',\n short: 'TR',\n regions: [\n {\n long: 'Adana',\n short: '01',\n },\n {\n long: 'Adiyaman',\n short: '02',\n },\n {\n long: 'Afyonkarahisar',\n short: '03',\n },\n {\n long: 'Agri',\n short: '04',\n },\n {\n long: 'Aksaray',\n short: '68',\n },\n {\n long: 'Amasya',\n short: '05',\n },\n {\n long: 'Ankara',\n short: '06',\n },\n {\n long: 'Antalya',\n short: '07',\n },\n {\n long: 'Ardahan',\n short: '75',\n },\n {\n long: 'Artvin',\n short: '08',\n },\n {\n long: 'Aydin',\n short: '09',\n },\n {\n long: 'Balikesir',\n short: '10',\n },\n {\n long: 'Bartin',\n short: '74',\n },\n {\n long: 'Batman',\n short: '72',\n },\n {\n long: 'Bayburt',\n short: '69',\n },\n {\n long: 'Bilecik',\n short: '11',\n },\n {\n long: 'Bingol',\n short: '12',\n },\n {\n long: 'Bitlis',\n short: '13',\n },\n {\n long: 'Bolu',\n short: '14',\n },\n {\n long: 'Burdur',\n short: '15',\n },\n {\n long: 'Bursa',\n short: '16',\n },\n {\n long: 'Canakkale',\n short: '17',\n },\n {\n long: 'Cankiri',\n short: '18',\n },\n {\n long: 'Corum',\n short: '19',\n },\n {\n long: 'Denizli',\n short: '20',\n },\n {\n long: 'Diyarbakir',\n short: '21',\n },\n {\n long: 'Duzce',\n short: '81',\n },\n {\n long: 'Edirne',\n short: '22',\n },\n {\n long: 'Elazig',\n short: '23',\n },\n {\n long: 'Erzincan',\n short: '24',\n },\n {\n long: 'Erzurum',\n short: '25',\n },\n {\n long: 'Eskisehir',\n short: '26',\n },\n {\n long: 'Gaziantep',\n short: '27',\n },\n {\n long: 'Giresun',\n short: '28',\n },\n {\n long: 'Gumushane',\n short: '29',\n },\n {\n long: 'Hakkari',\n short: '30',\n },\n {\n long: 'Hatay',\n short: '31',\n },\n {\n long: 'Igdir',\n short: '76',\n },\n {\n long: 'Isparta',\n short: '32',\n },\n {\n long: 'Istanbul',\n short: '34',\n },\n {\n long: 'Izmir',\n short: '35',\n },\n {\n long: 'Kahramanmaras',\n short: '46',\n },\n {\n long: 'Karabuk',\n short: '78',\n },\n {\n long: 'Karaman',\n short: '70',\n },\n {\n long: 'Kars',\n short: '36',\n },\n {\n long: 'Kastamonu',\n short: '37',\n },\n {\n long: 'Kayseri',\n short: '38',\n },\n {\n long: 'Kilis',\n short: '79',\n },\n {\n long: 'Kirikkale',\n short: '71',\n },\n {\n long: 'Kirklareli',\n short: '39',\n },\n {\n long: 'Kirsehir',\n short: '40',\n },\n {\n long: 'Kocaeli',\n short: '41',\n },\n {\n long: 'Konya',\n short: '42',\n },\n {\n long: 'Kutahya',\n short: '43',\n },\n {\n long: 'Malatya',\n short: '44',\n },\n {\n long: 'Manisa',\n short: '45',\n },\n {\n long: 'Mardin',\n short: '47',\n },\n {\n long: 'Mersin',\n short: '33',\n },\n {\n long: 'Mugla',\n short: '48',\n },\n {\n long: 'Mus',\n short: '49',\n },\n {\n long: 'Nevsehir',\n short: '50',\n },\n {\n long: 'Nigde',\n short: '51',\n },\n {\n long: 'Ordu',\n short: '52',\n },\n {\n long: 'Osmaniye',\n short: '80',\n },\n {\n long: 'Rize',\n short: '53',\n },\n {\n long: 'Sakarya',\n short: '54',\n },\n {\n long: 'Samsun',\n short: '55',\n },\n {\n long: 'Sanliurfa',\n short: '63',\n },\n {\n long: 'Siirt',\n short: '56',\n },\n {\n long: 'Sinop',\n short: '57',\n },\n {\n long: 'Sirnak',\n short: '73',\n },\n {\n long: 'Sivas',\n short: '58',\n },\n {\n long: 'Tekirdag',\n short: '59',\n },\n {\n long: 'Tokat',\n short: '60',\n },\n {\n long: 'Trabzon',\n short: '61',\n },\n {\n long: 'Tunceli',\n short: '62',\n },\n {\n long: 'Usak',\n short: '64',\n },\n {\n long: 'Van',\n short: '65',\n },\n {\n long: 'Yalova',\n short: '77',\n },\n {\n long: 'Yozgat',\n short: '66',\n },\n {\n long: 'Zonguldak',\n short: '67',\n },\n ],\n },\n {\n long: 'Turkmenistan',\n short: 'TM',\n regions: [\n {\n long: 'Ahal',\n short: 'A',\n },\n {\n long: 'Asgabat',\n short: 'S',\n },\n {\n long: 'Balkan',\n short: 'B',\n },\n {\n long: 'Dashoguz',\n short: 'D',\n },\n {\n long: 'Lebap',\n short: 'L',\n },\n {\n long: 'Mary',\n short: 'M',\n },\n ],\n },\n {\n long: 'Turks and Caicos Islands',\n short: 'TC',\n regions: [\n {\n long: 'Turks and Caicos Islands',\n short: 'undefined',\n },\n ],\n },\n {\n long: 'Tuvalu',\n short: 'TV',\n regions: [\n {\n long: 'Funafuti',\n short: 'FUN',\n },\n {\n long: 'Nanumanga',\n short: 'NMG',\n },\n {\n long: 'Nanumea',\n short: 'NMA',\n },\n {\n long: 'Niutao',\n short: 'NIT',\n },\n {\n long: 'Nui',\n short: 'NUI',\n },\n {\n long: 'Nukufetau',\n short: 'NKF',\n },\n {\n long: 'Nukulaelae',\n short: 'NKL',\n },\n {\n long: 'Vaitupu',\n short: 'VAU',\n },\n ],\n },\n {\n long: 'Uganda',\n short: 'UG',\n regions: [\n {\n long: 'Abim',\n short: '317',\n },\n {\n long: 'Adjumani',\n short: '301',\n },\n {\n long: 'Amolatar',\n short: '314',\n },\n {\n long: 'Amuria',\n short: '216',\n },\n {\n long: 'Amuru',\n short: '319',\n },\n {\n long: 'Apac',\n short: '302',\n },\n {\n long: 'Arua',\n short: '303',\n },\n {\n long: 'Budaka',\n short: '217',\n },\n {\n long: 'Bududa',\n short: '223',\n },\n {\n long: 'Bugiri',\n short: '201',\n },\n {\n long: 'Bukedea',\n short: '224',\n },\n {\n long: 'Bukwa',\n short: '218',\n },\n {\n long: 'Buliisa',\n short: '419',\n },\n {\n long: 'Bundibugyo',\n short: '401',\n },\n {\n long: 'Bushenyi',\n short: '402',\n },\n {\n long: 'Busia',\n short: '202',\n },\n {\n long: 'Butaleja',\n short: '219',\n },\n {\n long: 'Dokolo',\n short: '318',\n },\n {\n long: 'Gulu',\n short: '304',\n },\n {\n long: 'Hoima',\n short: '403',\n },\n {\n long: 'Ibanda',\n short: '416',\n },\n {\n long: 'Iganga',\n short: '203',\n },\n {\n long: 'Isingiro',\n short: '417',\n },\n {\n long: 'Jinja',\n short: '204',\n },\n {\n long: 'Kaabong',\n short: '315',\n },\n {\n long: 'Kabale',\n short: '404',\n },\n {\n long: 'Kabarole',\n short: '405',\n },\n {\n long: 'Kaberamaido',\n short: '213',\n },\n {\n long: 'Kalangala',\n short: '101',\n },\n {\n long: 'Kaliro',\n short: '220',\n },\n {\n long: 'Kampala',\n short: '102',\n },\n {\n long: 'Kamuli',\n short: '205',\n },\n {\n long: 'Kamwenge',\n short: '413',\n },\n {\n long: 'Kanungu',\n short: '414',\n },\n {\n long: 'Kapchorwa',\n short: '206',\n },\n {\n long: 'Kasese',\n short: '406',\n },\n {\n long: 'Katakwi',\n short: '207',\n },\n {\n long: 'Kayunga',\n short: '112',\n },\n {\n long: 'Kibaale',\n short: '407',\n },\n {\n long: 'Kiboga',\n short: '103',\n },\n {\n long: 'Kiruhura',\n short: '418',\n },\n {\n long: 'Kisoro',\n short: '408',\n },\n {\n long: 'Kitgum',\n short: '305',\n },\n {\n long: 'Koboko',\n short: '316',\n },\n {\n long: 'Kotido',\n short: '306',\n },\n {\n long: 'Kumi',\n short: '208',\n },\n {\n long: 'Kyenjojo',\n short: '415',\n },\n {\n long: 'Lira',\n short: '307',\n },\n {\n long: 'Luwero',\n short: '104',\n },\n {\n long: 'Lyantonde',\n short: '116',\n },\n {\n long: 'Manafwa',\n short: '221',\n },\n {\n long: 'Maracha',\n short: '320',\n },\n {\n long: 'Masaka',\n short: '105',\n },\n {\n long: 'Masindi',\n short: '409',\n },\n {\n long: 'Mayuge',\n short: '214',\n },\n {\n long: 'Mbale',\n short: '209',\n },\n {\n long: 'Mbarara',\n short: '410',\n },\n {\n long: 'Mityana',\n short: '114',\n },\n {\n long: 'Moroto',\n short: '308',\n },\n {\n long: 'Moyo',\n short: '309',\n },\n {\n long: 'Mpigi',\n short: '106',\n },\n {\n long: 'Mubende',\n short: '107',\n },\n {\n long: 'Mukono',\n short: '108',\n },\n {\n long: 'Nakapiripirit',\n short: '311',\n },\n {\n long: 'Nakaseke',\n short: '115',\n },\n {\n long: 'Nakasongola',\n short: '109',\n },\n {\n long: 'Namutumba',\n short: '222',\n },\n {\n long: 'Nebbi',\n short: '310',\n },\n {\n long: 'Ntungamo',\n short: '411',\n },\n {\n long: 'Oyam',\n short: '321',\n },\n {\n long: 'Pader',\n short: '312',\n },\n {\n long: 'Pallisa',\n short: '210',\n },\n {\n long: 'Rakai',\n short: '110',\n },\n {\n long: 'Rukungiri',\n short: '412',\n },\n {\n long: 'Sembabule',\n short: '111',\n },\n {\n long: 'Sironko',\n short: '215',\n },\n {\n long: 'Soroti',\n short: '211',\n },\n {\n long: 'Tororo',\n short: '212',\n },\n {\n long: 'Wakiso',\n short: '113',\n },\n {\n long: 'Yumbe',\n short: '313',\n },\n ],\n },\n {\n long: 'Ukraine',\n short: 'UA',\n regions: [\n {\n long: 'Cherkasy',\n short: '71',\n },\n {\n long: 'Chernihiv',\n short: '74',\n },\n {\n long: 'Chernivtsi',\n short: '77',\n },\n {\n long: 'Dnipropetrovsk',\n short: '12',\n },\n {\n long: 'Donetsk',\n short: '14',\n },\n {\n long: 'Ivano-Frankivsk',\n short: '26',\n },\n {\n long: 'Kharkiv',\n short: '63',\n },\n {\n long: 'Kherson',\n short: '65',\n },\n {\n long: 'Khmelnytskyi',\n short: '68',\n },\n {\n long: 'Kiev',\n short: '32',\n },\n {\n long: 'Kirovohrad',\n short: '35',\n },\n {\n long: 'Luhansk',\n short: '09',\n },\n {\n long: 'Lviv',\n short: '46',\n },\n {\n long: 'Mykolaiv',\n short: '48',\n },\n {\n long: 'Odessa',\n short: '51',\n },\n {\n long: 'Poltava',\n short: '53',\n },\n {\n long: 'Rivne',\n short: '56',\n },\n {\n long: 'Sumy',\n short: '59',\n },\n {\n long: 'Ternopil',\n short: '61',\n },\n {\n long: 'Vinnytsia',\n short: '05',\n },\n {\n long: 'Volyn',\n short: '07',\n },\n {\n long: 'Zakarpattia',\n short: '21',\n },\n {\n long: 'Zaporizhia',\n short: '23',\n },\n {\n long: 'Zhytomyr',\n short: '18',\n },\n {\n long: 'Avtonomna Respublika Krym',\n short: '43',\n },\n {\n long: 'Kyïv',\n short: '30',\n },\n {\n long: 'Sevastopol',\n short: '40',\n },\n ],\n },\n {\n long: 'United Arab Emirates',\n short: 'AE',\n regions: [\n {\n long: 'Abu Dhabi',\n short: 'AZ',\n },\n {\n long: 'Ajman',\n short: 'AJ',\n },\n {\n long: 'Dubai',\n short: 'DU',\n },\n {\n long: 'Fujairah',\n short: 'FU',\n },\n {\n long: 'Ras al Khaimah',\n short: 'RK',\n },\n {\n long: 'Sharjah',\n short: 'SH',\n },\n {\n long: 'Umm Al Quwain',\n short: 'UQ',\n },\n ],\n },\n {\n long: 'United Kingdom',\n short: 'GB',\n regions: [\n {\n long: 'Aberdeen City',\n short: 'ABE',\n },\n {\n long: 'Aberdeenshire',\n short: 'ABD',\n },\n {\n long: 'Angus',\n short: 'ANS',\n },\n {\n long: 'Antrim and Newtownabbey',\n short: 'ANN',\n },\n {\n long: 'Ards and North Down',\n short: 'AND',\n },\n {\n long: 'Argyll and Bute',\n short: 'AGB',\n },\n {\n long: 'Armagh, Banbridge and Craigavon',\n short: 'ABC',\n },\n {\n long: 'Barking and Dagenham',\n short: 'BDG',\n },\n {\n long: 'Barnet',\n short: 'BNE',\n },\n {\n long: 'Barnsley',\n short: 'BNS',\n },\n {\n long: 'Bath and North East Somerset',\n short: 'BAS',\n },\n {\n long: 'Bedford',\n short: 'BDF',\n },\n {\n long: 'Belfast',\n short: 'BFS',\n },\n {\n long: 'Bexley',\n short: 'BEX',\n },\n {\n long: 'Birmingham',\n short: 'BIR',\n },\n {\n long: 'Blackburn with Darwen',\n short: 'BBD',\n },\n {\n long: 'Blackpool',\n short: 'BPL',\n },\n {\n long: 'Blaenau Gwent',\n short: 'BGW',\n },\n {\n long: 'Bolton',\n short: 'BOL',\n },\n {\n long: 'Bournemouth',\n short: 'BMH',\n },\n {\n long: 'Bracknell Forest',\n short: 'BRC',\n },\n {\n long: 'Bradford',\n short: 'BRD',\n },\n {\n long: 'Brent',\n short: 'BEN',\n },\n {\n long: 'Bridgend',\n short: 'BGE',\n },\n {\n long: 'Brighton and Hove',\n short: 'BNH',\n },\n {\n long: 'Bristol, City of',\n short: 'BST',\n },\n {\n long: 'Bromley',\n short: 'BRY',\n },\n {\n long: 'Buckinghamshire',\n short: 'BKM',\n },\n {\n long: 'Bury',\n short: 'BUR',\n },\n {\n long: 'Caerphilly',\n short: 'CAY',\n },\n {\n long: 'Calderdale',\n short: 'CLD',\n },\n {\n long: 'Cambridgeshire',\n short: 'CAM',\n },\n {\n long: 'Camden',\n short: 'CMD',\n },\n {\n long: 'Cardiff',\n short: 'CRF',\n },\n {\n long: 'Carmarthenshire',\n short: 'CMN',\n },\n {\n long: 'Causeway Coast and Glens',\n short: 'CCG',\n },\n {\n long: 'Central Bedfordshire',\n short: 'CBF',\n },\n {\n long: 'Ceredigion',\n short: 'CGN',\n },\n {\n long: 'Cheshire East',\n short: 'CHE',\n },\n {\n long: 'Cheshire West and Chester',\n short: 'CHW',\n },\n {\n long: 'Clackmannanshire',\n short: 'CLK',\n },\n {\n long: 'Conwy',\n short: 'CWY',\n },\n {\n long: 'Cornwall',\n short: 'CON',\n },\n {\n long: 'Coventry',\n short: 'COV',\n },\n {\n long: 'Croydon',\n short: 'CRY',\n },\n {\n long: 'Cumbria',\n short: 'CMA',\n },\n {\n long: 'Darlington',\n short: 'DAL',\n },\n {\n long: 'Denbighshire',\n short: 'DEN',\n },\n {\n long: 'Derby',\n short: 'DER',\n },\n {\n long: 'Derbyshire',\n short: 'DBY',\n },\n {\n long: 'Derry and Strabane',\n short: 'DRS',\n },\n {\n long: 'Devon',\n short: 'DEV',\n },\n {\n long: 'Doncaster',\n short: 'DNC',\n },\n {\n long: 'Dorset',\n short: 'DOR',\n },\n {\n long: 'Dudley',\n short: 'DUD',\n },\n {\n long: 'Dumfries and Galloway',\n short: 'DGY',\n },\n {\n long: 'Dundee City',\n short: 'DND',\n },\n {\n long: 'Durham County',\n short: 'DUR',\n },\n {\n long: 'Ealing',\n short: 'EAL',\n },\n {\n long: 'East Ayrshire',\n short: 'EAY',\n },\n {\n long: 'East Dunbartonshire',\n short: 'EDU',\n },\n {\n long: 'East Lothian',\n short: 'ELN',\n },\n {\n long: 'East Renfrewshire',\n short: 'ERW',\n },\n {\n long: 'East Riding of Yorkshire',\n short: 'ERY',\n },\n {\n long: 'East Sussex',\n short: 'ESX',\n },\n {\n long: 'Edinburgh, City of',\n short: 'EDH',\n },\n {\n long: 'Eilean Siar',\n short: 'ELS',\n },\n {\n long: 'Enfield',\n short: 'ENF',\n },\n {\n long: 'Essex',\n short: 'ESS',\n },\n {\n long: 'Falkirk',\n short: 'FAL',\n },\n {\n long: 'Fermanagh and Omagh',\n short: 'FMO',\n },\n {\n long: 'Fife',\n short: 'FIF',\n },\n {\n long: 'Flintshire',\n short: 'FLN',\n },\n {\n long: 'Gateshead',\n short: 'GAT',\n },\n {\n long: 'Glasgow City',\n short: 'GLG',\n },\n {\n long: 'Gloucestershire',\n short: 'GLS',\n },\n {\n long: 'Greenwich',\n short: 'GRE',\n },\n {\n long: 'Gwynedd',\n short: 'GWN',\n },\n {\n long: 'Hackney',\n short: 'HCK',\n },\n {\n long: 'Halton',\n short: 'HAL',\n },\n {\n long: 'Hammersmith and Fulham',\n short: 'HMF',\n },\n {\n long: 'Hampshire',\n short: 'HAM',\n },\n {\n long: 'Haringey',\n short: 'HRY',\n },\n {\n long: 'Harrow',\n short: 'HRW',\n },\n {\n long: 'Hartlepool',\n short: 'HPL',\n },\n {\n long: 'Havering',\n short: 'HAV',\n },\n {\n long: 'Herefordshire',\n short: 'HEF',\n },\n {\n long: 'Hertfordshire',\n short: 'HRT',\n },\n {\n long: 'Highland',\n short: 'HLD',\n },\n {\n long: 'Hillingdon',\n short: 'HIL',\n },\n {\n long: 'Hounslow',\n short: 'HNS',\n },\n {\n long: 'Inverclyde',\n short: 'IVC',\n },\n {\n long: 'Isle of Anglesey',\n short: 'AGY',\n },\n {\n long: 'Isle of Wight',\n short: 'IOW',\n },\n {\n long: 'Isles of Scilly',\n short: 'IOS',\n },\n {\n long: 'Islington',\n short: 'ISL',\n },\n {\n long: 'Kensington and Chelsea',\n short: 'KEC',\n },\n {\n long: 'Kent',\n short: 'KEN',\n },\n {\n long: 'Kingston upon Hull',\n short: 'KHL',\n },\n {\n long: 'Kingston upon Thames',\n short: 'KTT',\n },\n {\n long: 'Kirklees',\n short: 'KIR',\n },\n {\n long: 'Knowsley',\n short: 'KWL',\n },\n {\n long: 'Lambeth',\n short: 'LBH',\n },\n {\n long: 'Lancashire',\n short: 'LAN',\n },\n {\n long: 'Leeds',\n short: 'LDS',\n },\n {\n long: 'Leicester',\n short: 'LCE',\n },\n {\n long: 'Leicestershire',\n short: 'LEC',\n },\n {\n long: 'Lewisham',\n short: 'LEW',\n },\n {\n long: 'Lincolnshire',\n short: 'LIN',\n },\n {\n long: 'Lisburn and Castlereagh',\n short: 'LBC',\n },\n {\n long: 'Liverpool',\n short: 'LIV',\n },\n {\n long: 'London, City of',\n short: 'LND',\n },\n {\n long: 'Luton',\n short: 'LUT',\n },\n {\n long: 'Manchester',\n short: 'MAN',\n },\n {\n long: 'Medway',\n short: 'MDW',\n },\n {\n long: 'Merthyr Tydfil',\n short: 'MTY',\n },\n {\n long: 'Merton',\n short: 'MRT',\n },\n {\n long: 'Mid and East Antrim',\n short: 'MEA',\n },\n {\n long: 'Mid Ulster',\n short: 'MUL',\n },\n {\n long: 'Middlesbrough',\n short: 'MDB',\n },\n {\n long: 'Midlothian',\n short: 'MLN',\n },\n {\n long: 'Milton Keynes',\n short: 'MIK',\n },\n {\n long: 'Monmouthshire',\n short: 'MON',\n },\n {\n long: 'Moray',\n short: 'MRY',\n },\n {\n long: 'Neath Port Talbot',\n short: 'NTL',\n },\n {\n long: 'Newcastle upon Tyne',\n short: 'NET',\n },\n {\n long: 'Newham',\n short: 'NWM',\n },\n {\n long: 'Newport',\n short: 'NWP',\n },\n {\n long: 'Newry, Mourne and Down',\n short: 'NMD',\n },\n {\n long: 'Norfolk',\n short: 'NFK',\n },\n {\n long: 'North Ayrshire',\n short: 'NAY',\n },\n {\n long: 'North East Lincolnshire',\n short: 'NEL',\n },\n {\n long: 'North Lanarkshire',\n short: 'NLK',\n },\n {\n long: 'North Lincolnshire',\n short: 'NLN',\n },\n {\n long: 'North Somerset',\n short: 'NSM',\n },\n {\n long: 'North Tyneside',\n short: 'NTY',\n },\n {\n long: 'North Yorkshire',\n short: 'NYK',\n },\n {\n long: 'Northamptonshire',\n short: 'NTH',\n },\n {\n long: 'Northumberland',\n short: 'NBL',\n },\n {\n long: 'Nottingham',\n short: 'NGM',\n },\n {\n long: 'Nottinghamshire',\n short: 'NTT',\n },\n {\n long: 'Oldham',\n short: 'OLD',\n },\n {\n long: 'Orkney Islands',\n short: 'ORK',\n },\n {\n long: 'Oxfordshire',\n short: 'OXF',\n },\n {\n long: 'Pembrokeshire',\n short: 'PEM',\n },\n {\n long: 'Perth and Kinross',\n short: 'PKN',\n },\n {\n long: 'Peterborough',\n short: 'PTE',\n },\n {\n long: 'Plymouth',\n short: 'PLY',\n },\n {\n long: 'Poole',\n short: 'POL',\n },\n {\n long: 'Portsmouth',\n short: 'POR',\n },\n {\n long: 'Powys',\n short: 'POW',\n },\n {\n long: 'Reading',\n short: 'RDG',\n },\n {\n long: 'Redbridge',\n short: 'RDB',\n },\n {\n long: 'Redcar and Cleveland',\n short: 'RCC',\n },\n {\n long: 'Renfrewshire',\n short: 'RFW',\n },\n {\n long: 'Rhondda, Cynon, Taff',\n short: 'RCT',\n },\n {\n long: 'Richmond upon Thames',\n short: 'RIC',\n },\n {\n long: 'Rochdale',\n short: 'RCH',\n },\n {\n long: 'Rotherham',\n short: 'ROT',\n },\n {\n long: 'Rutland',\n short: 'RUT',\n },\n {\n long: 'St. Helens',\n short: 'SHN',\n },\n {\n long: 'Salford',\n short: 'SLF',\n },\n {\n long: 'Sandwell',\n short: 'SAW',\n },\n {\n long: 'Scottish Borders, The',\n short: 'SCB',\n },\n {\n long: 'Sefton',\n short: 'SFT',\n },\n {\n long: 'Sheffield',\n short: 'SHF',\n },\n {\n long: 'Shetland Islands',\n short: 'ZET',\n },\n {\n long: 'Shropshire',\n short: 'SHR',\n },\n {\n long: 'Slough',\n short: 'SLG',\n },\n {\n long: 'Solihull',\n short: 'SOL',\n },\n {\n long: 'Somerset',\n short: 'SOM',\n },\n {\n long: 'South Ayrshire',\n short: 'SAY',\n },\n {\n long: 'South Gloucestershire',\n short: 'SGC',\n },\n {\n long: 'South Lanarkshire',\n short: 'SLK',\n },\n {\n long: 'South Tyneside',\n short: 'STY',\n },\n {\n long: 'Southampton',\n short: 'STH',\n },\n {\n long: 'Southend-on-Sea',\n short: 'SOS',\n },\n {\n long: 'Southwark',\n short: 'SWK',\n },\n {\n long: 'Staffordshire',\n short: 'STS',\n },\n {\n long: 'Stirling',\n short: 'STG',\n },\n {\n long: 'Stockport',\n short: 'SKP',\n },\n {\n long: 'Stockton-on-Tees',\n short: 'STT',\n },\n {\n long: 'Stoke-on-Trent',\n short: 'STE',\n },\n {\n long: 'Suffolk',\n short: 'SFK',\n },\n {\n long: 'Sunderland',\n short: 'SND',\n },\n {\n long: 'Surrey',\n short: 'SRY',\n },\n {\n long: 'Sutton',\n short: 'STN',\n },\n {\n long: 'Swansea',\n short: 'SWA',\n },\n {\n long: 'Swindon',\n short: 'SWD',\n },\n {\n long: 'Tameside',\n short: 'TAM',\n },\n {\n long: 'Telford and Wrekin',\n short: 'TFW',\n },\n {\n long: 'Thurrock',\n short: 'THR',\n },\n {\n long: 'Torbay',\n short: 'TOB',\n },\n {\n long: 'Torfaen',\n short: 'TOF',\n },\n {\n long: 'Tower Hamlets',\n short: 'TWH',\n },\n {\n long: 'Trafford',\n short: 'TRF',\n },\n {\n long: 'Vale of Glamorgan, The',\n short: 'VGL',\n },\n {\n long: 'Wakefield',\n short: 'WKF',\n },\n {\n long: 'Walsall',\n short: 'WLL',\n },\n {\n long: 'Waltham Forest',\n short: 'WFT',\n },\n {\n long: 'Wandsworth',\n short: 'WND',\n },\n {\n long: 'Warrington',\n short: 'WRT',\n },\n {\n long: 'Warwickshire',\n short: 'WAR',\n },\n {\n long: 'West Berkshire',\n short: 'WBK',\n },\n {\n long: 'West Dunbartonshire',\n short: 'WDU',\n },\n {\n long: 'West Lothian',\n short: 'WLN',\n },\n {\n long: 'West Sussex',\n short: 'WSX',\n },\n {\n long: 'Westminster',\n short: 'WSM',\n },\n {\n long: 'Wigan',\n short: 'WGN',\n },\n {\n long: 'Wiltshire',\n short: 'WIL',\n },\n {\n long: 'Windsor and Maidenhead',\n short: 'WNM',\n },\n {\n long: 'Wirral',\n short: 'WRL',\n },\n {\n long: 'Wokingham',\n short: 'WOK',\n },\n {\n long: 'Wolverhampton',\n short: 'WLV',\n },\n {\n long: 'Worcestershire',\n short: 'WOR',\n },\n {\n long: 'Wrexham',\n short: 'WRX',\n },\n {\n long: 'York',\n short: 'YOR',\n },\n ],\n },\n {\n long: 'United States',\n short: 'US',\n regions: [\n {\n long: 'Alabama',\n short: 'AL',\n },\n {\n long: 'Alaska',\n short: 'AK',\n },\n {\n long: 'American Samoa',\n short: 'AS',\n },\n {\n long: 'Arizona',\n short: 'AZ',\n },\n {\n long: 'Arkansas',\n short: 'AR',\n },\n {\n long: 'California',\n short: 'CA',\n },\n {\n long: 'Colorado',\n short: 'CO',\n },\n {\n long: 'Connecticut',\n short: 'CT',\n },\n {\n long: 'Delaware',\n short: 'DE',\n },\n {\n long: 'District of Columbia',\n short: 'DC',\n },\n {\n long: 'Micronesia',\n short: 'FM',\n },\n {\n long: 'Florida',\n short: 'FL',\n },\n {\n long: 'Georgia',\n short: 'GA',\n },\n {\n long: 'Guam',\n short: 'GU',\n },\n {\n long: 'Hawaii',\n short: 'HI',\n },\n {\n long: 'Idaho',\n short: 'ID',\n },\n {\n long: 'Illinois',\n short: 'IL',\n },\n {\n long: 'Indiana',\n short: 'IN',\n },\n {\n long: 'Iowa',\n short: 'IA',\n },\n {\n long: 'Kansas',\n short: 'KS',\n },\n {\n long: 'Kentucky',\n short: 'KY',\n },\n {\n long: 'Louisiana',\n short: 'LA',\n },\n {\n long: 'Maine',\n short: 'ME',\n },\n {\n long: 'Marshall Islands',\n short: 'MH',\n },\n {\n long: 'Maryland',\n short: 'MD',\n },\n {\n long: 'Massachusetts',\n short: 'MA',\n },\n {\n long: 'Michigan',\n short: 'MI',\n },\n {\n long: 'Minnesota',\n short: 'MN',\n },\n {\n long: 'Mississippi',\n short: 'MS',\n },\n {\n long: 'Missouri',\n short: 'MO',\n },\n {\n long: 'Montana',\n short: 'MT',\n },\n {\n long: 'Nebraska',\n short: 'NE',\n },\n {\n long: 'Nevada',\n short: 'NV',\n },\n {\n long: 'New Hampshire',\n short: 'NH',\n },\n {\n long: 'New Jersey',\n short: 'NJ',\n },\n {\n long: 'New Mexico',\n short: 'NM',\n },\n {\n long: 'New York',\n short: 'NY',\n },\n {\n long: 'North Carolina',\n short: 'NC',\n },\n {\n long: 'North Dakota',\n short: 'ND',\n },\n {\n long: 'Northern Mariana Islands',\n short: 'MP',\n },\n {\n long: 'Ohio',\n short: 'OH',\n },\n {\n long: 'Oklahoma',\n short: 'OK',\n },\n {\n long: 'Oregon',\n short: 'OR',\n },\n {\n long: 'Palau',\n short: 'PW',\n },\n {\n long: 'Pennsylvania',\n short: 'PA',\n },\n {\n long: 'Puerto Rico',\n short: 'PR',\n },\n {\n long: 'Rhode Island',\n short: 'RI',\n },\n {\n long: 'South Carolina',\n short: 'SC',\n },\n {\n long: 'South Dakota',\n short: 'SD',\n },\n {\n long: 'Tennessee',\n short: 'TN',\n },\n {\n long: 'Texas',\n short: 'TX',\n },\n {\n long: 'Utah',\n short: 'UT',\n },\n {\n long: 'Vermont',\n short: 'VT',\n },\n {\n long: 'Virgin Islands',\n short: 'VI',\n },\n {\n long: 'Virginia',\n short: 'VA',\n },\n {\n long: 'Washington',\n short: 'WA',\n },\n {\n long: 'West Virginia',\n short: 'WV',\n },\n {\n long: 'Wisconsin',\n short: 'WI',\n },\n {\n long: 'Wyoming',\n short: 'WY',\n },\n {\n long: 'Armed Forces Americas',\n short: 'AA',\n },\n {\n long: 'Armed Forces Europe, Canada, Africa and Middle East',\n short: 'AE',\n },\n {\n long: 'Armed Forces Pacific',\n short: 'AP',\n },\n ],\n },\n {\n long: 'United States Minor Outlying Islands',\n short: 'UM',\n regions: [\n {\n long: 'Baker Island',\n short: '81',\n },\n {\n long: 'Howland Island',\n short: '84',\n },\n {\n long: 'Jarvis Island',\n short: '86',\n },\n {\n long: 'Johnston Atoll',\n short: '67',\n },\n {\n long: 'Kingman Reef',\n short: '89',\n },\n {\n long: 'Midway Islands',\n short: '71',\n },\n {\n long: 'Navassa Island',\n short: '76',\n },\n {\n long: 'Palmyra Atoll',\n short: '95',\n },\n {\n long: 'Wake Island',\n short: '79',\n },\n {\n long: 'Bajo Nuevo Bank',\n short: 'BN',\n },\n {\n long: 'Serranilla Bank',\n short: 'SB',\n },\n ],\n },\n {\n long: 'Uruguay',\n short: 'UY',\n regions: [\n {\n long: 'Artigas',\n short: 'AR',\n },\n {\n long: 'Canelones',\n short: 'CA',\n },\n {\n long: 'Cerro Largo',\n short: 'CL',\n },\n {\n long: 'Colonia',\n short: 'CO',\n },\n {\n long: 'Durazno',\n short: 'DU',\n },\n {\n long: 'Flores',\n short: 'FS',\n },\n {\n long: 'Florida',\n short: 'FD',\n },\n {\n long: 'Lavalleja',\n short: 'LA',\n },\n {\n long: 'Maldonado',\n short: 'MA',\n },\n {\n long: 'Montevideo',\n short: 'MO',\n },\n {\n long: 'Paysandú',\n short: 'PA',\n },\n {\n long: 'Río Negro',\n short: 'RN',\n },\n {\n long: 'Rivera',\n short: 'RV',\n },\n {\n long: 'Rocha',\n short: 'RO',\n },\n {\n long: 'Salto',\n short: 'SA',\n },\n {\n long: 'San José',\n short: 'SJ',\n },\n {\n long: 'Soriano',\n short: 'SO',\n },\n {\n long: 'Tacuarembó',\n short: 'TA',\n },\n {\n long: 'Treinta y Tres',\n short: 'TT',\n },\n ],\n },\n {\n long: 'Uzbekistan',\n short: 'UZ',\n regions: [\n {\n long: 'Toshkent shahri',\n short: 'TK',\n },\n {\n long: 'Andijon',\n short: 'AN',\n },\n {\n long: 'Buxoro',\n short: 'BU',\n },\n {\n long: 'Farg‘ona',\n short: 'FA',\n },\n {\n long: 'Jizzax',\n short: 'JI',\n },\n {\n long: 'Namangan',\n short: 'NG',\n },\n {\n long: 'Navoiy',\n short: 'NW',\n },\n {\n long: 'Qashqadaryo (Qarshi)',\n short: 'QA',\n },\n {\n long: 'Samarqand',\n short: 'SA',\n },\n {\n long: 'Sirdaryo (Guliston)',\n short: 'SI',\n },\n {\n long: 'Surxondaryo (Termiz)',\n short: 'SU',\n },\n {\n long: 'Toshkent wiloyati',\n short: 'TO',\n },\n {\n long: 'Xorazm (Urganch)',\n short: 'XO',\n },\n {\n long: 'Qoraqalpog‘iston Respublikasi (Nukus)',\n short: 'QR',\n },\n ],\n },\n {\n long: 'Vanuatu',\n short: 'VU',\n regions: [\n {\n long: 'Malampa',\n short: 'MAP',\n },\n {\n long: 'Pénama',\n short: 'PAM',\n },\n {\n long: 'Sanma',\n short: 'SAM',\n },\n {\n long: 'Shéfa',\n short: 'SEE',\n },\n {\n long: 'Taféa',\n short: 'TAE',\n },\n {\n long: 'Torba',\n short: 'TOB',\n },\n ],\n },\n {\n long: 'Venezuela, Bolivarian Republic of',\n short: 'VE',\n regions: [\n {\n long: 'Dependencias Federales',\n short: 'W',\n },\n {\n long: 'Distrito Federal',\n short: 'A',\n },\n {\n long: 'Amazonas',\n short: 'Z',\n },\n {\n long: 'Anzoátegui',\n short: 'B',\n },\n {\n long: 'Apure',\n short: 'C',\n },\n {\n long: 'Aragua',\n short: 'D',\n },\n {\n long: 'Barinas',\n short: 'E',\n },\n {\n long: 'Bolívar',\n short: 'F',\n },\n {\n long: 'Carabobo',\n short: 'G',\n },\n {\n long: 'Cojedes',\n short: 'H',\n },\n {\n long: 'Delta Amacuro',\n short: 'Y',\n },\n {\n long: 'Falcón',\n short: 'I',\n },\n {\n long: 'Guárico',\n short: 'J',\n },\n {\n long: 'Lara',\n short: 'K',\n },\n {\n long: 'Mérida',\n short: 'L',\n },\n {\n long: 'Miranda',\n short: 'M',\n },\n {\n long: 'Monagas',\n short: 'N',\n },\n {\n long: 'Nueva Esparta',\n short: 'O',\n },\n {\n long: 'Portuguesa',\n short: 'P',\n },\n {\n long: 'Sucre',\n short: 'R',\n },\n {\n long: 'Táchira',\n short: 'S',\n },\n {\n long: 'Trujillo',\n short: 'T',\n },\n {\n long: 'Vargas',\n short: 'X',\n },\n {\n long: 'Yaracuy',\n short: 'U',\n },\n {\n long: 'Zulia',\n short: 'V',\n },\n ],\n },\n {\n long: 'Vietnam',\n short: 'VN',\n regions: [\n {\n long: 'An Giang',\n short: '44',\n },\n {\n long: 'Bà Rịa - Vũng Tàu',\n short: '43',\n },\n {\n long: 'Bình Dương',\n short: '57',\n },\n {\n long: 'Bình Phước',\n short: '58',\n },\n {\n long: 'Bình Định',\n short: '31',\n },\n {\n long: 'Bình Thuận',\n short: '40',\n },\n {\n long: 'Bạc Liêu',\n short: '55',\n },\n {\n long: 'Bắc Giang',\n short: '54',\n },\n {\n long: 'Bắc Kạn',\n short: '53',\n },\n {\n long: 'Bắc Ninh',\n short: '56',\n },\n {\n long: 'Bến Tre',\n short: '50',\n },\n {\n long: 'Cao Bằng',\n short: '04',\n },\n {\n long: 'Cà Mau',\n short: 'undefined',\n },\n {\n long: 'Đắk Lắk',\n short: '33',\n },\n {\n long: 'Đắk Nông',\n short: '72',\n },\n {\n long: 'Điện Biên',\n short: '71',\n },\n {\n long: 'Đồng Nai',\n short: '39',\n },\n {\n long: 'Đồng Tháp',\n short: '45',\n },\n {\n long: 'Gia Lai',\n short: '30',\n },\n {\n long: 'Hà Giang',\n short: '03',\n },\n {\n long: 'Hà Nam',\n short: '63',\n },\n {\n long: 'Hà Tây',\n short: '15',\n },\n {\n long: 'Hà Tĩnh',\n short: '23',\n },\n {\n long: 'Hải Dương',\n short: '61',\n },\n {\n long: 'Hậu Giang',\n short: '73',\n },\n {\n long: 'Hòa Bình',\n short: '14',\n },\n {\n long: 'Hưng Yên',\n short: '66',\n },\n {\n long: 'Khánh Hòa',\n short: '34',\n },\n {\n long: 'Kiên Giang',\n short: '47',\n },\n {\n long: 'Kon Tum',\n short: '28',\n },\n {\n long: 'Lai Châu',\n short: '01',\n },\n {\n long: 'Lâm Đồng',\n short: '35',\n },\n {\n long: 'Lạng Sơn',\n short: '09',\n },\n {\n long: 'Lào Cai',\n short: '02',\n },\n {\n long: 'Long An',\n short: '41',\n },\n {\n long: 'Nam Định',\n short: '67',\n },\n {\n long: 'Nghệ An',\n short: '22',\n },\n {\n long: 'Ninh Bình',\n short: '18',\n },\n {\n long: 'Ninh Thuận',\n short: '36',\n },\n {\n long: 'Phú Thọ',\n short: '68',\n },\n {\n long: 'Phú Yên',\n short: '32',\n },\n {\n long: 'Quảng Bình',\n short: '24',\n },\n {\n long: 'Quảng Nam',\n short: '27',\n },\n {\n long: 'Quảng Ngãi',\n short: '29',\n },\n {\n long: 'Quảng Ninh',\n short: '13',\n },\n {\n long: 'Quảng Trị',\n short: '25',\n },\n {\n long: 'Sóc Trăng',\n short: '52',\n },\n {\n long: 'Sơn La',\n short: '05',\n },\n {\n long: 'Tây Ninh',\n short: '37',\n },\n {\n long: 'Thái Bình',\n short: '20',\n },\n {\n long: 'Thái Nguyên',\n short: '69',\n },\n {\n long: 'Thanh Hóa',\n short: '21',\n },\n {\n long: 'Thừa Thiên–Huế',\n short: '26',\n },\n {\n long: 'Tiền Giang',\n short: '46',\n },\n {\n long: 'Trà Vinh',\n short: '51',\n },\n {\n long: 'Tuyên Quang',\n short: '07',\n },\n {\n long: 'Vĩnh Long',\n short: '49',\n },\n {\n long: 'Vĩnh Phúc',\n short: '70',\n },\n {\n long: 'Yên Bái',\n short: '06',\n },\n {\n long: 'Cần Thơ',\n short: 'CT',\n },\n {\n long: 'Đà Nẵng',\n short: 'DN',\n },\n {\n long: 'Hà Nội',\n short: 'HN',\n },\n {\n long: 'Hải Phòng',\n short: 'HP',\n },\n {\n long: 'Hồ Chí Minh (Sài Gòn)',\n short: 'SG',\n },\n ],\n },\n {\n long: 'Virgin Islands, British',\n short: 'VG',\n regions: [\n {\n long: 'Anegada',\n short: 'ANG',\n },\n {\n long: 'Jost Van Dyke',\n short: 'JVD',\n },\n {\n long: 'Tortola',\n short: 'TTA',\n },\n {\n long: 'Virgin Gorda',\n short: 'VGD',\n },\n ],\n },\n {\n long: 'Virgin Islands, U.S.',\n short: 'VI',\n regions: [\n {\n long: 'St. Thomas',\n short: 'STH',\n },\n {\n long: 'St. John',\n short: 'SJO',\n },\n {\n long: 'St. Croix',\n short: 'SCR',\n },\n ],\n },\n {\n long: 'Wallis and Futuna',\n short: 'WF',\n regions: [\n {\n long: 'Alo',\n short: 'ALO',\n },\n {\n long: 'Sigave',\n short: 'SIG',\n },\n {\n long: 'Wallis',\n short: 'WAL',\n },\n ],\n },\n {\n long: 'Western Sahara',\n short: 'EH',\n regions: [\n {\n long: 'Es Smara',\n short: 'ESM',\n },\n {\n long: 'Boujdour',\n short: 'BOD',\n },\n {\n long: 'Laâyoune',\n short: 'LAA',\n },\n {\n long: 'Aousserd',\n short: 'AOU',\n },\n {\n long: 'Oued ed Dahab',\n short: 'OUD',\n },\n ],\n },\n {\n long: 'Yemen',\n short: 'YE',\n regions: [\n {\n long: 'Abyān',\n short: 'AB',\n },\n {\n long: \"'Adan\",\n short: 'AD',\n },\n {\n long: \"Aḑ Ḑāli'\",\n short: 'DA',\n },\n {\n long: \"Al Bayḑā'\",\n short: 'BA',\n },\n {\n long: 'Al Ḩudaydah',\n short: 'HU',\n },\n {\n long: 'Al Jawf',\n short: 'JA',\n },\n {\n long: 'Al Mahrah',\n short: 'MR',\n },\n {\n long: 'Al Maḩwīt',\n short: 'MW',\n },\n {\n long: \"'Amrān\",\n short: 'AM',\n },\n {\n long: 'Dhamār',\n short: 'DH',\n },\n {\n long: 'Ḩaḑramawt',\n short: 'HD',\n },\n {\n long: 'Ḩajjah',\n short: 'HJ',\n },\n {\n long: 'Ibb',\n short: 'IB',\n },\n {\n long: 'Laḩij',\n short: 'LA',\n },\n {\n long: \"Ma'rib\",\n short: 'MA',\n },\n {\n long: 'Raymah',\n short: 'RA',\n },\n {\n long: 'Şā‘dah',\n short: 'SD',\n },\n {\n long: \"Şan‘ā'\",\n short: 'SN',\n },\n {\n long: 'Shabwah',\n short: 'SH',\n },\n {\n long: 'Tā‘izz',\n short: 'TA',\n },\n ],\n },\n {\n long: 'Zambia',\n short: 'ZM',\n regions: [\n {\n long: 'Central',\n short: '02',\n },\n {\n long: 'Copperbelt',\n short: '08',\n },\n {\n long: 'Eastern',\n short: '03',\n },\n {\n long: 'Luapula',\n short: '04',\n },\n {\n long: 'Lusaka',\n short: '09',\n },\n {\n long: 'Northern',\n short: '05',\n },\n {\n long: 'North-Western',\n short: '06',\n },\n {\n long: 'Southern',\n short: '07',\n },\n {\n long: 'Western',\n short: '01',\n },\n ],\n },\n {\n long: 'Zimbabwe',\n short: 'ZW',\n regions: [\n {\n long: 'Bulawayo',\n short: 'BU',\n },\n {\n long: 'Harare',\n short: 'HA',\n },\n {\n long: 'Manicaland',\n short: 'MA',\n },\n {\n long: 'Mashonaland Central',\n short: 'MC',\n },\n {\n long: 'Mashonaland East',\n short: 'ME',\n },\n {\n long: 'Mashonaland West',\n short: 'MW',\n },\n {\n long: 'Masvingo',\n short: 'MV',\n },\n {\n long: 'Matabeleland North',\n short: 'MN',\n },\n {\n long: 'Matabeleland South',\n short: 'MS',\n },\n {\n long: 'Midlands',\n short: 'MI',\n },\n ],\n },\n]\n","import React, { useState } from 'react'\nimport { FileUploader } from '@mobilizeyourtech/vision-core-react'\nimport { ImageCroppingTool } from './ImageCroppingTool'\nimport { CButton } from '@coreui/react'\nimport classnames from 'classnames'\nimport {\n FILE_UPLOAD_MAX_SIZE_BYTES,\n FILE_UPLOAD_MAX_SIZE_CONTENT,\n UNCLASSIFIED_WARNING_PROMPT,\n} from '../../lib/helpers/utils'\n\nexport type TProps = {\n onFile: (file: File | undefined) => void\n value: File | string | undefined\n required?: boolean\n 'data-testid'?: string\n hideUploaderPlaceholder?: boolean\n}\nenum Mode {\n UPLOAD,\n EDIT,\n}\nexport const SingleImageUploader = (props: TProps) => {\n const [mode, setMode] = useState(props.value ? Mode.EDIT : Mode.UPLOAD)\n const [value, setValue] = useState(props.value)\n const [isValidationSuspended, setIsValidationSuspended] = useState(false)\n\n const renderUploader = () => {\n return (\n {\n setValue(acceptedFiles[0])\n setMode(Mode.EDIT)\n }}\n text=\"Drop image file or click to upload.\"\n subText={UNCLASSIFIED_WARNING_PROMPT}\n additionalText={FILE_UPLOAD_MAX_SIZE_CONTENT}\n accept={[\n { value: 'image/jpg', displayValue: 'JPEG' },\n { value: 'image/jpeg', displayValue: 'JPEG' },\n { value: 'image/png', displayValue: 'PNG' },\n ]}\n hidePlaceholder={props.hideUploaderPlaceholder}\n maxSize={FILE_UPLOAD_MAX_SIZE_BYTES}\n />\n )\n }\n\n const renderImageCroppingTool = () => {\n return (\n {\n setIsValidationSuspended(suspense)\n setValue(value)\n props.onFile(value)\n }}\n />\n )\n }\n\n const render = () => {\n switch (mode) {\n case Mode.UPLOAD:\n return renderUploader()\n case Mode.EDIT:\n return renderImageCroppingTool()\n }\n }\n\n return (\n \n
\n {props.required && (\n \n )}\n {render()}\n
\n {\n setMode(Mode.UPLOAD)\n props.onFile(undefined)\n }}\n >\n \n \n
\n
\n\n {isValidationSuspended && (\n
\n \n \n \n
\n )}\n \n )\n}\n","import React from 'react'\nimport { CAlert } from '@coreui/react'\n\ntype TProps = {\n color?: string\n message: string | undefined\n onToggleAlert?: () => void\n 'data-testid'?: string\n}\n\nexport const Alert = (props: TProps) => {\n return (\n \n

{props.message}

\n {props.onToggleAlert && (\n props.onToggleAlert!()}\n />\n )}\n \n )\n}\n","import React, { useState, useCallback, useEffect } from 'react'\nimport Cropper from 'react-easy-crop'\nimport { Point, Area } from 'react-easy-crop/types'\nimport { ApplicationStore, NotificationStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { useDebouncedCallback } from 'use-debounce'\n\ntype TProps = {\n image: File | string\n onCrop: (file: File | undefined, suspense: boolean) => void\n notificationStore?: NotificationStore\n debounceCropMs?: number\n}\n\nexport const ImageCroppingTool = inject(ApplicationStore.names.notificationStore)(\n observer((props: TProps) => {\n const [croppedPixels, onCropPixels] = useState(undefined)\n const [zoom, onZoomChange] = useState(1)\n const [rotation, onRotationChange] = useState(0)\n const [crop, onCropChange] = useState({ x: 0, y: 0 })\n const [_image] = useState(\n props.image instanceof File ? URL.createObjectURL(props.image) : props.image,\n )\n\n const doPerformCrop = async () => {\n try {\n const blob: Blob | null = await getCroppedImageBlob()\n const file: File | null = blob && blobToFile(blob)\n props.onCrop(file ? file : undefined, false)\n } catch (err) {\n handleRejection()\n }\n }\n\n const debouncedCrop = useDebouncedCallback(\n // function\n doPerformCrop,\n // delay in ms\n props.debounceCropMs == null ? 300 : props.debounceCropMs,\n )\n\n const cropImage = () => {\n props.onCrop(undefined, true)\n debouncedCrop()\n }\n\n useEffect(() => {\n croppedPixels && cropImage()\n }, [croppedPixels, crop, rotation, zoom])\n\n const blobToFile = (blob: Blob) => {\n return new File([blob], 'image.jpg', {\n type: 'image/jpeg',\n })\n }\n\n const onCropComplete = useCallback((croppedArea: Area, croppedAreaPixels: Area) => {\n onCropPixels(croppedAreaPixels)\n }, [])\n\n const createImage = async (url: string) => {\n const imagePromise: Promise = new Promise((resolve, reject) => {\n const newImage = new Image()\n newImage.src = url\n newImage.onload = () => resolve(newImage)\n newImage.onerror = () => {\n handleRejection()\n reject('Error loading image')\n }\n })\n return imagePromise\n }\n\n const handleRejection = () => {\n return props.notificationStore?.setNotificationMessage(\n 'Something went wrong while processing image, please try again later',\n 'error',\n 3000,\n )\n }\n\n const getCroppedImageBlob = async (\n flip = { horizontal: false, vertical: false },\n ): Promise => {\n const image = await createImage(_image)\n const canvas: HTMLCanvasElement = document.createElement('canvas')\n const ctx: CanvasRenderingContext2D | null = canvas.getContext('2d')\n\n if (!ctx || !croppedPixels?.width || !croppedPixels?.height) {\n return null\n }\n\n // calculate rotation radian angle\n const rotationRadian = (rotation * Math.PI) / 180\n const rotateSize = (width: number, height: number, rotation: number) => {\n return {\n width:\n Math.abs(Math.cos(rotationRadian) * width) +\n Math.abs(Math.sin(rotationRadian) * height),\n height:\n Math.abs(Math.sin(rotationRadian) * width) +\n Math.abs(Math.cos(rotationRadian) * height),\n }\n }\n\n if (image) {\n // calculate bounding box of the rotated image\n const { width: bBoxWidth, height: bBoxHeight } = rotateSize(\n image.width,\n image.height,\n rotation,\n )\n\n // set canvas size to match the bounding box\n canvas.width = bBoxWidth\n canvas.height = bBoxHeight\n\n // translate canvas context to a central location to allow rotating and flipping around the center\n ctx.translate(bBoxWidth / 2, bBoxHeight / 2)\n ctx.rotate(rotationRadian)\n ctx.scale(flip.horizontal ? -1 : 1, flip.vertical ? -1 : 1)\n ctx.translate(-image.width / 2, -image.height / 2)\n\n // Transparent background\n ctx.fillStyle = 'rgba(255, 255, 255, 1)'\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n // draw rotated image\n ctx.drawImage(image, 0, 0)\n }\n\n // croppedAreaPixels values are bounding box relative\n // extract the cropped image using these values\n const data = ctx.getImageData(\n croppedPixels.x,\n croppedPixels.y,\n croppedPixels.width,\n croppedPixels.height,\n )\n\n // set canvas width to final desired crop size - this will clear existing context\n canvas.width = croppedPixels.width\n canvas.height = croppedPixels.height\n\n // paste generated rotate image at the top left corner\n ctx.putImageData(data, 0, 0)\n\n // As a blob\n const blob: Promise = new Promise((resolve) => {\n canvas?.toBlob((blob) => {\n resolve(blob)\n }, 'image/jpeg')\n })\n\n return blob\n }\n\n return (\n
\n
\n
\n \n
\n
\n
\n )\n }),\n)\n","import { countryRegionData } from './countryRegionData'\n\nexport const getCountryShort = (short: string) => countryRegionData.find((e) => e.short === short)\nexport const getCountryLong = (long: string) => countryRegionData.find((e) => e.long === long)\n","import React, { InputHTMLAttributes } from 'react'\nimport { CFormFeedback, CFormSelect } from '@coreui/react'\nimport classNames from 'classnames'\nimport { useValidation } from '../../lib/hooks'\nimport { CFormSelectProps } from '@coreui/react/dist/components/form/CFormSelect'\n\nexport type ValidatedSelectProps

= Omit & {\n value?: string\n required?: boolean\n validate: (v: string) => string | undefined\n onChange: (v: string | undefined) => any\n renderInvalidMessage?: (invalidReason: string | undefined) => string | undefined\n}\n\n/**\n * Helper wrapper component around CoreUI CFormInput to consistently apply more modern reactive validation\n * @param props\n * @constructor\n */\nexport function ValidatedCFormSelect(\n props: ValidatedSelectProps>,\n) {\n const { value, validate, renderInvalidMessage, onChange, required, ...rest } = props\n\n const {\n value: _value,\n setValue,\n isValid,\n invalidReason,\n showInvalidReason,\n invokeValidation,\n invalidMessage,\n } = useValidation({\n value: value || '',\n validate,\n required,\n onChange,\n renderInvalidMessage,\n })\n\n return (\n

\n {props.required && (\n \n )}\n setValue(v)}\n valid={isValid}\n invalid={showInvalidReason && !!invalidReason}\n onBlur={() => invokeValidation()}\n required={required}\n >\n {rest.children}\n \n\n {showInvalidReason && (\n {invalidReason !== 'required' && invalidMessage}\n )}\n
\n )\n}\n","import { isTCountry, isTRegion, TCountry, TRegion } from '../../lib/geography/countryRegionData'\nimport React from 'react'\nimport { getCountryShort } from '../../lib/geography/utils'\nimport { ValidatedCFormSelect } from './ValidatedCFormSelect'\n\ntype TProps = {\n onSelect: (val: TRegion | undefined) => void\n country?: string | TCountry\n value?: string | TRegion\n id?: string\n required?: boolean\n 'data-testid'?: string\n}\nexport const RegionSelectInput = (props: TProps) => {\n const getCountry = () => {\n if (props.country && !props.value) {\n return isTCountry(props.country) ? props.country.short : props.country\n }\n return 'US'\n }\n\n return (\n {\n value === '-1'\n ? props.onSelect(undefined)\n : props.onSelect(getCountryShort(getCountry())!.regions.find((r) => r.short === value)!)\n }}\n value={isTRegion(props.value) ? props.value.short : props.value || ''}\n required={props.required}\n data-testid={props['data-testid'] ? props['data-testid'] : 'region-input-select'}\n validate={(v) => (v ? undefined : 'required')}\n >\n \n {getCountryShort(getCountry())!.regions.map((r) => (\n \n ))}\n \n )\n}\n","import { countryRegionData, isTCountry, TCountry } from '../../lib/geography/countryRegionData'\nimport React from 'react'\nimport { ValidatedCFormSelect } from './ValidatedCFormSelect'\n\ntype TProps = {\n onSelect: (val: TCountry | undefined) => void\n value?: string | TCountry\n id?: string\n required?: boolean\n 'data-testid'?: string\n}\nexport const CountrySelectInput = (props: TProps) => {\n return (\n {\n value === '-1'\n ? props.onSelect(undefined)\n : props.onSelect(countryRegionData.find((r) => r.short === value)!)\n }}\n value={isTCountry(props.value) ? props.value.short : props.value || ''}\n required={props.required}\n data-testid={props['data-testid'] ? props['data-testid'] : 'country-input-select'}\n validate={(v) => (v ? undefined : 'required')}\n >\n \n {countryRegionData.map((r) => (\n \n ))}\n \n )\n}\n","import React, { useEffect } from 'react'\nimport { getTimezoneOptions, i18nTimezones, ITimezone, parseTimezone } from '../../lib/time'\nimport { CFormSelectProps } from '@coreui/react/dist/components/form/CFormSelect'\nimport { ValidatedCFormSelect } from './ValidatedCFormSelect'\n\nexport type ILabelStyle = 'original' | 'altName' | 'abbrev'\n\ntype TProps = {\n value?: ITimezone\n onSelect: (option: ITimezone | undefined) => void\n placeholder?: string\n labelStyle?: ILabelStyle\n} & Omit\n\nexport const TimezoneSelect = (props: TProps) => {\n const timezones = i18nTimezones\n\n const { value, onSelect, placeholder, labelStyle, ...rest } = props\n\n useEffect(() => {\n if (!props.value) {\n const defaultTz = parseTimezone(Intl.DateTimeFormat().resolvedOptions().timeZone, getOptions)\n defaultTz && props.onSelect(defaultTz)\n }\n }, [props.value])\n\n const getOptions = React.useMemo(() => {\n return getTimezoneOptions(labelStyle)\n }, [labelStyle, timezones])\n\n const validate = (v: string) => {\n if (rest.required) {\n return v ? undefined : 'required'\n }\n }\n\n return (\n
\n {\n props.onSelect(parseTimezone(v!, getOptions))\n }}\n value={(!!props.value && parseTimezone(props.value, getOptions)?.value) || ''}\n validate={validate}\n >\n {getOptions.map((o) => {\n return (\n \n {o.label.split('_').join(' ')}\n \n )\n })}\n \n
\n )\n}\n","import { CFormInputProps } from '@coreui/react/dist/components/form/CFormInput'\nimport React, { InputHTMLAttributes } from 'react'\nimport { CFormFeedback, CFormInput } from '@coreui/react'\nimport classNames from 'classnames'\nimport { useValidation } from '../../lib/hooks'\n\nexport type ValidatedInputProps

= Omit & {\n value?: string\n required?: boolean\n asterisk?: string\n validate: (v: string) => string | undefined\n onChange: (v: string | undefined) => any\n renderInvalidMessage: (invalidReason: string | undefined) => string | undefined\n}\n\n/**\n * Helper wrapper component around CoreUI CFormInput to consistently apply more modern reactive validation\n * @param props\n * @constructor\n */\nexport function ValidatedCFormInput(\n props: ValidatedInputProps>,\n) {\n const { value, validate, renderInvalidMessage, onChange, required, ...rest } = props\n\n const {\n value: _value,\n setValue,\n isValid,\n invalidReason,\n showInvalidReason,\n invokeValidation,\n invalidMessage,\n } = useValidation({\n value: value || '',\n validate,\n required,\n onChange,\n renderInvalidMessage,\n })\n\n return (\n

\n {props.required && (\n \n )}\n {\n setValue(v)\n }}\n valid={required ? isValid : !!_value && isValid}\n invalid={showInvalidReason && !!invalidReason}\n onBlur={() => invokeValidation()}\n required={required}\n />\n {showInvalidReason && (\n {invalidReason !== 'required' && invalidMessage}\n )}\n
\n )\n}\n","import React, { InputHTMLAttributes } from 'react'\nimport { CFormFeedback, CFormTextarea } from '@coreui/react'\nimport classNames from 'classnames'\nimport { useValidation } from '../../lib/hooks'\nimport { CFormTextareaProps } from '@coreui/react/dist/components/form/CFormTextarea'\n\nexport type ValidatedInputProps

= Omit & {\n value?: string\n required?: boolean\n asterisk?: string\n validate: (v: string) => string | undefined\n onChange: (v: string | undefined) => any\n renderInvalidMessage: (invalidReason: string | undefined) => string | undefined\n}\n\n/**\n * Helper wrapper component around CoreUI CFormInput to consistently apply more modern reactive validation\n * @param props\n * @constructor\n */\nexport function ValidatedCFormTextArea(\n props: ValidatedInputProps>,\n) {\n const { value, validate, renderInvalidMessage, onChange, required, ...rest } = props\n\n const {\n value: _value,\n setValue,\n isValid,\n invalidReason,\n showInvalidReason,\n invokeValidation,\n invalidMessage,\n } = useValidation({\n value: value || '',\n validate,\n required,\n onChange,\n renderInvalidMessage,\n })\n\n return (\n

\n {props.required && (\n \n )}\n {\n setValue(v)\n }}\n valid={isValid}\n invalid={showInvalidReason && !!invalidReason}\n onBlur={() => invokeValidation()}\n required={required}\n />\n {showInvalidReason && (\n {invalidReason !== 'required' && invalidMessage}\n )}\n
\n )\n}\n","import React, { useEffect, useState } from 'react'\nimport { ApplicationStore, NotificationStore, UserData } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { CDropdownProps } from '@coreui/react/dist/components/dropdown/CDropdown'\nimport { ValidatedCFormSelect } from './ValidatedCFormSelect'\n\ntype TProps = Omit<\n CDropdownProps & React.RefAttributes,\n 'value' | 'onChange'\n> & {\n value?: UserData\n onChange: (value: UserData | undefined) => void\n getDataFunction: () => Promise>\n notificationStore?: NotificationStore\n}\n\nexport const SingleUserSelect = inject(\n ApplicationStore.names.accountStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [users, setUsers] = useState>([])\n const { getDataFunction } = props\n\n useEffect(() => {\n getDataFunction()\n .then((data) => {\n setUsers(data)\n })\n .catch((err) => {\n props.notificationStore?.setNotificationMessage(\n 'Failed to get user data. Please try again',\n 'danger',\n 3000,\n )\n // TODO notificationStore\n })\n }, [])\n\n const makeUserLabel = (user: UserData) => {\n return `${user.firstName} ${user.lastName}`\n }\n\n const handleChange = (id: string | undefined) => {\n props.onChange(users?.find((u) => u.id.toString() === id))\n return\n }\n\n return (\n handleChange(v)}\n value={props.value?.id.toString()}\n required\n data-testid={'single-user-select'}\n validate={(v) => (v ? undefined : 'required')}\n >\n {users?.map((u) => (\n \n ))}\n \n )\n }),\n)\n","import React, { useEffect, useState } from 'react'\nimport GooglePlacesAutocomplete, { geocodeByPlaceId } from 'react-google-places-autocomplete'\nimport { arrayContainsAny, objectIsEmpty } from '../../lib/helpers/utils'\nimport { AddressForm } from '../form/fragments'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore } from '../../stores'\nimport GooglePlacesAutocompleteProps from 'react-google-places-autocomplete/build/GooglePlacesAutocomplete.types'\n\nexport type GoogleAddressData = {\n addressLine1: string\n addressLine1Parts?: {\n streetNumber?: string\n street?: string\n }\n addressLine2?: string\n addressLine3?: string\n city: string\n stateOrProvince: string\n country: string\n postalCode: string\n}\n\nexport type GoogleSuggestAddressInputProps = {\n onChange: (value: Partial | undefined) => void\n value: Partial\n required?: boolean\n applicationStore?: ApplicationStore\n isEditForm?: boolean\n hideManualEntry?: boolean\n googlePlacesAutoCompleteProps?: Omit<\n GooglePlacesAutocompleteProps,\n 'apiKey' | 'debounce' | 'minLengthAutocomplete' | 'selectProps'\n >\n placeholder?: string\n}\n\n/**\n * Wrapper for google address select\n * @param props\n * @constructor\n */\nexport const GoogleSuggestAddressInput = inject('applicationStore')(\n observer(\n ({\n hideManualEntry,\n googlePlacesAutoCompleteProps,\n placeholder = 'Search address...',\n ...props\n }: GoogleSuggestAddressInputProps) => {\n const [googlePlaceData, setGooglePlaceData] = useState()\n const [rawFormVisible, setRawFormVisible] = useState(false)\n\n useEffect(() => {\n const func = async () => {\n if (googlePlaceData) {\n const geocodeObj =\n googlePlaceData &&\n googlePlaceData.value &&\n (await geocodeByPlaceId(googlePlaceData.value.place_id))\n const addressObject = geocodeObj && getAddressObject(geocodeObj[0].address_components)\n props.onChange(addressObject)\n } else {\n props.onChange(undefined)\n }\n }\n func()\n }, [googlePlaceData])\n\n useEffect(() => {\n if (props.value && !objectIsEmpty(props.value)) {\n props.onChange(props.value)\n setRawFormVisible(true)\n }\n }, [props.value])\n\n const getAddressObject = (\n address_components: Array,\n ) => {\n // TODO Address lines 2 and 3\n const normalized = address_components.reduce(\n (agg: Partial, c: google.maps.GeocoderAddressComponent) => {\n if (c.types.includes('street_number')) {\n return {\n ...agg,\n addressLine1Parts: { ...agg.addressLine1Parts, streetNumber: c.long_name },\n }\n } else if (arrayContainsAny(c.types, ['street_address', 'route'])) {\n return {\n ...agg,\n addressLine1Parts: { ...agg.addressLine1Parts, street: c.long_name },\n }\n } else if (c.types.includes('administrative_area_level_1')) {\n return {\n ...agg,\n stateOrProvince: c.short_name,\n }\n } else if (c.types.includes('locality')) {\n return {\n ...agg,\n city: c.long_name,\n }\n } else if (c.types.includes('country')) {\n return {\n ...agg,\n country: c.short_name,\n }\n } else if (c.types.includes('postal_code')) {\n return {\n ...agg,\n postalCode: c.long_name,\n }\n }\n return agg\n },\n {} as Partial,\n )\n\n if (normalized.addressLine1Parts?.street && normalized.addressLine1Parts.streetNumber) {\n normalized.addressLine1 = `${normalized.addressLine1Parts.streetNumber} ${normalized.addressLine1Parts.street}`\n }\n return normalized\n }\n\n return (\n
\n {props.required && (\n \n )}\n
\n {\n setGooglePlaceData(result)\n },\n }}\n />\n {!hideManualEntry && !rawFormVisible && (\n setRawFormVisible(true)}\n >\n + Enter address manually\n \n )}\n
\n\n {!hideManualEntry && rawFormVisible && (\n props.onChange(change)}\n // Value should probably always be present; putting the below code as a preventative measure\n value={{\n ...props.value,\n country: props.value.country || 'US',\n }}\n idPrefix=\"headquarters\"\n />\n )}\n
\n )\n },\n ),\n)\n","import React, { PropsWithChildren } from 'react'\nimport { CButton, CModal, CModalBody, CModalFooter, CModalHeader, CModalTitle } from '@coreui/react'\n\ntype ConfirmationBoundaryModalProps = {\n onCancel: () => void\n onConfirm: () => void\n isOpen: boolean\n headerText?: string\n isSuspended?: boolean\n isConfirmDisabled?: boolean\n}\nexport const ConfirmationBoundaryModal = (\n props: PropsWithChildren,\n) => {\n return (\n \n \n \n {props.headerText || 'Are you sure?'} \n \n {props.children}\n \n props.onConfirm()}\n disabled={props.isSuspended || props.isConfirmDisabled}\n data-testid=\"are-you-sure-confirm-btn\"\n >\n {props.isSuspended ? (\n \n ) : (\n \n )}\n Confirm\n \n props.onCancel()}\n disabled={props.isSuspended}\n data-testid={'are-you-sure-cancel-btn'}\n className=\"cancel-button\"\n >\n Cancel\n \n \n \n \n )\n}\n","import { Link } from 'react-router-dom'\nimport React from 'react'\n\nexport const LegalLinks = () => {\n return (\n
\n \n Terms\n \n \n Privacy\n \n \n Anti Spam\n \n
\n )\n}\n","import React from 'react'\n\nexport const SupportLinks = () => {\n return (\n
\n \n \n Support\n \n \n
\n )\n}\n","import { CFormFeedback, CFormInput } from '@coreui/react'\nimport { InputHTMLAttributes, useEffect, useState } from 'react'\nimport { useDebouncedCallback } from 'use-debounce'\nimport classNames from 'classnames'\nimport { CFormInputProps } from '@coreui/react/dist/components/form/CFormInput'\n\nexport type AsyncValidatedTextInputProps = Omit<\n CFormInputProps & InputHTMLAttributes,\n 'onChange' | 'value' | 'disabled'\n> & {\n value?: string\n validate: (value: string) => Promise\n makeValidationMessage: (invalidReason: string) => string | JSX.Element\n onValue: (value: string | undefined) => void\n asyncValidationDebounceMs?: number\n 'data-testid'?: string\n placeholder?: string\n disabled?: boolean\n}\nexport const AsyncValidatedTextInput = ({\n value: _value,\n validate: _validate,\n onValue,\n makeValidationMessage,\n asyncValidationDebounceMs,\n placeholder,\n disabled,\n ...props\n}: AsyncValidatedTextInputProps) => {\n const [value, setValue] = useState(_value)\n const [isValid, setIsValid] = useState()\n const [invalidReason, setInvalidReason] = useState()\n\n useEffect(() => {\n if (_value) {\n validate(_value)\n }\n }, [])\n\n const validate = async (value: string) => {\n const result = await _validate(value)\n setIsValid(result == null)\n setInvalidReason(result)\n\n if (result) {\n onValue(undefined)\n } else {\n onValue(value)\n }\n }\n\n const debouncedValidation = useDebouncedCallback(\n // function\n validate,\n // delay in ms\n asyncValidationDebounceMs == null ? 300 : asyncValidationDebounceMs,\n )\n\n const handleValueChange = (v: string) => {\n setValue(v)\n debouncedValidation(v)\n }\n\n const onBlur = () => {\n if (!value) {\n setIsValid(false)\n setInvalidReason('required')\n onValue(undefined)\n return\n }\n validate(value)\n }\n\n return (\n
\n \n {\n handleValueChange(v)\n }}\n valid={isValid}\n invalid={!!invalidReason}\n onBlur={onBlur}\n required\n placeholder={placeholder}\n data-testid={props['data-testid']}\n disabled={disabled}\n />\n {invalidReason && (\n \n {invalidReason !== 'required' && makeValidationMessage(invalidReason)}\n \n )}\n
\n )\n}\n","import { CPopoverProps } from '@coreui/react/dist/components/popover/CPopover'\nimport { CPopover } from '@coreui/react'\nimport React from 'react'\n\nexport interface IconPopoverProps extends Omit {\n iconClassName?: string\n}\nexport const IconPopover = ({ iconClassName, ...props }: IconPopoverProps) => {\n return (\n \n \n \n )\n}\n","import React, { PropsWithChildren } from 'react'\nimport { useState } from 'react'\nimport { CustomModal, formatUrlProtocol } from '@mobilizeyourtech/vision-core-react'\nimport { CButton } from '@coreui/react'\nimport parse from 'url-parse'\n\ntype TProps = {\n url: string\n linkText?: string\n 'data-testid'?: string\n}\n\nexport const PotentiallyExternalRedirectLink = (props: PropsWithChildren) => {\n const [isModalOpen, setIsModalOpen] = useState(false)\n\n const handleConfirm = () => {\n const open = window.open()\n open!.opener = null as any\n open!.location = formatUrlProtocol(props.url) as any\n }\n\n const formatUrlForDisplay = (url: string): string => {\n let formattedUrl = formatUrlProtocol(url)\n let parsedUrl = parse(formattedUrl)\n\n return parsedUrl.origin + parsedUrl.pathname\n }\n\n return (\n \n setIsModalOpen(true)}\n >\n {props.children || props.linkText || props.url}\n \n setIsModalOpen(false)}\n className=\"potentially-external-redirect-link-confirm-modal\"\n >\n
\n
\n
You are being navigated away from this website!
\n\n

This link will navigate you away from this website to:

\n

\n {formatUrlForDisplay(props.url)}\n

\n
\n
\n
\n handleConfirm()}\n >\n Take Me There\n \n setIsModalOpen(false)}\n color=\"light\"\n >\n Cancel\n \n
\n
\n \n
\n )\n}\n","import React, { useState } from 'react'\nimport ReactHtmlParser from 'react-html-parser'\nimport { useDebouncedCallback } from 'use-debounce'\n\ntype TProps = {\n information?: string | JSX.Element\n hasInfoIcon?: boolean\n children?: JSX.Element\n infoIconClassName?: string\n className?: string\n testId?: string\n ariaLabel: string\n onClick?: () => void\n onKeyDown?: (toggle: boolean) => void\n}\n\nexport const CustomInformationPopup = (props: TProps) => {\n const [infoPopup, toggleInfoPopup] = useState(false)\n const icon = props.hasInfoIcon ? 'fas fa-info-circle' : props.infoIconClassName\n\n const toggleInfoPopupOpen = useDebouncedCallback((value) => toggleInfoPopup(value), 200)\n\n const renderInformation = () => {\n if (typeof props.information === 'string') {\n return {ReactHtmlParser(props.information)}\n }\n\n return props.information\n }\n\n const ariaLabel = () => {\n let str = props.ariaLabel || ''\n if (typeof props.information === 'string') {\n return `${str} ${props.information}`\n }\n return str\n }\n\n return (\n
\n {/* Render children (e.g. header text) to the left side of icon, otherwise we would need too many surgical scss styling */}\n {props.hasInfoIcon && props.children && props.children}\n\n toggleInfoPopupOpen(true)}\n onMouseOut={() => toggleInfoPopupOpen(false)}\n onKeyDown={({ key: keyPress }) => {\n if (keyPress === 'Enter') {\n toggleInfoPopup(true)\n props.onKeyDown && props.onKeyDown(true)\n } else {\n toggleInfoPopup(false)\n props.onKeyDown && props.onKeyDown(false)\n }\n }}\n >\n {/* Render children without the icon */}\n {!props.hasInfoIcon && props.children && props.children}\n\n {/* Render default info icon after children to the right */}\n {props.hasInfoIcon && }\n\n {infoPopup && props.information && (\n
\n {renderInformation()}\n
\n )}\n \n
\n )\n}\n","import { PaginationData } from '../../lib/types'\nimport { PaginationParams, ServerPageData } from '../../lib/types/Params'\nimport React, { useEffect, useRef, useState } from 'react'\nimport classnames from 'classnames'\nimport { Spinner } from './Spinner'\nimport { CustomInformationPopup } from './'\n\nexport interface DropdownItem {\n id: string | number\n label: string\n description?: string\n}\n\ntype TProps = {\n getData: (params: PaginationParams) => Promise>\n onSelect: (item: T) => void\n selected?: T\n placeholder?: string\n isMultiselect?: boolean\n scrollLoadOffsetPx?: number // default 50\n loadingDebounceMs?: number\n testId?: string\n className?: string\n isOpen?: boolean\n onSelectNone?: () => void\n infoIconClassName?: string // must match className for CustomInformationPop\n required?: boolean\n normalPlaceholderFont?: boolean\n}\n\nexport const ServerBackedDropdown = (props: TProps) => {\n const [selected, setSelected] = useState(props.selected)\n const [items, setItems] = useState | undefined>(props.isOpen ? [] : undefined)\n const [lastPage, setLastPage] = useState(undefined)\n const [isOpen, toggleIsOpen] = useState(props.isOpen || false)\n const [isLoadingData, setIsLoadingData] = useState(true)\n const [loadingError, setLoadingError] = useState(undefined)\n const dropdownRef = useRef(null)\n const itemRefs = useRef>([])\n const ref: any = useRef(null)\n\n const handleClickOutside = (e: MouseEvent | FocusEvent) => {\n if (ref.current && !ref.current.contains(e.target)) {\n toggleIsOpen(false)\n }\n }\n\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n toggleIsOpen(false)\n }\n }\n\n const handleOpen = () => {\n if (!items || items.length === 0) {\n extendData()\n }\n }\n\n useEffect(() => {\n if (props.isOpen) {\n handleOpen()\n }\n }, [props.isOpen, props.selected, items])\n\n useEffect(() => {\n setSelected(props.selected)\n }, [props.selected])\n\n useEffect(() => {\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside)\n document.addEventListener('focusin', handleClickOutside)\n document.addEventListener('keydown', handleEscape)\n }\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n document.removeEventListener('focusin', handleClickOutside)\n document.removeEventListener('keydown', handleEscape)\n }\n }, [isOpen])\n\n const extendData = async () => {\n if (!isLoadingData) {\n setIsLoadingData(true)\n }\n try {\n const data = await props.getData({ page: lastPage ? lastPage.page + 1 : 1, perPage: 10 })\n setItems([...(items || []), ...data.data])\n setLastPage(data.pagination)\n } catch (e) {\n if (!items) {\n setItems([])\n }\n setLoadingError(e)\n } finally {\n setTimeout(() => setIsLoadingData(false), props.loadingDebounceMs || 200)\n }\n }\n\n const onScroll = (e: any) => {\n if (isLoadingData || loadingError || (lastPage && lastPage.page === lastPage.pages)) {\n return\n }\n\n const offset = props.scrollLoadOffsetPx || 50\n if (e.target.scrollHeight - e.target.scrollTop >= e.target.clientHeight - offset) {\n extendData()\n }\n }\n\n const handleClick = () => {\n if (isOpen) {\n toggleIsOpen(false)\n } else {\n toggleIsOpen(true)\n if (!items) {\n extendData()\n }\n }\n }\n\n const handleSelect = (item: T) => {\n setSelected(item)\n props.onSelect(item)\n toggleIsOpen(false)\n }\n\n const handleNoneSelect = () => {\n if (props.onSelectNone) {\n setSelected(undefined)\n props.onSelectNone()\n toggleIsOpen(false)\n }\n }\n\n const renderItems = () => {\n if (!items) {\n return \n }\n\n return (\n \n {props.onSelectNone ? (\n handleNoneSelect()}\n role=\"option\"\n aria-selected={false}\n ref={(element) => {\n if (element) {\n itemRefs.current[0] = element\n }\n }}\n onKeyDown={(e) => {\n if (\n e.key === 'Enter' &&\n (e.target && (e.target as HTMLButtonElement)).className !==\n `${props.infoIconClassName}-info-icon`\n ) {\n handleNoneSelect()\n dropdownRef.current && dropdownRef.current.focus()\n } else if (e.key === 'ArrowDown') {\n e.preventDefault()\n itemRefs.current.length > 1 && itemRefs.current[1].focus()\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n dropdownRef.current && dropdownRef.current.focus()\n }\n }}\n >\n Select None\n \n ) : null}\n {items.map((i, idx) => {\n return (\n handleSelect(i)}\n ref={(element) => {\n if (element) {\n itemRefs.current[props.onSelectNone ? idx + 1 : idx] = element\n }\n }}\n onKeyDown={(e) => {\n if (\n e.key === 'Enter' &&\n (e.target && (e.target as HTMLButtonElement)).className !==\n `${props.infoIconClassName}-info-icon`\n ) {\n handleSelect(i)\n dropdownRef.current && dropdownRef.current.focus()\n } else if (e.key === 'ArrowDown') {\n e.preventDefault()\n let nextItemIndex = props.onSelectNone ? idx + 2 : idx + 1\n nextItemIndex < itemRefs.current.length && itemRefs.current[nextItemIndex].focus()\n } else if (e.key === 'ArrowUp' && idx === 0) {\n e.preventDefault()\n props.onSelectNone\n ? itemRefs.current[0].focus()\n : dropdownRef.current && dropdownRef.current.focus()\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n let previousItemIndex = props.onSelectNone ? idx : idx - 1\n previousItemIndex > -1 && itemRefs.current[previousItemIndex].focus()\n }\n }}\n >\n
\n

{i.label}

\n {i.description && props.infoIconClassName && (\n \n )}\n
\n\n {i.description && !props.infoIconClassName && (\n {i.description}\n )}\n \n )\n })}\n {isLoadingData && (\n \n \n \n )}\n {!!loadingError && (\n \n Error loading data...\n \n )}\n \n )\n }\n\n return (\n
\n {props.required && }\n
\n {\n if (e.key === 'Enter') {\n handleClick()\n } else if (e.key === 'ArrowDown') {\n e.preventDefault()\n toggleIsOpen(true)\n handleOpen()\n itemRefs.current.length && itemRefs.current[0].focus()\n }\n }}\n >\n \n {selected ? selected.label : props.placeholder || 'Select option...'}\n

\n {isOpen ? : }\n
\n\n {isOpen && renderItems()}\n
\n \n )\n}\n","import { PropsWithChildren, useState } from 'react'\nimport classnames from 'classnames'\n\ntype TProps = {\n id?: string\n className?: string\n headerText?: string\n isExpanded?: boolean\n onExpandChange?: (value: boolean) => void\n}\n\n// Line 30 is Expanded and WasExpanded - explains the loss of state\nexport const Collapsible = (props: PropsWithChildren) => {\n const [isExpanded, setIsExpanded] = useState(\n props.isExpanded == null ? true : props.isExpanded,\n )\n const chevronToggle = isExpanded ? 'up' : 'down'\n\n return (\n
\n {\n setIsExpanded(!isExpanded)\n props.onExpandChange && props.onExpandChange(!isExpanded)\n }}\n tabIndex={0}\n onKeyDown={({ key: keyPress }) => {\n if (keyPress === 'Enter') {\n setIsExpanded(!isExpanded)\n props.onExpandChange && props.onExpandChange(!isExpanded)\n }\n }}\n >\n

{props.headerText}

\n \n
\n \n {props.children}\n \n \n )\n}\n","import {\n SelectableItem,\n ServerBackedMultiSelectAutoComplete,\n PaginationParams,\n isDirtySelectableItem,\n} from '@mobilizeyourtech/vision-core-react'\nimport { useEffect, useState } from 'react'\nimport { initializeSearchDropdown } from '../custom'\nimport { INaicsCodes } from '../form/fragments/listing'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore, ServerStore } from '../../stores'\n\nexport interface UrlFederatedNaicsCodeMultiSelectAutoCompleteProps {\n paramKey: 'naicsCodeIds' | 'awardNaicsCodeIds'\n dataTestId?: string\n serverStore?: ServerStore\n notificationStore?: NotificationStore\n}\nexport const UrlFederatedNaicsCodeMultiSelectAutoComplete = inject(\n ApplicationStore.names.serverStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: UrlFederatedNaicsCodeMultiSelectAutoCompleteProps) => {\n const [params, setParams] = useQueryParams({\n [props.paramKey]: withDefault(StringParam, undefined),\n })\n const [selectedNaicsCodes, setSelectedNaicsCodes] = useState>([])\n\n useEffect(() => {\n if (params[props.paramKey] == null || params[props.paramKey]?.split(',').length === 0) {\n setSelectedNaicsCodes([])\n } else {\n const currentIds = selectedNaicsCodes\n .map((item) => item.id.toString())\n .sort()\n .join(',')\n const paramIds = params[props.paramKey]!.split(',').sort().join(',')\n\n if (currentIds !== paramIds) {\n initializeSearchDropdown(\n {\n ids: params[props.paramKey],\n getDropdownData: getIgniteNaicsCodes,\n setSelected: setSelectedNaicsCodes,\n typeForErrorMessage: 'naics codes',\n },\n props.notificationStore!,\n )\n }\n }\n }, [params[props.paramKey]])\n\n const getIgniteNaicsCodes = async (p: PaginationParams & { ids?: string }) => {\n return props.serverStore!.getNaicsCodes(p).then((response) => response)\n }\n\n const selectNaicsCodes = (selected: Array) => {\n setParams({\n ...params,\n [props.paramKey]: selected.length === 0 ? undefined : selected.map((e) => e.id).join(','),\n })\n setSelectedNaicsCodes(selected)\n }\n\n const getSelectedNaicsCodes = () => {\n return selectedNaicsCodes.map((t) => {\n return { ...t, label: t.label }\n })\n }\n\n return (\n {\n let _selected = selected.filter((e) => !isDirtySelectableItem(e)) as Array<\n INaicsCodes & SelectableItem\n >\n selectNaicsCodes(_selected)\n }}\n placeholder=\"Select NAICS Codes\"\n reloadOnOpen\n />\n )\n }),\n)\n","import {\n isDirtySelectableItem,\n SelectableItem,\n ServerBackedMultiSelectAutoComplete,\n PaginationParams,\n} from '@mobilizeyourtech/vision-core-react'\nimport { useEffect, useState } from 'react'\nimport { initializeSearchDropdown } from '../custom'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore } from '../../stores'\nimport { ServerStore, TechnologyTypeResponse } from '../../stores/ServerStore'\n\nexport interface UrlFederatedIgniteTechnologyTypesMultiSelectAutoCompleteProps {\n paramKey:\n | 'listingTechnologyTypeIds'\n | 'productTechnologyTypeIds'\n | 'serviceTechnologyTypeIds'\n | 'awardTechnologyTypeIds'\n dataTestId?: string\n serverStore?: ServerStore\n notificationStore?: NotificationStore\n}\n\nexport const UrlFederatedTechnologyTypesMultiSelectAutoComplete = inject(\n ApplicationStore.names.serverStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: UrlFederatedIgniteTechnologyTypesMultiSelectAutoCompleteProps) => {\n const [params, setParams] = useQueryParams({\n [props.paramKey]: withDefault(StringParam, undefined),\n })\n const [selectedTechnologyTypes, setSelectedTechnologyTypes] = useState<\n Array\n >([])\n\n useEffect(() => {\n if (params[props.paramKey] == null || params[props.paramKey]?.split(',').length === 0) {\n setSelectedTechnologyTypes([])\n } else {\n const currentIds = selectedTechnologyTypes\n .map((item) => item.id.toString())\n .sort()\n .join(',')\n const paramIds = params[props.paramKey]!.split(',').sort().join(',')\n\n if (currentIds !== paramIds) {\n initializeSearchDropdown(\n {\n ids: params[props.paramKey],\n getDropdownData: getTechnologyTypes,\n setSelected: setSelectedTechnologyTypes,\n typeForErrorMessage: 'technology types',\n },\n props.notificationStore!,\n )\n }\n }\n }, [params[props.paramKey]])\n\n // Technology Types\n const getTechnologyTypes = (p: PaginationParams & { ids?: string }) => {\n return props.serverStore!.getTechnologyTypes(p).then((response) => response)\n }\n\n const selectTechnologyTypes = (selected: Array) => {\n setSelectedTechnologyTypes(selected)\n setParams({\n ...params,\n [props.paramKey]: selected.length === 0 ? undefined : selected.map((e) => e.id).join(','),\n })\n }\n\n const getSelectedTechnologyTypes = () => {\n return selectedTechnologyTypes.map((t) => {\n return { ...t, label: t.name }\n })\n }\n\n return (\n {\n let _selected = selected.filter((e) => !isDirtySelectableItem(e)) as Array<\n TechnologyTypeResponse & SelectableItem\n >\n selectTechnologyTypes(_selected)\n }}\n placeholder={'Select Technology Types'}\n reloadOnOpen\n />\n )\n }),\n)\n","import {\n isDirtySelectableItem,\n ServerBackedMultiSelectAutoComplete,\n PaginationParams,\n} from '@mobilizeyourtech/vision-core-react'\nimport { useEffect, useState } from 'react'\nimport { initializeSearchDropdown } from './'\nimport { IBusinessClassifications } from '../form/fragments/listing'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore, ConnectListingStore } from '../../stores'\n\nexport interface UrlFederatedIgniteBusinessClassificationsMultiSelectAutoCompleteProps {\n paramKey: 'listingBusinessClassificationIds'\n connectListingStore?: ConnectListingStore\n notificationStore?: NotificationStore\n}\nexport const UrlFederatedBusinessClassificationsMultiSelectAutoComplete = inject(\n ApplicationStore.names.connectListingStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: UrlFederatedIgniteBusinessClassificationsMultiSelectAutoCompleteProps) => {\n const [params, setParams] = useQueryParams({\n [props.paramKey]: withDefault(StringParam, undefined),\n })\n const [selectedBusinessClassifications, setSelectedBusinessClassifications] = useState<\n Array\n >([])\n\n useEffect(() => {\n if (params[props.paramKey] == null || params[props.paramKey]?.split(',').length === 0) {\n setSelectedBusinessClassifications([])\n } else {\n const currentIds = selectedBusinessClassifications\n .map((item) => item.id.toString())\n .sort()\n .join(',')\n const paramIds = params[props.paramKey]!.split(',').sort().join(',')\n\n if (currentIds !== paramIds) {\n initializeSearchDropdown(\n {\n ids: params.listingBusinessClassificationIds,\n getDropdownData: getBusinessClassifications,\n setSelected: setSelectedBusinessClassifications,\n typeForErrorMessage: 'business classifications',\n },\n props.notificationStore!,\n )\n }\n }\n }, [params[props.paramKey]])\n\n //Business Classifications\n const getBusinessClassifications = async (p: PaginationParams & { ids?: string }) => {\n return props\n .connectListingStore!.getConnectBusinessClassifications(p)\n .then((response) => response)\n }\n\n const selectBusinessClassifications = (selected: Array) => {\n setParams({\n ...params,\n listingBusinessClassificationIds:\n selected.length === 0 ? undefined : selected.map((e) => e.id).join(','),\n })\n\n setSelectedBusinessClassifications(selected)\n }\n\n const getSelectedBusinessClassifications = () => {\n return selectedBusinessClassifications.map((t) => {\n return { ...t, label: t.name }\n })\n }\n\n return (\n {\n let _selected = selected.filter(\n (e) => !isDirtySelectableItem(e),\n ) as Array\n selectBusinessClassifications(_selected)\n }}\n placeholder={'Select Business Classifications'}\n reloadOnOpen\n />\n )\n }),\n)\n","import { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore, ServerStore } from '../../stores'\nimport React, { useState } from 'react'\nimport { ChatThreadResponse } from '../../stores/ServerStore'\nimport { RichTooltip, SuspensefulButton } from '@mobilizeyourtech/vision-core-react'\n\ntype TProps = {\n serverStore?: ServerStore\n notificationStore?: NotificationStore\n chatThread: ChatThreadResponse\n onChatThreadUpdated: () => void\n}\n\nexport const ToggleChatStatusButton = inject(\n ApplicationStore.names.serverStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [isSuspending, setIsIsSuspending] = useState(false)\n\n const { id, status } = props.chatThread\n\n const tooltipMessage = `This will ${status === 'active' ? 'pause' : 'unpause'} the chat thread.`\n\n const pauseChatThread = () => {\n setIsIsSuspending(true)\n\n props.serverStore\n ?.pauseChatThread(id)\n .then(() => {\n props.onChatThreadUpdated()\n })\n .catch(() => {\n props.notificationStore?.setNotificationMessage(\n 'Error pausing chat thread. Please try again.',\n 'danger',\n 3000,\n )\n })\n .finally(() => {\n setTimeout(() => {\n setIsIsSuspending(false)\n }, 300)\n })\n }\n\n const unpauseChatThread = () => {\n setIsIsSuspending(true)\n props.serverStore\n ?.unpauseChatThread(id)\n .then(() => {\n props.onChatThreadUpdated()\n })\n .catch(() => {\n props.notificationStore?.setNotificationMessage(\n 'Error unpausing chat thread. Please try again.',\n 'danger',\n 3000,\n )\n })\n .finally(() => {\n setTimeout(() => {\n setIsIsSuspending(false)\n }, 300)\n })\n }\n\n const renderButton = () => {\n return (\n (status === 'active' ? pauseChatThread() : unpauseChatThread())}\n data-testid=\"chat-pause-button\"\n />\n )\n }\n\n const renderButtonWithTooltip = () => {\n return (\n \n {renderButton()}\n \n )\n }\n\n return (\n
\n {status === 'pre_active' ? renderButton() : renderButtonWithTooltip()}\n
\n )\n }),\n)\n","import { ApplicationStore, UserStore } from '../../stores'\nimport { observer, inject } from 'mobx-react'\nimport { makeChatThreadHeadliner } from './ChatThreadCard'\nimport {\n ChatParticipantResponse,\n ChatThreadResponse,\n isAccountParticipant,\n} from '../../stores/ServerStore'\nimport { ToggleChatStatusButton } from './ToggleChatStatusButton'\n\ntype ChatPanelHeaderProps = {\n chatThread: ChatThreadResponse\n userStore?: UserStore\n onChatThreadUpdated: () => void\n}\n\nexport const ChatPanelHeader = inject(ApplicationStore.names.userStore)(\n observer((props: ChatPanelHeaderProps) => {\n const user = props.userStore?.currentUserData\n const currentIsGovUser = props.userStore?.currentUserData?.userRoles.includes('gov')\n\n const displayParticipantList = props.chatThread.participants.filter(\n (participant: ChatParticipantResponse) => {\n if (isAccountParticipant(participant) && !currentIsGovUser) {\n return user?.accountId !== participant.participantId\n } else if (isAccountParticipant(participant) && currentIsGovUser) {\n return true\n } else {\n return user?.id !== participant.participantId\n }\n },\n )\n\n return (\n
\n
\n To: \n {makeChatThreadHeadliner(displayParticipantList)}\n
\n {currentIsGovUser && (\n \n )}\n
\n )\n }),\n)\n","import React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, UserStore } from '../../stores'\nimport { ChatMessageResponse, ChatThreadResponse } from '../../stores/ServerStore'\nimport { Spinner } from './index'\nimport { formatDate } from '../../lib/helpers/utils'\nimport { UserAvatar } from '../user'\nimport { CCardText, CRow } from '@coreui/react'\nimport { IntersectObservantPill } from '@mobilizeyourtech/vision-core-react'\n\ntype ChatThreadPanelMessagesProps = {\n chatThread: ChatThreadResponse\n userStore?: UserStore\n chatMessages: Array\n latestMessageAtLoad: ChatMessageResponse | undefined\n isExtending: boolean\n isExtendingError: boolean\n extendData: () => void\n chatEndRef: React.MutableRefObject\n onViewNewestMessage: () => void\n showNewMessageIndicator: boolean\n timeout?: number\n onChatThreadUpdated: () => void\n}\n\nexport const ChatThreadPanelMessages = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.serverStore,\n)(\n observer((props: ChatThreadPanelMessagesProps) => {\n const user = props.userStore!.currentUserData!\n const [lastMessageSeenAtLoad] = useState(new Date(props.chatThread.lastMessageSeenAt))\n const [hasUnreadMessages, setHasUnreadMessages] = useState(false)\n const [unreadMessageTimeout, setUnreadMessageTimeout] = useState<\n ReturnType | undefined\n >(undefined)\n\n useEffect(() => {\n setUnreadMessageTimeout(\n setTimeout(() => {\n setHasUnreadMessages(maybeShowMoreUnread())\n }, props.timeout || 300),\n )\n\n return () => {\n unreadMessageTimeout && clearTimeout(unreadMessageTimeout)\n }\n }, [props.latestMessageAtLoad])\n\n const maybeShowMoreUnread = (): boolean => {\n if (\n props.chatMessages.length === 0 ||\n !props.latestMessageAtLoad ||\n props.chatThread.currentUserUnreadCount === 0 ||\n props.chatThread.currentUserUnreadCount === undefined\n )\n return false\n\n let latestMessageTime = new Date(props.latestMessageAtLoad.createdAt).getTime()\n let latestMessageSeenTime = new Date(props.chatThread.lastMessageSeenAt).getTime()\n\n return latestMessageTime > latestMessageSeenTime\n }\n\n const renderDivider = (dateBoundary: Date) => {\n const now = new Date()\n\n // NOTE: The chatMessages.length is included below to ensure that a single\n // date grouping with more than 10 messages does not load all messages at\n // once. This also allows us to maintain snapshot tests because the\n // chatMessages.length can be predictable and consistent in testing.\n return (\n \n
\n
\n {now.getFullYear() === dateBoundary.getFullYear() &&\n now.getMonth() === dateBoundary.getMonth() &&\n now.getDate() === dateBoundary.getDate()\n ? 'Today'\n : formatDate(dateBoundary)}\n
\n
\n )\n }\n\n const renderSeenAtDivider = (): JSX.Element => {\n return (\n {\n unreadMessageTimeout && clearTimeout(unreadMessageTimeout)\n setHasUnreadMessages(false)\n props.onChatThreadUpdated()\n }}\n data-testid={'more-messages-intersection-observer'}\n >\n
\n
\n New\n
\n \n )\n }\n\n const renderChatMessage = (message: ChatMessageResponse, date: Date) => {\n return (\n \n \n
\n
\n
\n {message.user.firstName} {message.user.lastName}\n
\n
{date.toLocaleTimeString()}
\n
\n \n {message.content}\n \n
\n \n )\n }\n\n const renderMessages = () => {\n if (!props.latestMessageAtLoad) {\n return\n }\n\n const latestMessage = new Date(props.latestMessageAtLoad.createdAt)\n // setting prevMessage as first message so that even if there's only one message, the\n // new message divider will render\n let prevMessage: ChatMessageResponse = props.chatMessages[0]\n let currentDivider: Date | undefined = undefined\n let result: Array = []\n let hasNewDivider = false\n\n props.chatMessages.forEach((chat, idx) => {\n let date = new Date(chat.createdAt)\n\n if (!currentDivider) {\n currentDivider = date\n result = [...result, renderDivider(currentDivider)]\n }\n if (\n currentDivider.getFullYear() !== date.getFullYear() ||\n currentDivider.getMonth() !== date.getMonth() ||\n currentDivider.getDate() !== date.getDate()\n ) {\n currentDivider = date\n result = [...result, renderDivider(currentDivider)]\n }\n\n if (\n !hasNewDivider && // if there isn't already a divider added\n chat.userId !== props.userStore?.currentUserData?.id && // and this message was sent by someone other than the current user\n new Date(prevMessage.createdAt).getTime() === lastMessageSeenAtLoad.getTime() && // and if prevMessage was the last one seen\n date <= latestMessage // and the message was created before the latest message when user visited the thread\n ) {\n result = [...result, renderSeenAtDivider()]\n hasNewDivider = true\n }\n\n // render newest message pill above the last message to hide the new messages\n // notice as the last message scrolls into view\n if (idx === props.chatMessages.length - 1) {\n result = [...result, renderNewestMessagePill()]\n }\n\n result = [...result, renderChatMessage(chat, date)]\n\n prevMessage = chat\n })\n\n return result\n }\n\n const renderNewestMessagePill = () => {\n return (\n \n )\n }\n\n const renderMoreUnreadNotice = () => {\n return (\n \n More Unread\n \n )\n }\n\n return (\n <>\n {hasUnreadMessages && renderMoreUnreadNotice()}\n
\n
\n {!props.isExtending && !props.isExtendingError && (\n props.extendData()}\n />\n )}\n {props.isExtending && (\n
\n \n
\n )}\n {props.isExtendingError && (\n
\n Error loading messages ...\n
\n )}\n {renderMessages()}\n\n {props.showNewMessageIndicator && (\n props.chatEndRef.current.scrollIntoView()}\n >\n New Messages\n \n )}\n\n \n
\n
\n \n )\n }),\n)\n","import {\n Avatar,\n CustomModal,\n CustomModalProps,\n SuspensefulButton,\n} from '@mobilizeyourtech/vision-core-react'\nimport { ApplicationStore, ServerStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { ConnectListingResponse, isConnectListingResponse } from '../../stores/ConnectListingStore'\nimport { GovUserData } from '../../stores/UserStore'\nimport { ChatParticipantIdentifiers } from '../../stores/ServerStore'\nimport { CFormTextarea } from '@coreui/react'\nimport { useState } from 'react'\nimport { validateLength } from '../../lib/helpers/validation'\nimport { useHistory } from 'react-router-dom'\nimport { Alert } from './Alert'\nimport { UNCLASSIFIED_WARNING_PROMPT } from '../../lib/helpers/utils'\n\nexport interface InitiateChatModalProps extends CustomModalProps {\n serverStore?: ServerStore\n target: ConnectListingResponse | GovUserData\n participants: Array\n}\n\nexport const InitiateChatModal = inject(ApplicationStore.names.serverStore)(\n observer(({ serverStore, target, participants, ...props }: InitiateChatModalProps) => {\n const history = useHistory()\n const [message, setMessage] = useState('')\n const [isSubmitSuspended, setIsSubmitSuspended] = useState(false)\n const [error, setError] = useState(false)\n\n const renderAvatar = () => {\n const first = isConnectListingResponse(target) ? target.name : target.firstName\n const last = isConnectListingResponse(target) ? '' : target.lastName\n const src = isConnectListingResponse(target) ? target.logo?.path : target.headshot?.path\n return \n }\n\n const renderName = () => {\n return isConnectListingResponse(target)\n ? target.name\n : `${target.firstName} ${target.lastName}`\n }\n\n const onSubmit = () => {\n setIsSubmitSuspended(true)\n setError(false)\n serverStore!\n .createChatThread(participants, message)\n .then((chatThread) => {\n history.push(`/chat?threadId=${chatThread.id}`)\n })\n .catch(() => {\n setError(true)\n setIsSubmitSuspended(false)\n })\n }\n\n return (\n {\n props.onClose()\n setError(false)\n setMessage('')\n setIsSubmitSuspended(false)\n }}\n >\n \n
\n
{renderAvatar()}
\n
{renderName()}
\n
\n {error && (\n setError(false)}\n message={'Error sending message. Please try again.'}\n />\n )}\n setMessage(value)}\n />\n {UNCLASSIFIED_WARNING_PROMPT}\n
\n \n Send\n \n
\n \n \n )\n }),\n)\n","import { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ServerStore, UserStore } from '../../stores'\nimport {\n RichTooltip,\n SuspensefulButton,\n SuspensefulButtonProps,\n} from '@mobilizeyourtech/vision-core-react'\nimport { useEffect, useState } from 'react'\nimport { ConnectListingResponse, isConnectListingResponse } from '../../stores/ConnectListingStore'\nimport { GovUserData, hasGovRole, hasIgniteRole, isUserData } from '../../stores/UserStore'\nimport { ChatParticipantIdentifiers, ChatThreadResponse } from '../../stores/ServerStore'\nimport { useHistory } from 'react-router-dom'\nimport { InitiateChatModal } from './InitiateChatModal'\nimport classnames from 'classnames'\n\nexport interface StartChatButtonProps\n extends Omit {\n target: ConnectListingResponse | GovUserData\n serverStore?: ServerStore\n userStore?: UserStore\n tooltipDebounceMs?: number\n}\n\nexport const StartChatButton = inject(\n ApplicationStore.names.serverStore,\n ApplicationStore.names.userStore,\n)(\n observer(\n ({\n serverStore,\n userStore,\n target,\n tooltipDebounceMs = 350,\n ...props\n }: StartChatButtonProps) => {\n const history = useHistory()\n const [isSuspended, setIsSuspended] = useState(true)\n const [isInitiateModalOpen, setIsInitiateModalOpen] = useState(false)\n const [disabledReason, setDisabledReason] = useState(undefined)\n const [participants, setParticipants] = useState<\n Array | undefined\n >(undefined)\n const [existingChatThread, setExistingChatThread] = useState(\n undefined,\n )\n\n const makeAndSetParticipants = () => {\n if (isConnectListingResponse(target) && hasGovRole(userStore!.currentUserData!)) {\n setParticipants([\n {\n participantType: 'Account',\n participantId: target.accountId,\n },\n {\n participantType: 'User',\n participantId: userStore!.currentUserData!.id,\n },\n ])\n } else if (isUserData(target) && hasIgniteRole(userStore!.currentUserData!)) {\n setParticipants([\n {\n participantType: 'User',\n participantId: target.id,\n },\n {\n participantType: 'Account',\n participantId: userStore!.currentAccountData!.id,\n },\n ])\n } else {\n // This means there is some unexpected illegal combination of participants\n setDisabledReason(\n `You are unable to chat with this ${\n isConnectListingResponse(target) ? 'account' : 'user'\n }`,\n )\n }\n }\n\n useEffect(() => {\n makeAndSetParticipants()\n }, [])\n\n useEffect(() => {\n if (participants) {\n serverStore!\n .findChatThreadByParticipants(participants)\n .then((data) => {\n if (isUserData(target) && !target.govUserSetting.allowMessageRequests && !data) {\n setDisabledReason(\"This user's preferences do not allow new messages\")\n }\n setExistingChatThread(data)\n })\n .catch(() => {\n setDisabledReason('Error initiating chat. Please refresh.')\n })\n .finally(() => setIsSuspended(false))\n } else {\n setIsSuspended(false)\n }\n }, [participants])\n\n const onInvokeChat = () => {\n if (existingChatThread) {\n history.push(`/chat?threadId=${existingChatThread.id}`)\n return\n }\n setIsInitiateModalOpen(true)\n }\n\n const renderTooltipContent = () => {\n let message = disabledReason\n const wider = !!disabledReason\n if (!message) {\n if (!existingChatThread) {\n message = 'Start a chat'\n } else {\n message = 'Go to chat'\n }\n }\n return
{message}
\n }\n\n return (\n
\n \n \n Chat\n \n \n\n {participants && (\n setIsInitiateModalOpen(false)}\n />\n )}\n
\n )\n },\n ),\n)\n","import { NamedServerArtifact, NamedWithLabelServerArtifact } from '../../lib/types'\nimport { PaginationParams, ServerPageData } from '@mobilizeyourtech/vision-core-react'\nimport { NotificationStore } from '../../stores'\nimport { Dispatch, SetStateAction } from 'react'\n\nexport { Alert } from './Alert'\nexport { Spinner } from './Spinner'\n\nexport { OrganizationDetails } from '../form/fragments/listing/OrganizationDetails'\nexport { ContractingDetails } from '../form/fragments/listing/ContractingDetails'\n\nexport { SingleImageUploader } from './SingleImageUploader'\nexport { ImageCroppingTool } from './ImageCroppingTool'\n\nexport { RegionSelectInput } from './RegionSelectInput'\nexport { CountrySelectInput } from './CountrySelectInput'\n\nexport { TimezoneSelect } from './TimezoneSelect'\nexport { ValidatedCFormSelect } from './ValidatedCFormSelect'\nexport { ValidatedCFormInput } from './ValidatedCFormInput'\nexport { ValidatedCFormTextArea } from './ValidatedCFormTextArea'\n\nexport { SingleUserSelect } from './SingleUserSelect'\nexport { GoogleSuggestAddressInput } from './GoogleSuggestAddressInput'\nexport { ConfirmationBoundaryModal } from './ConfirmationBoundaryModal'\nexport { LegalLinks } from './LegalLinks'\nexport { Pagination } from './Pagination'\nexport { SupportLinks } from './SupportLinks'\nexport { AsyncValidatedTextInput } from './AsyncValidatedTextInput'\nexport { IconPopover } from './IconPopover'\n\nexport { PotentiallyExternalRedirectLink } from './PotentiallyExternalRedirectLink'\nexport { CustomInformationPopup } from './CustomInformationPopup'\nexport { ServerBackedDropdown } from './ServerBackedDropdown'\nexport { CustomDropdown } from './CustomDropdown'\nexport { Collapsible } from './Collapsible'\nexport type { DropdownItem } from './ServerBackedDropdown'\nexport { UrlFederatedNaicsCodeMultiSelectAutoComplete } from './UrlFederatedNaicsCodeMultiSelectAutoComplete'\nexport { UrlFederatedTechnologyTypesMultiSelectAutoComplete } from './UrlFederatedTechnologyTypesMultiSelectAutoComplete'\nexport { UrlFederatedBusinessClassificationsMultiSelectAutoComplete } from './UrlFederatedBusinessClassificationsMultiSelectAutoComplete'\n\nexport { ChatPanelHeader } from './ChatPanelHeader'\nexport { ChatThreadPanelMessages } from './ChatThreadPanelMessages'\n\nexport { StartChatButton } from './StartChatButton'\nexport { ToggleChatStatusButton } from './ToggleChatStatusButton'\n\ntype SearchParamType = {\n ids: string | undefined\n getDropdownData: (p: PaginationParams & { ids?: string }) => Promise>\n setSelected: Dispatch>\n typeForErrorMessage: string\n}\n\nexport const initializeSearchDropdown = <\n T extends NamedWithLabelServerArtifact | NamedServerArtifact,\n>(\n searchParams: SearchParamType,\n notificationStore: NotificationStore,\n) => {\n if (searchParams.ids) {\n searchParams\n .getDropdownData({ page: 1, perPage: searchParams.ids?.split(',').length, ...searchParams })\n .then((response) =>\n searchParams.setSelected(\n response.data.map((d) => {\n const label = (d as NamedWithLabelServerArtifact).label\n const name = (d as NamedServerArtifact).name\n\n return { ...d, label: name ? name : label }\n }),\n ),\n )\n .catch(() =>\n notificationStore?.setNotificationMessage(\n 'Failed to populate ' + searchParams.typeForErrorMessage + '. Please try again later',\n 'error',\n 3000,\n ),\n )\n }\n}\n","export const validateEmail = (value: string | undefined): string | undefined => {\n if (value && /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[a-z]{2,}$/.test(value)) {\n return\n }\n return 'invalid_email'\n}\n\nexport const validatePassword = (value: string | undefined, minLength = 6): string | undefined => {\n return (\n validateLength(value, minLength) ||\n validatePatternMatch(value, /(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-])/) ||\n undefined\n )\n}\n\nexport const validatePatternMatch = (\n value: string | undefined,\n pattern: RegExp,\n): string | undefined => {\n if (value && pattern.test(value)) {\n return\n }\n return 'pattern_mismatch'\n}\n\nexport const validateWebsite = (value: string | undefined) => {\n return validatePatternMatch(\n value,\n /^((https?):\\/\\/)?([a-zA-Z0-9-_]+\\.[a-zA-Z0-9-_]+)*(\\/[a-zA-Z0-9-_.]+)*\\/?(\\?[a-zA-Z0-9-_.]*=[a-zA-Z0-9-_'\" .]*)*(&[a-zA-Z0-9-_.]*=[a-zA-Z0-9-_'\" .]*)*$/,\n )\n}\n\nexport const validateValueMatch = (\n left: string | undefined,\n right: string | undefined,\n): string | undefined => {\n if (left && right && left === right) {\n return\n }\n return 'mismatch'\n}\n\nexport const validateLength = (value: string | undefined, min: number): string | undefined => {\n if (value && value.length >= min) {\n return\n }\n return 'insufficient_length'\n}\n\nexport const validateLineOfEffort = (arr: { details: string }[]): string | undefined => {\n if (arr.some((el) => el.details && el.details.trim() !== '')) {\n return\n }\n return 'need at least one valid line of effort'\n}\n\nexport const validateYear = (\n value: string | number | undefined,\n lowerBounds = 1800,\n upperBounds: number = new Date().getFullYear(),\n): string | undefined => {\n if (!value) {\n return 'invalid_year'\n }\n\n const normalized = typeof value === 'string' ? Number(value) : value\n if (isNaN(normalized)) {\n return 'not_a_number'\n }\n if (normalized >= lowerBounds && normalized <= upperBounds) {\n return\n }\n return 'year_out_of_bounds'\n}\n","import { SimpleCollapse } from '@mobilizeyourtech/vision-core-react'\nimport React from 'react'\nimport MobilizeVISIONLogo from '../../assets/brand/Ignite_Logo_Mobilize_Full_Color.png'\nimport { visionVisibilityIcon } from '../../assets/brand/vision_visibility_icon'\nimport { CCard, CCardBody, CLink } from '@coreui/react'\nimport { leftArrow } from '../../components/icons/leftArrow'\nimport { Link } from 'react-router-dom'\n\nexport const SignupOrSignin = () => {\n const choices = [\n {\n icon: ,\n header: 'I have a IGNITE Account',\n nextStep: (\n <>\n \n Click here\n {' '}\n to sign in to an existing Ignite account\n \n ),\n },\n {\n icon: ,\n header: 'I do not have an IGNITE Account',\n nextStep: (\n <>\n \n Click here\n {' '}\n to create an Ignite account\n \n ),\n },\n ]\n\n return (\n
\n
\n \n {leftArrow()}\n \n \n
\n\n
\n
\n
\n Choose the option that best represents you\n
\n
\n
\n \n

\n VISION users get a VISION-verified badge {visionVisibilityIcon()}, establishing\n greater trust and recognition in Ignite.\n

\n
\n
\n
\n\n
\n {choices.map((choice, idx) => (\n \n \n {choice.icon}\n
\n {choice.header}\n
\n
Next Step: {choice.nextStep}
\n
\n
\n ))}\n
\n
\n )\n}\n","import React, { PropsWithChildren, useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../../stores'\nimport { Redirect, Route, Switch, useHistory, useLocation } from 'react-router-dom'\nimport {\n AntiSpamPolicy,\n ConfirmationInstructions,\n ConfirmClaimLanding,\n ConfirmEmailLanding,\n Privacy,\n RequestPasswordReset,\n ResetPassword,\n SignIn,\n SignTermsAndPrivacy,\n ClaimRequestSignUp,\n InviteSignUp,\n AcceptInviteLanding,\n Terms,\n SubmitClaimRequest,\n SubmitClaimResult,\n GovUserSignup,\n SignupChoice,\n} from '../../views'\nimport { VisionRequestInterceptedError } from '../../lib/errors/utils'\nimport {\n clearQParamSessionVariables,\n getSessionQParam,\n getSessionQUserExists,\n removeQParamFromLocation,\n setRedirectSessionVariables,\n setSessionQParam,\n setSessionQUserExists,\n} from '../../lib/helpers/sessionHelpers'\nimport { StringParam, useQueryParam } from 'use-query-params'\nimport { SignupOrSignin } from '../../views/signup/SignupOrSignin'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\n\ntype TProps = {\n authStore?: AuthStore\n userStore?: UserStore\n notificationStore?: NotificationStore\n}\nexport const AuthBoundary = inject(\n ApplicationStore.names.authStore,\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: PropsWithChildren) => {\n const location = useLocation()\n const history = useHistory()\n const [isLoading, setIsLoading] = useState(true)\n const [qParam, setQParam] = useQueryParam('q', StringParam)\n\n const authenticated = props.authStore?.isAuthenticated()\n const confirmed = props.userStore?.currentUserData?.confirmed\n\n const initializeUserAndAccountData = async () => {\n try {\n const userData = await props.userStore!.retrieveCurrentUserData('technology_types')\n let accountData\n if (userData.userRoles.includes('ignite')) {\n accountData = await props.userStore!.retrieveCurrentAccountData()\n }\n\n accountData && props.userStore?.setCurrentAccountData(accountData)\n props.userStore?.setCurrentUserData(userData)\n props.userStore?.createWebsocketConsumer()\n } catch (err) {\n if (!(err instanceof VisionRequestInterceptedError)) {\n props.notificationStore?.setNotificationMessage(\n 'Failed to load user and account data. Please try again',\n 'danger',\n 3000,\n )\n }\n }\n }\n\n const setQSessionVariables = async (params: string) => {\n await props.userStore\n ?.checkIfVisionUserHasAccountAndIsLinked(params)\n .then((userHasAccount: { userExists: boolean; isLinked: boolean }) => {\n setSessionQUserExists(userHasAccount)\n })\n }\n\n const validateQAndInitializeUser = async () => {\n // if q, store q in session store, pop it from the url\n const stored_q = getSessionQParam()\n const q = qParam\n if (q && !stored_q) {\n setSessionQParam(q)\n setQParam(undefined)\n try {\n await setQSessionVariables(q)\n if (props.authStore?.JWT) {\n await initializeUserAndAccountData()\n } else {\n if (getSessionQUserExists()) {\n history.push('/sign_in')\n } else {\n history.push('/signup_or_signin')\n }\n }\n } catch (e) {\n // decryption error\n clearQParamSessionVariables()\n }\n } else {\n setQParam(undefined)\n if (props.authStore?.JWT) {\n await initializeUserAndAccountData()\n }\n }\n }\n\n const initializeAuthBoundary = async () => {\n await validateQAndInitializeUser()\n setIsLoading(false)\n }\n\n useEffect(() => {\n initializeAuthBoundary()\n }, [props.authStore!.salt])\n\n useEffect(() => {\n let filteredLocation = removeQParamFromLocation(location)\n setRedirectSessionVariables(filteredLocation)\n }, [])\n\n return (\n <>\n \n \n {!authenticated && }\n {!authenticated && }\n {!authenticated && }\n {!authenticated && }\n {!authenticated && }\n {!authenticated && (\n \n )}\n {!authenticated && (\n \n )}\n {!authenticated && }\n {!authenticated && (\n \n )}\n {!authenticated && }\n {(!confirmed || !authenticated) && (\n \n )}\n {authenticated && }\n \n {!authenticated && }\n {!authenticated && }\n {!authenticated && }\n {!authenticated && }\n {!authenticated && }\n {!authenticated && }\n {authenticated && confirmed && props.children}\n \n \n \n )\n }),\n)\n","import React, { useEffect } from 'react'\nimport { Route, Switch } from 'react-router-dom'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore } from './stores'\nimport './scss/style.scss'\nimport { AuthBoundary } from './components/boundary'\nimport { useErrorPropagator } from './lib/hooks'\nimport { Alert } from './components/custom'\n\ntype TProps = {\n applicationStore?: ApplicationStore\n notificationStore?: NotificationStore\n}\n\nconst loading = (\n
\n
\n
\n)\n\n// Containers\nconst DefaultLayout = React.lazy(() => import('./layout/DefaultLayout'))\n\nexport const App = inject(\n 'applicationStore',\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const { throwError } = useErrorPropagator()\n\n useEffect(() => {\n props.applicationStore\n ?.getSiteSettings()\n .then((data) => props.applicationStore?.setSiteSettings(data))\n .catch((err) => {\n props.notificationStore?.setNotificationMessage(\n 'Failed to initialize application settings. Please refresh the page',\n 'danger',\n 3000,\n true,\n )\n throwError(err)\n })\n }, [])\n\n return (\n
\n \n \n \n {props.applicationStore?.siteSettings && (\n \n } />\n \n )}\n \n {props.notificationStore?.message && (\n
\n props.notificationStore?.clearMessage()}\n />\n
\n )}\n
\n
\n
\n )\n }),\n)\n","import 'react-app-polyfill/stable'\nimport 'core-js'\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport { App } from './App'\nimport { Provider } from 'mobx-react'\nimport { Route, Router } from 'react-router-dom'\nimport { createBrowserHistory } from 'history'\nimport { ApplicationStore } from './stores/ApplicationStore'\nimport { QueryParamProvider } from 'use-query-params'\nimport { LastLocationProvider } from 'react-router-last-location'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { ErrorFallback } from './components/boundary'\nimport TagManager from 'react-gtm-module'\n\nconst tagManagerArgs = {\n gtmId: 'GTM-5PPXV3LB',\n}\n\nTagManager.initialize(tagManagerArgs)\n\nconst applicationStore = new ApplicationStore()\nconst history = createBrowserHistory()\n\nReactDOM.render(\n \n \n \n null}>\n \n \n \n \n \n \n \n \n ,\n document.getElementById('root'),\n)\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\n// serviceWorker.unregister()\n","import { useHistory } from 'react-router-dom'\nimport { FallbackProps } from 'react-error-boundary'\nimport CompanyConnectorLogo from '../../assets/brand/Ignite_Logo_Full_Color.png'\nimport { CCard, CCardBody, CButton } from '@coreui/react'\n\nexport const ErrorFallback = (props: FallbackProps) => {\n const { error } = props\n const history = useHistory()\n\n history.listen(() => {\n props.resetErrorBoundary()\n })\n\n const determineErrorMessage = (e: any) => {\n if (e.isAxiosError && e.response?.status === 404) {\n return 'The requested resource does not exist'\n }\n return 'Something went wrong!'\n }\n\n return (\n
\n \n \n \"Ignite\n
\n

{determineErrorMessage(error)}

\n

\n If you continue to experience issues, please contact{' '}\n support@mobilizeignite.com\n

\n
\n {\n props.resetErrorBoundary()\n history.push('/')\n }}\n >\n Take me back\n \n
\n \n
\n )\n}\n","export default \"data:image/png;base64,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\"","import { ServerStore, UserData } from './'\nimport {\n FileResponseData,\n GenericNamedItemResponse,\n GenericLabeledItemResponse,\n} from '../lib/types'\nimport { ServerPageData, PaginatedSearchableParams, PaginationParams } from '../lib/types/Params'\nimport { IBusinessClassifications, INaicsCodes } from '../components/form/fragments/listing'\nimport { GenericSearchMetadata, SocialMediaAccount } from './UserStore'\nimport { TechnologyTypeResponse } from './ServerStore'\nimport { IgniteAwardQueryParams } from './ListingStore'\n\nexport interface IdentifiedServerArtifact {\n id: number\n}\n\nexport interface NamedServerArtifact {\n name: string\n}\n\nexport interface IgniteSearchMetadataFulltextMatchType extends IdentifiedServerArtifact {\n rank: number // a float\n highlight?: string // only present if the highlight=true param was used\n}\n\nexport interface IgniteSearchMetadataTechnologyTypesMatchType extends IdentifiedServerArtifact {\n technologyTypes: Array\n}\n\nexport interface IgniteSearchMetadataNaicsCodesMatchType extends IdentifiedServerArtifact {\n naicsCodes: Array\n}\n\nexport interface IgniteSearchMetadataBusinessClassificationsMatchType\n extends IdentifiedServerArtifact {\n businessClassifications: Array\n}\n\nexport type ConnectListingResponse = {\n id: number\n name: string\n logo: FileResponseData\n addressLine1: string\n addressLine2?: string\n addressLine3?: string\n city: string\n stateProvince: string\n postalCode: string\n country: string\n capabilityStatement: string\n dunsCode?: string\n samCode?: string\n uniqueEntityId: string\n tagLine: string\n website: string\n yearFounded: string\n createdAt: string\n updatedAt: string\n lastLogin: string\n lastSync: string\n profileUpdated: string\n technologyTypes: Array\n socialMediaAccounts: Array\n businessClassifications: Array\n naicsCodes: Array\n listingArtifactLinks?: Array\n listingArtifactAttachments?: Array\n pointOfContact?: UserData\n accountId: number\n // Only provided if the GET used any of our search filter params\n searchMetadata?: {\n fulltextSearchMetadata?: {\n listings?: Array\n products?: Array\n services?: Array\n useCases?: Array\n awards?: Array\n }\n highestRankedFulltextMatch?: IgniteSearchMetadataFulltextMatchType & {\n artifactType: 'product' | 'service' | 'useCase' | 'award'\n }\n technologyTypeSearchMetadata: {\n listings?: Array\n products?: Array\n services?: Array\n useCases?: Array\n awards?: Array\n }\n naicsCodeSearchMetadata: {\n listings?: Array\n }\n businessClassificationsSearchMetadata: {\n listings?: Array\n }\n awardAmountRangeSearchMetadata: {\n awards?: Array\n }\n awardContractNumberSearchMetadata: {\n awards?: Array\n }\n awardDateRangeSearchMetadata: {\n awards?: Array\n }\n awardPhaseSearchMetadata: {\n awards?: Array\n }\n awardStateSearchMetadata: {\n awards?: Array\n }\n awardNaicsCodesSearchMetadata: {\n awards?: Array\n }\n matchedArtifacts: {\n awards?: Array\n products?: Array\n services?: Array\n useCases?: Array\n }\n }\n // Only provided if the resourceMetadata was eager loaded\n resourceMetadata?: {\n products: {\n total: number\n technologyTypes: {\n distinct: number\n }\n }\n services: {\n total: number\n technologyTypes: {\n distinct: number\n }\n }\n useCases: {\n total: number\n }\n awards: {\n total: number\n naicsCodes: {\n distinct: number\n }\n }\n }\n}\nexport const isConnectListingResponse = (o: any): o is ConnectListingResponse => {\n if (o === undefined) return false\n return 'id' in o && !!o['id'] && 'uniqueEntityId' in o && !!o['uniqueEntityId']\n}\n\nexport type ConnectNaicsCode = GenericNamedItemResponse & {\n code: string\n}\n\nexport interface ConnectListingArtifactPricing {\n id: string | number\n amount: number\n periodIncrement: string\n periodValue: number\n}\n\nexport interface ConnectListingArtifactLink {\n id: string | number\n name: string\n description: string\n url: string\n}\n\nexport interface ConnectListingArtifactAttachment {\n id: string | number\n name: string\n description: string\n file: FileResponseData\n}\n\nexport interface ConnectListingArtifactTechnologyType {\n artifactId: number\n technologyTypeId: number\n listingArtifactTechnologyTypeId: number\n name: string\n}\n\nexport interface ConnectListingUseCaseData {\n id: string | number\n listingId: string | number\n name: string\n description: string\n url?: string\n logo?: FileResponseData\n startDate?: string\n endDate?: string\n listingArtifactLinks?: Array\n listingArtifactAttachments?: Array\n listingArtifactTechnologyTypes?: Array\n}\nexport interface ConnectListingAwardData {\n id: number\n contractNumber: string\n contractAwardDate?: string\n contractStartDate?: string\n contractEndDate?: string\n awardAmount?: string\n awardTitle?: string\n productServiceCode?: string\n principleNaicsCode?: string\n state?: string\n awardAbstract?: string\n phase?: string\n branch?: string\n program?: string\n piName?: string\n piTitle?: string\n piPhone?: string\n piEmail?: string\n awardYear?: string\n researchInstitutionName?: string\n searchMetadata?: GenericSearchMetadata\n}\nexport interface ConnectListingServiceProductData {\n id: string | number\n listingId: string | number\n name: string\n description: string\n url?: string\n logo?: FileResponseData\n listingArtifactPricings?: Array\n listingArtifactLinks?: Array\n listingArtifactAttachments?: Array\n listingArtifactTechnologyTypes?: Array\n}\n\nexport type PersonData = {\n name: string\n email: string\n phone: string\n title: string\n contactType: string\n}\n\nexport type ConnectSearchParams = PaginatedSearchableParams & { ids?: string }\n\nexport class ConnectListingStore extends ServerStore {\n public getConnectListings = async (params: {\n page: number | string\n perPage: number | string\n search?: string\n searchListings?: string\n searchProducts?: string\n searchServices?: string\n searchUseCases?: string\n searchAwards?: string\n listingTechnologyTypeIds?: string\n listingBusinessClassificationIds?: string\n naicsCodeIds?: string\n listingIdentifier?: string\n serviceTechnologyTypeIds?: string\n productTechnologyTypeIds?: string\n sort?: string\n sortDirection?: string\n eager?: string\n }): Promise> => {\n return this.server()\n .get('/api/v1/connect/listings', { params })\n .then(({ data }) => data as ServerPageData)\n }\n\n public getConnectBusinessClassifications = async (\n params: ConnectSearchParams,\n ): Promise> => {\n return this.server()\n .get('/api/v1/connect/business_classifications', {\n params,\n })\n .then(({ data }) => data as ServerPageData)\n }\n\n public getConnectTechnologyTypes = async (\n params: ConnectSearchParams,\n ): Promise> => {\n return this.server()\n .get('/api/v1/connect/technology_types', {\n params,\n })\n .then(({ data }) => data as ServerPageData)\n }\n\n public getAwardsPhases = async (\n params: PaginationParams,\n ): Promise> => {\n return this.server()\n .get('/api/v1/connect/awards/phases', { params })\n .then(({ data }) => data)\n }\n\n public getSingleConnectListing = (\n id: string | number,\n eager?: string,\n ): Promise => {\n return this.server()\n .get(`/api/v1/connect/listings/${id}`, {\n params: { eager },\n })\n .then(({ data }) => data)\n }\n\n public getConnectListingServices = async ({\n listingId,\n params,\n eager,\n }: {\n listingId: string | number\n params: PaginationParams\n eager?: string\n }): Promise> => {\n return this.server()\n .get(`/api/v1/connect/listings/${listingId}/listing_services`, {\n params: { page: params.page, perPage: params.perPage, eager: eager },\n })\n .then(({ data }) => data)\n }\n\n public getListingAwards = async ({\n listingId,\n params,\n }: {\n listingId: string | number\n params: PaginationParams & IgniteAwardQueryParams\n }): Promise> => {\n return this.server()\n .get(`/api/v1/connect/listings/${listingId}/listing_awards`, {\n params: { ...params },\n })\n .then(({ data }) => data)\n }\n\n public getSingleListingAward = ({\n listingId,\n awardId,\n eager,\n }: {\n listingId: string\n awardId: string\n eager?: string\n }): Promise => {\n return this.server()\n .get(`/api/v1/connect/listings/${listingId}/listing_awards/${awardId}`, { params: { eager } })\n .then(({ data }) => data)\n }\n\n public getListingPersonData = async (\n listingId: string | number,\n params: PaginationParams,\n ): Promise> => {\n return this.server()\n .get(`/api/v1/connect/listings/${listingId}/people`, { params })\n .then(({ data }) => data)\n }\n\n public getConnectListingProducts = async ({\n listingId,\n params,\n eager,\n }: {\n listingId: string | number\n params: PaginationParams\n eager?: string\n }): Promise> => {\n return this.server()\n .get(`/api/v1/connect/listings/${listingId}/listing_products`, {\n params: { page: params.page, perPage: params.perPage, eager: eager },\n })\n .then(({ data }) => data)\n }\n\n public getSingleListingProduct = async ({\n listingId,\n productId,\n eager,\n }: {\n listingId: string\n productId: string\n eager?: string\n }): Promise => {\n return this.server()\n .get(`/api/v1/connect/listings/${listingId}/listing_products/${productId}`, {\n params: { eager },\n })\n .then(({ data }) => data)\n }\n\n public getSingleListingService = ({\n listingId,\n serviceId,\n eager,\n }: {\n listingId: string\n serviceId: string\n eager?: string\n }): Promise => {\n return this.server()\n .get(`/api/v1/connect/listings/${listingId}/listing_services/${serviceId}`, {\n params: { eager },\n })\n .then(({ data }) => data)\n }\n\n public getConnectListingUseCases = async ({\n listingId,\n params,\n eager,\n }: {\n listingId: string | number\n params: PaginationParams\n eager?: string\n }): Promise> => {\n return this.server()\n .get(`/api/v1/connect/listings/${listingId}/listing_use_cases`, {\n params: { page: params.page, perPage: params.perPage, eager: eager },\n })\n .then(({ data }) => data)\n }\n\n public getSingleListingUseCase = ({\n listingId,\n useCaseId,\n eager,\n }: {\n listingId: string\n useCaseId: string\n eager?: string\n }): Promise => {\n return this.server()\n .get(`/api/v1/connect/listings/${listingId}/listing_use_cases/${useCaseId}`, {\n params: { eager },\n })\n .then(({ data }) => data)\n }\n\n public getConnectNaicsCodes = async ({\n page,\n perPage,\n ids,\n search,\n }: {\n page: number | string\n perPage: number | string\n ids?: string\n search?: string\n }): Promise> => {\n return this.server()\n .get('/api/v1/connect/naics_codes', {\n params: { page, perPage, ids, search },\n })\n .then(({ data }) => data as ServerPageData)\n }\n}\n","/* eslint-disable react/no-unescaped-entities */\n/* eslint-disable react/jsx-no-comment-textnodes */\nimport { useState } from 'react'\nimport {\n OptionalImage,\n formatUrlProtocol,\n parseDate,\n SimpleIconButton,\n} from '@mobilizeyourtech/vision-core-react'\nimport {\n isUseCase,\n ListingArtifactAttachment,\n ListingArtifactLink,\n ListingArtifactTechnologyType,\n ListingServiceProductData,\n ListingUseCaseData,\n} from '../../stores/ListingStore'\nimport {\n CCardHeader,\n CCardLink,\n CNav,\n CNavItem,\n CNavLink,\n CTabContent,\n CTabPane,\n} from '@coreui/react'\nimport '../../scss/views/listings/custom-modal.scss'\nimport { ViewListingArtifactAttachmentOrLink } from './ViewListingArtifactAttachmentOrLink'\nimport { ViewListingArtifactTechnologyType } from './ViewListingArtifactTechnologyType'\n\ntype TProps = {\n data: ListingServiceProductData | ListingUseCaseData\n artifactType: string\n handleEditClick: (artifactId: string | number) => void\n}\n\nexport const ViewListingArtifact = (props: TProps) => {\n const [activeKey, setActiveKey] = useState(1)\n return (\n <>\n \n
\n \n

{props.data.name}

\n props.handleEditClick(props.data.id)}\n iconClassName=\"fas fa-pen\"\n />\n
\n {props.data.url && (\n
\n \n {props.data.url.replace(/^https?:\\/\\//, '')}\n \n
\n )}\n \n
\n

{props.data.description}

\n {isUseCase(props.data) && (\n \n

\n Start Date:{' '}\n {props.data.startDate ? (\n parseDate(props.data.startDate)\n ) : (\n N/A\n )}\n

\n

\n End Date:{' '}\n {props.data.endDate ? (\n parseDate(props.data.endDate)\n ) : (\n N/A\n )}\n

\n
\n )}\n \n <>\n \n setActiveKey(1)}>\n Attachments\n \n \n \n setActiveKey(2)}>\n Links\n \n \n {!isUseCase(props.data) && (\n \n setActiveKey(3)}>\n Technology Types\n \n \n )}\n \n \n \n \n {props.data.listingArtifactAttachments &&\n props.data.listingArtifactAttachments.length < 1 && (\n

{`Attachments not available for this ${\n props.artifactType === 'useCase'\n ? props.artifactType.replace('useCase', 'use case')\n : props.artifactType\n }.`}

\n )}\n {props.data.listingArtifactAttachments?.map((attachment: ListingArtifactAttachment) => (\n \n ))}\n
\n \n {props.data.listingArtifactLinks && props.data.listingArtifactLinks.length < 1 && (\n

{`Links not available for this ${props.artifactType}.`}

\n )}\n {props.data.listingArtifactLinks?.map((link: ListingArtifactLink) => (\n \n ))}\n
\n {!isUseCase(props.data) && (\n \n {props.data.listingArtifactTechnologyTypes &&\n props.data.listingArtifactTechnologyTypes.length < 1 && (\n

{`Technology types not available for this ${props.artifactType}.`}

\n )}\n {props.data.listingArtifactTechnologyTypes?.map(\n (techType: ListingArtifactTechnologyType) => (\n \n ),\n )}\n
\n )}\n
\n
\n \n )\n}\n","import { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { useRouteMatch } from 'react-router-dom'\n\nimport {\n ListingStore,\n NotificationStore,\n ApplicationStore,\n ConnectListingStore,\n} from '../../stores'\nimport {\n isAward,\n ListingAwardData,\n ListingServiceProductData,\n ListingUseCaseData,\n} from '../../stores/ListingStore'\nimport { CustomModal, SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport { CCardBody, CCardHeader, CModalBody } from '@coreui/react'\nimport { ViewListingArtifact } from './ViewListingArtifact'\nimport { ViewListingAward } from './ViewListingAward'\n\ntype TProps = {\n listingStore?: ListingStore\n connectListingStore?: ConnectListingStore\n notificationStore?: NotificationStore\n handleEditClick: (artifactId: string | number) => void\n connect?: Boolean\n}\n\ninterface MatchParams {\n id: string\n}\n\nconst ViewListingArtifactModal = inject(\n ApplicationStore.names.listingStore,\n ApplicationStore.names.connectListingStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [params, setParams] = useQueryParams({\n artifactType: withDefault(StringParam, undefined),\n artifactId: withDefault(StringParam, undefined),\n })\n\n const {\n params: { id: listingId },\n } = useRouteMatch()\n\n const [data, setData] = useState<\n ListingServiceProductData | ListingUseCaseData | ListingAwardData | undefined\n >(undefined)\n const [isLoading, setIsLoading] = useState(true)\n const [error, setError] = useState(undefined)\n\n useEffect(() => {\n if (params.artifactId && params.artifactType) {\n setError(undefined)\n setIsLoading(true)\n let promise:\n | Promise\n | undefined = undefined\n\n let store = props.connect ? props.connectListingStore : props.listingStore\n if (params.artifactType === 'service') {\n promise = store!.getSingleListingService({\n listingId,\n serviceId: params.artifactId,\n eager: 'links,attachments,technologyTypes',\n })\n } else if (params.artifactType === 'product') {\n promise = store!.getSingleListingProduct({\n listingId,\n productId: params.artifactId,\n eager: 'links,attachments,technologyTypes',\n })\n } else if (params.artifactType === 'use case') {\n promise = store!.getSingleListingUseCase({\n listingId,\n useCaseId: params.artifactId,\n eager: 'links,attachments',\n })\n } else if (params.artifactType === 'award') {\n promise = store!.getSingleListingAward({\n listingId,\n awardId: params.artifactId,\n eager: 'links,attachments,technologyTypes',\n })\n } else {\n setError(`Unsupported listing artifact of type ${params.artifactType}`)\n setTimeout(() => {\n setIsLoading(false)\n }, 1000)\n }\n\n promise\n ?.then((response) => {\n setData(response)\n })\n .catch(() => {\n setError(`Unable to get ${params.artifactType} data; please try again later`)\n })\n .finally(() => {\n setTimeout(() => {\n setIsLoading(false)\n }, 1000)\n })\n } else {\n setData(undefined)\n }\n }, [params])\n\n const renderArtifact = () => {\n if (!data) {\n return\n }\n\n if (isAward(data)) {\n return \n }\n return (\n props.handleEditClick(artifactId)}\n />\n )\n }\n return (\n setParams({ artifactId: undefined, artifactType: undefined })}\n scrollable\n size={data && isAward(data) ? 'lg' : undefined}\n >\n \n \n
\n {error ? (\n \n {error}\n \n ) : (\n renderArtifact()\n )}\n
\n
\n
\n \n )\n }),\n)\n\nexport default ViewListingArtifactModal\n","import { useEffect, useState } from 'react'\n\nexport type WithValidatorParams = {\n value?: any\n required?: boolean\n validate: (v: T) => string | undefined\n onChange: (v: T | undefined) => any\n renderInvalidMessage?: (invalidReason: string | undefined) => string | undefined\n}\n\n/**\n * helpful hook to encapsulate our input validation state functions and logic\n * @param params\n */\nexport const useValidation = (params: WithValidatorParams) => {\n const [value, _setValue] = useState(params.value || '')\n const [isValid, setIsValid] = useState(!params.validate(value))\n const [invalidReason, setInvalidReason] = useState(params.validate(value))\n const [showInvalidReason, setShowInvalidReason] = useState(false)\n const [invalidMessage, setInvalidMessage] = useState(undefined)\n const validateRequired = (v: string) => {\n if (params.required && !v) {\n return 'required'\n }\n }\n\n // alternate heavy implementation: return value object\n useEffect(() => {\n if (params.value !== value) {\n setValue(params.value)\n }\n }, [params.value])\n\n // Effect to handle the change of value\n const setValue = (_value: any) => {\n _setValue(_value)\n const _invalidReason = validateRequired(_value) || params.validate(_value)\n setInvalidReason(_invalidReason)\n\n if (!_invalidReason) {\n setIsValid(true)\n setShowInvalidReason(true)\n setInvalidMessage(undefined)\n } else {\n setIsValid(false)\n params.renderInvalidMessage && setInvalidMessage(params.renderInvalidMessage(_invalidReason))\n }\n\n params.onChange(_value)\n }\n\n const invokeValidation = () => {\n const _invalidReason = validateRequired(value) || params.validate(value)\n setIsValid(!_invalidReason)\n setInvalidReason(_invalidReason)\n setShowInvalidReason(true)\n }\n\n return {\n value,\n setValue,\n isValid,\n invalidReason,\n showInvalidReason,\n invokeValidation,\n invalidMessage,\n }\n}\n","import React from 'react'\n\nexport const useErrorPropagator = () => {\n const [, setError] = React.useState()\n const throwError = React.useCallback(\n (e) => {\n setError(() => {\n throw e\n })\n },\n [setError],\n )\n\n return { throwError }\n}\n","import React, { useEffect, useState } from 'react'\nimport {\n ApplicationStore,\n ServerStore,\n NotificationStore,\n SocialMediaTypeResponse,\n} from '../../../stores'\nimport { CCol, CInputGroupText, CInputGroup } from '@coreui/react'\nimport { ValidatedCFormInput } from '../../custom'\nimport { inject, observer } from 'mobx-react'\nimport { determineSocialMediaIconClassName } from '../../../lib/helpers/utils'\n\nexport type SocialMediaFormData = {\n id?: number\n socialMediaTypeId: number\n identifier: string\n}\ntype TProps = {\n value: Array\n onChange: (value: Array) => void\n serverStore?: ServerStore\n notificationStore?: NotificationStore\n}\n\nexport const SocialMediaAccountsForm = inject(\n ApplicationStore.names.serverStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [socialMediaData, setSocialMediaData] = useState<\n Array | undefined\n >(undefined)\n\n useEffect(() => {\n props.serverStore\n ?.getSocialMediaTypes()\n .then((data) => setSocialMediaData(data))\n .catch(() =>\n props.notificationStore?.setNotificationMessage(\n 'Failed to retrieve social media data. Please try again',\n 'error',\n 3000,\n ),\n )\n }, [])\n\n const onSocialMediaChange = (change: SocialMediaFormData) => {\n const existing = props.value.find((sm) => sm.socialMediaTypeId === change.socialMediaTypeId)\n if (existing) {\n props.onChange(\n props.value.map((sm) => {\n if (sm.socialMediaTypeId === change.socialMediaTypeId) {\n return { ...sm, ...change }\n }\n return sm\n }),\n )\n } else {\n props.onChange([...(props.value || []), change])\n }\n }\n\n const validateLength = (value: string | undefined, min: number): string | undefined => {\n if (!value || (value && value.length >= min)) {\n return\n }\n\n return 'insufficient_length'\n }\n\n return (\n \n {socialMediaData?.map((smt) => {\n const id = `socialMedia${smt.name.replace(' ', '')}`\n const existing = props.value.find((sm) => sm.socialMediaTypeId === smt.id)\n\n return (\n \n \n \n \n \n \n onSocialMediaChange({\n socialMediaTypeId: smt.id,\n identifier: value ? value : '',\n })\n }\n validate={(value) => validateLength(value, 2)}\n renderInvalidMessage={() => 'Must be at least 2 characters'}\n />\n \n \n )\n })}\n \n )\n }),\n)\n","import { CCard, CCardText, CCol, CLink, CRow } from '@coreui/react'\nimport {\n isAttachment,\n isLink,\n ListingArtifactAttachment,\n ListingArtifactLink,\n} from '../../stores/ListingStore'\nimport { fileIconLookup, formatUrlProtocol } from '@mobilizeyourtech/vision-core-react'\n\ntype TProps = {\n data?: ListingArtifactAttachment | ListingArtifactLink\n}\nexport const ViewListingArtifactAttachmentOrLink = (props: TProps) => {\n return (\n \n \n {props.data && isLink(props.data) && (\n \n {props.data.name}\n \n )}\n {props.data && isAttachment(props.data) && (\n \n \n \n {fileIconLookup(props.data.file.mimeType, '#005CB9')}\n \n \n \n \n {props.data?.name}\n \n \n \n )}\n \n {props.data?.description}\n \n \n \n )\n}\n","import React from 'react'\nimport { CCard, CCardBody, CCardHeader, CCol, CFormLabel, CRow } from '@coreui/react'\nimport {\n GoogleSuggestAddressInput,\n SingleImageUploader,\n SingleUserSelect,\n ValidatedCFormInput,\n} from '../../../custom'\nimport { validateLength, validateWebsite, validateYear } from '../../../../lib/helpers/validation'\nimport { SocialMediaAccountsForm, SocialMediaFormData } from '../SocialMediaAccountsForm'\nimport { AccountStore, ApplicationStore, UserData } from '../../../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { GoogleAddressData } from '../../../custom/GoogleSuggestAddressInput'\n\ntype OrganizationDetailsType = {\n value: Partial\n onChange: (value: Partial) => void\n accountStore?: AccountStore\n}\n\nexport type ListingOrganizationFormData = {\n name: string\n tagLine: string\n logo: any\n yearFounded: string\n website: string\n headquarters: Partial\n socialMedia?: Array\n pointOfContact?: UserData\n}\n\nexport const OrganizationDetails = inject(\n ApplicationStore.names.accountStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: OrganizationDetailsType) => {\n return (\n
\n \n Details\n \n \n Title\n \n validateLength(v, 2)}\n data-testid=\"organization-name-input\"\n placeholder=\"Product, service, or company name\"\n value={props.value.name || ''}\n onChange={(value: string | undefined) => {\n props.onChange({ ...props.value, name: value })\n }}\n renderInvalidMessage={() => 'Must be at least 2 characters'}\n />\n \n \n\n \n Logo\n \n props.onChange({ ...props.value, logo: file })}\n data-testid={'listing-logo-uploader'}\n />\n \n \n\n \n Tagline\n \n validateLength(v, 2)}\n data-testid=\"organization-tagline-input\"\n placeholder=\"Tagline\"\n value={props.value.tagLine || ''}\n onChange={(value: string | undefined) => {\n props.onChange({ ...props.value, tagLine: value })\n }}\n renderInvalidMessage={() => 'Must be at least 2 characters'}\n />\n \n \n\n \n Headquarters\n \n props.onChange({ ...props.value, headquarters: change })}\n value={props.value.headquarters || {}}\n required\n isEditForm={true}\n />\n \n \n\n \n Year Founded\n\n \n validateYear(v, 1700)}\n data-testid=\"year-founded-input\"\n placeholder=\"Year Founded\"\n value={props.value.yearFounded || ''}\n onChange={(value: string | undefined) => {\n props.onChange({ ...props.value, yearFounded: value })\n }}\n renderInvalidMessage={() => 'Year should be between 1700 and the current year'}\n />\n \n \n\n \n Point of Contact\n \n {\n props.onChange({ ...props.value, pointOfContact: u })\n }}\n getDataFunction={() => props.accountStore!.getDefaultAccountUsers()}\n />\n \n \n\n \n Website\n \n validateWebsite(v)}\n data-testid=\"website-input\"\n placeholder=\"Website\"\n value={props.value.website || ''}\n onChange={(value: string | undefined) => {\n props.onChange({ ...props.value, website: value })\n }}\n renderInvalidMessage={() => 'Invalid website url'}\n />\n \n \n\n \n \n \n \n Social Media (Optional)\n \n \n \n \n \n props.onChange({ ...props.value, socialMedia: change })}\n />\n \n \n \n
\n )\n }),\n)\n","import React from 'react'\nimport { CCard, CCardBody, CCardHeader, CCol, CFormLabel, CRow } from '@coreui/react'\nimport { ValidatedCFormTextArea } from '../../../custom'\nimport { validateLength } from '../../../../lib/helpers/validation'\nimport { BusinessClassifications, IBusinessClassifications } from './BusinessClassifications'\nimport { INaicsCodes, NaicsCodes } from './NaicsCodes'\nimport { TechnologyFocusAreas } from './TechnologyFocusAreas'\nimport { Destructible } from '../../../../stores/ListingStore'\nimport { TechnologyTypeResponse } from '../../../../stores/ServerStore'\n\nexport type ListingContractingDetailsFormData = {\n samCode?: string\n dunsCode?: string\n businessClassifications: Array\n naicsCodes: Array\n technologyTypes: Array\n capabilityStatement: string\n}\n\ntype TProps = {\n value: Partial\n onChange: (value: Partial) => void\n}\n\nexport const ContractingDetails = (props: TProps) => {\n return (\n
\n \n Contracting Details\n \n \n Business Classifications\n \n \n props.onChange({ ...props.value, businessClassifications: change })\n }\n />\n \n \n \n NAICS Codes\n \n props.onChange({ ...props.value, naicsCodes: change })}\n />\n \n \n \n Company Focus Areas\n \n props.onChange({ ...props.value, technologyTypes: change })}\n />\n \n \n \n Statement of Capabilities\n \n props.onChange({ ...props.value, capabilityStatement: value })}\n validate={(v) => validateLength(v, 50)}\n value={props.value.capabilityStatement}\n renderInvalidMessage={() => 'Must be at least 50 characters'}\n required\n />\n \n \n \n \n
\n )\n}\n","import { ListingFormData } from '../../stores/ListingStore'\nimport { validateLength, validateWebsite, validateYear } from './validation'\nimport { NamedServerArtifact, NamedWithLabelServerArtifact, SubPageData } from '../types'\nimport { PaginationParams } from '../types/Params'\nimport { Dispatch, SetStateAction } from 'react'\nimport { NotificationStore } from '../../stores'\nimport { ServerPageData } from '@mobilizeyourtech/vision-core-react'\n\nexport const UNCLASSIFIED_WARNING_PROMPT =\n 'This system is able to handle information up to the UNCLASSIFIED level. Do not add any information or upload any documents that are classified.'\n\nexport const FILE_UPLOAD_MAX_SIZE_BYTES = 10000000 // 10MB\n\nexport const FILE_UPLOAD_MAX_SIZE_CONTENT = '10MB filesize limit'\nexport const uuid = () => {\n let dt = new Date().getTime()\n const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (dt + Math.random() * 16) % 16 | 0\n dt = Math.floor(dt / 16)\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16)\n })\n return uuid\n}\n\nexport const months = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n]\n\nexport const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n\nexport const formatDate = (date: Date) => {\n return `${days[date.getDay()]}, ${\n months[date.getMonth()]\n } ${date.getDate()} ${date.getFullYear()}`\n}\n\nexport const determineSocialMediaIconClassName = (name: string) => {\n switch (name.toLowerCase()) {\n case 'facebook':\n return 'fab fa-facebook'\n case 'linkedin':\n return 'fab fa-linkedin'\n case 'twitter':\n return 'fab fa-twitter-square'\n default:\n return undefined\n }\n}\n\nexport const arrayContainsAny = (arr: any[], elements: any[]) => {\n return arr.some((e) => elements.includes(e))\n}\n\nexport const objectIsEmpty = (obj: object) => {\n return Object.keys(obj).length === 0 && Object.values(obj).every((v) => !v)\n}\n\nexport const capitalizeFirstLetter = (str: string) => {\n const l = str.toLowerCase()\n return l.charAt(0).toUpperCase() + l.slice(1)\n}\n\nexport const objectContainsAnyValue = (params: {\n [key: string]: string | undefined | number | Date\n}) => {\n return Object.values(params).some((value) => !!value)\n}\n\nexport const titleCase = (str: string) => {\n const words = str.split(' ')\n const formats = words.map((w) => {\n return capitalizeFirstLetter(w)\n })\n return formats.join(' ')\n}\n\nexport const formatUrlProtocol = (url: string): string => {\n return /^(http(s?)):\\/\\//i.test(url) ? url : `https://${url}`\n}\n\nexport const formatNumber = (num: string | number) => {\n return num.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n}\n\nexport const isListingSubmittable = (formData: Partial | undefined): boolean => {\n if (!formData) {\n return false\n }\n\n let errors = [\n validateWebsite(formData.website),\n validateYear(formData.yearFounded),\n validateLength(formData.capabilityStatement, 50),\n validateLength(formData.name, 2),\n validateLength(formData.tagLine, 2),\n validateLength(formData.headquarters?.city, 2),\n validateLength(formData.headquarters?.addressLine1, 2),\n validateLength(formData.headquarters?.postalCode, 2),\n ]\n\n formData.socialMedia &&\n formData.socialMedia.forEach((socialAccount) => {\n if (socialAccount.identifier.length === 1) {\n errors.push(validateLength(socialAccount.identifier, 2))\n }\n })\n\n let validAttachments = formData.listingArtifactAttachmentsAttributes\n ? formData.listingArtifactAttachmentsAttributes?.every((v) => !!v.file)\n : true\n let validLinks = formData.listingArtifactLinksAttributes\n ? formData.listingArtifactLinksAttributes?.every((v) => !validateWebsite(v.url) && !!v.name)\n : true\n let validLogo = !!formData.logo\n\n if (errors.some((err) => !!err)) {\n return false\n } else if (!validAttachments || !validLinks || !validLogo) {\n return false\n }\n\n return [\n formData.pointOfContact,\n formData.headquarters?.stateOrProvince,\n formData.headquarters?.country,\n ].every((e) => !!e)\n}\n\ntype SearchParamType = {\n ids: string | undefined\n getDropdownData: (p: PaginationParams & { ids?: string }) => Promise>\n setSelected: Dispatch>\n typeForErrorMessage: string\n}\n\nexport const initializeSearchDropdown = <\n T extends NamedWithLabelServerArtifact | NamedServerArtifact,\n>(\n searchParams: SearchParamType,\n notificationStore: NotificationStore,\n) => {\n if (searchParams.ids) {\n searchParams\n .getDropdownData({\n page: 1,\n perPage: searchParams.ids?.split(',').length,\n ...searchParams,\n })\n .then((response) =>\n searchParams.setSelected(\n response.data.map((d) => {\n const label = (d as NamedWithLabelServerArtifact).label\n const name = (d as NamedServerArtifact).name\n\n return { ...d, label: name ? name : label }\n }),\n ),\n )\n .catch(() =>\n notificationStore?.setNotificationMessage(\n 'Failed to populate ' + searchParams.typeForErrorMessage + '. Please try again later',\n 'error',\n 3000,\n ),\n )\n }\n}\n\nexport const isSubPageData = (o: any): o is SubPageData => {\n return 'data' in o && 'count' in o && 'path' in o\n}\n\nexport const generateRandomId = () => Math.random().toString(36).substring(2, 12)\n","import React from 'react'\nexport type TProps = {\n className?: string\n}\nexport const Spinner = (props: TProps) => {\n // Placeholder until we want our own custom\n // sourced from https://icons8.com/preloaders/en/search/spinner\n // Used a gif as opposed to css animations anticipating possible IE limitations\n return (\n \n )\n}\n","import { useState, useRef, useEffect } from 'react'\nimport classnames from 'classnames'\n\nexport interface ICustomDropdownItem {\n label: string\n}\n\nexport interface CustomDropdownProps {\n options: Array\n placeholder: string\n selectedOption?: string | T\n onSelect: (selection: string | T) => void\n onSelectNone?: () => void\n ariaRequired?: boolean\n CustomDropdownClass?: string\n dropdownClass?: string\n dataTestId?: string\n disabled?: boolean\n}\n\nexport const CustomDropdown = (props: CustomDropdownProps) => {\n const [isExpanded, toggleIsExpanded] = useState(false)\n\n const itemRefs = useRef>([])\n const dropdownRef = useRef(null)\n let node: any = useRef()\n\n const handleTargetOutside = (e: MouseEvent | FocusEvent) => {\n if (node.current.contains(e.target)) {\n return\n }\n toggleIsExpanded(false)\n }\n\n const handleEscape = ({ key: kypress }: KeyboardEvent) => {\n if (kypress === 'Escape') {\n toggleIsExpanded(false)\n }\n }\n\n useEffect(() => {\n if (isExpanded) {\n document.addEventListener('mousedown', handleTargetOutside)\n document.addEventListener('focusin', handleTargetOutside)\n document.addEventListener('keydown', handleEscape)\n }\n return () => {\n document.removeEventListener('mousedown', handleTargetOutside)\n document.removeEventListener('focusin', handleTargetOutside)\n document.removeEventListener('keydown', handleEscape)\n }\n }, [isExpanded])\n\n const isLabeled = (o: string | T | undefined): o is T => {\n return o != null ? typeof o !== 'string' : false\n }\n\n const getDisplayLabel = (o: string | T | undefined): string | T | undefined => {\n return isLabeled(o) ? o.label : o\n }\n\n return (\n
\n {\n if (props.disabled) return\n toggleIsExpanded(!isExpanded)\n }}\n aria-required={props.ariaRequired}\n role=\"listbox\"\n aria-disabled={props.disabled}\n onKeyDown={(e) => {\n if (props.disabled) return\n let { key: keyPress } = e\n if (keyPress === 'Enter') {\n toggleIsExpanded(!isExpanded)\n } else if (keyPress === 'ArrowDown') {\n e.preventDefault()\n toggleIsExpanded(true)\n itemRefs.current.length && itemRefs.current[0].focus()\n }\n }}\n >\n

\n {getDisplayLabel(props.selectedOption) || props.placeholder}\n

\n
\n \n \n
\n \n\n {isExpanded && (\n \n {props.onSelectNone && (\n {\n toggleIsExpanded(false)\n props.onSelectNone && props.onSelectNone()\n }}\n className={'dropdown-item clickable select-none'}\n tabIndex={-1}\n ref={(element) => {\n if (element) {\n itemRefs.current[0] = element\n }\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n props.onSelectNone && props.onSelectNone()\n toggleIsExpanded(false)\n dropdownRef.current && dropdownRef.current.focus()\n } else if (e.key === 'ArrowDown') {\n e.preventDefault()\n itemRefs.current.length > 1 && itemRefs.current[1].focus()\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n dropdownRef.current && dropdownRef.current.focus()\n }\n }}\n >\n Select None\n

\n )}\n {props.options.map((o, idx) => {\n return (\n {\n if (element) {\n itemRefs.current[props.onSelectNone ? idx + 1 : idx] = element\n }\n }}\n onClick={() => {\n toggleIsExpanded(false)\n props.onSelect(o)\n }}\n onKeyDown={(e) => {\n let { key: keyPress } = e\n if (keyPress === 'Enter') {\n toggleIsExpanded(false)\n props.onSelect(o)\n } else if (keyPress === 'ArrowDown') {\n e.preventDefault()\n let nextItemIndex = props.onSelectNone ? idx + 2 : idx + 1\n nextItemIndex < itemRefs.current.length &&\n itemRefs.current[nextItemIndex].focus()\n } else if (keyPress === 'ArrowUp') {\n e.preventDefault()\n let previousItemIndex = props.onSelectNone ? idx : idx - 1\n previousItemIndex > -1 && itemRefs.current[previousItemIndex].focus()\n }\n }}\n >\n {getDisplayLabel(o)}\n

\n )\n })}\n \n )}\n
\n )\n}\n","import { makeAutoObservable } from 'mobx'\nimport {\n ServerStore,\n AuthStore,\n UserStore,\n NotificationStore,\n ListingStore,\n ConnectListingStore,\n} from './'\nimport { AccountStore } from './AccountStore'\nimport { AnalyticsStore } from './AnalyticsStore'\n\nexport class ApplicationStore {\n public static names = {\n serverStore: 'serverStore',\n authStore: 'authStore',\n userStore: 'userStore',\n notificationStore: 'notificationStore',\n listingStore: 'listingStore',\n accountStore: 'accountStore',\n connectListingStore: 'connectListingStore',\n analyticsStore: 'analyticsStore',\n }\n public readonly serverStore\n public readonly authStore\n public readonly userStore\n public readonly notificationStore\n public readonly listingStore\n public readonly accountStore: AccountStore\n public readonly connectListingStore\n public readonly analyticsStore\n\n public sidebarShow = true\n public sidebarUnfoldable = false\n public siteSettings: { [key: string]: any } | undefined = undefined\n\n constructor() {\n makeAutoObservable(this)\n this.authStore = new AuthStore()\n this.notificationStore = new NotificationStore()\n this.listingStore = new ListingStore(this.authStore, this.notificationStore)\n this.serverStore = new ServerStore(this.authStore, this.notificationStore)\n this.userStore = new UserStore(this.authStore, this.notificationStore)\n this.accountStore = new AccountStore(this.authStore, this.notificationStore)\n this.connectListingStore = new ConnectListingStore(this.authStore, this.notificationStore)\n this.analyticsStore = new AnalyticsStore(this.authStore, this.notificationStore)\n }\n\n getStores = () => {\n return {\n [ApplicationStore.names.serverStore]: this.serverStore,\n [ApplicationStore.names.authStore]: this.authStore,\n [ApplicationStore.names.userStore]: this.userStore,\n [ApplicationStore.names.notificationStore]: this.notificationStore,\n [ApplicationStore.names.listingStore]: this.listingStore,\n [ApplicationStore.names.accountStore]: this.accountStore,\n [ApplicationStore.names.connectListingStore]: this.connectListingStore,\n [ApplicationStore.names.analyticsStore]: this.analyticsStore,\n }\n }\n\n public toggleSidebarShow() {\n this.setSidebarShow(!this.sidebarShow)\n }\n\n public setSidebarShow(val: boolean) {\n this.sidebarShow = val\n }\n\n public toggleSidebarUnfoldable() {\n this.setSidebarUnfoldable(!this.sidebarUnfoldable)\n }\n\n public setSidebarUnfoldable(val: boolean) {\n this.sidebarUnfoldable = val\n }\n\n public getSiteSettings(): Promise<{ [key: string]: any }> {\n return this.serverStore\n .server()\n .get('/api/v1/site_settings')\n .then(({ data }) => data)\n }\n\n public setSiteSettings(siteSettings: { [key: string]: any }) {\n this.siteSettings = siteSettings\n }\n\n public checkSignupUserEmail(email: string): Promise<{ value: boolean }> {\n return this.serverStore\n .server()\n .get('/api/v1/gov/check_email', { params: { email } })\n .then(({ data }) => data)\n }\n}\n","import { ServerPageData } from '@mobilizeyourtech/vision-core-react'\nimport { ServerStore } from './ServerStore'\nimport { AccountData, InvitedUserData, UserData } from './UserStore'\n\nexport type TermsOrPrivacyResponse = {\n id: string | number\n title: string\n content: string\n publishDate: string\n}\n\nexport type UserInviteData = {\n firstName: string\n lastName: string\n email: string\n}\n\nexport type UserInviteResponse = {\n id: number\n firstName: string\n lastName: string\n email: string\n accepted: boolean\n inviteTokenExpiry: string\n}\n\nexport class AccountStore extends ServerStore {\n public baseCurrentUserURL = '/api/v1/current_user'\n\n public getDefaultAccountUsers(): Promise> {\n return this.server()\n .get(`${this.baseCurrentUserURL}/account/users`)\n .then(({ data }) => data)\n }\n\n public getAccountUsers(\n accountId: number,\n page: string | number,\n perPage: string | number,\n includeUserInvites: boolean,\n ): Promise> {\n return this.server()\n .get(`/api/v1/accounts/${accountId}/users`, {\n params: { page, perPage, includeUserInvites },\n })\n .then(({ data }) => data)\n }\n\n public inviteUserToAccount(\n accountId: string | number,\n userData: Partial,\n ): Promise {\n return this.server().post(`/api/v1/accounts/${accountId}/user_invites`, userData)\n }\n\n public fetchUserInvite(\n accountId: string | number,\n userInviteId: string | number,\n ): Promise {\n return this.server()\n .get(`/api/v1/accounts/${accountId}/user_invites/${userInviteId}`)\n .then(({ data }) => data)\n }\n\n public editUserInvite(\n accountId: string | number,\n userInviteId: string | number,\n userData: Partial,\n ): Promise {\n return this.server().patch(\n `/api/v1/accounts/${accountId}/user_invites/${userInviteId}`,\n userData,\n )\n }\n\n public resendUserInvite(\n accountId: string | number,\n userInviteId: string | number,\n ): Promise {\n return this.server().patch(`/api/v1/accounts/${accountId}/user_invites/${userInviteId}/resend`)\n }\n\n public deleteUserInvite(\n accountId: string | number,\n userInviteId: string | number,\n ): Promise {\n return this.server().delete(`/api/v1/accounts/${accountId}/user_invites/${userInviteId}`)\n }\n\n public getLatestTerms(): Promise {\n return this.server()\n .get('/api/v1/terms')\n .then(({ data }) => data)\n }\n\n public getLatestPrivacy(): Promise {\n return this.server()\n .get('/api/v1/privacy')\n .then(({ data }) => data)\n }\n\n public getLatestAntiSpamPolicy(): Promise {\n return this.server()\n .get('/api/v1/anti_spam_policy')\n .then(({ data }) => data)\n }\n\n public signTerms(termId: string | number) {\n return this.server().post(`/api/v1/terms/${termId}/sign`)\n }\n\n public signPrivacy(privacyId: string | number) {\n return this.server().post(`/api/v1/privacy/${privacyId}/sign`)\n }\n\n public recordSetupPaymentSessionComplete(): Promise {\n return this.server()\n .patch(`/api/v1/current_user/account/mark_setup_session_complete`)\n .then(({ data }) => data)\n }\n}\n","import { ServerStore } from './ServerStore'\nimport { PaginationParams, ServerPageData } from '../lib/types/Params'\n\nexport type TechnologyTypeStatistic = {\n id: number\n listingAwardCount: number\n listingAwardPct: string\n listingCount: number\n listingPct: string\n listingProductCount: number\n listingProductPct: string\n listingServiceCount: number\n listingServicePct: string\n name: string\n usersCount: number\n usersPct: string\n visionUsersCount: number\n visionUsersPct: string\n}\n\nexport type PieChartCellDataRecord = {\n testingId: string\n name: string\n value: number\n id: string | number\n}\n\nexport type SBCTimelineStatistic = {\n claimedListingsTotal: number\n listingsTotal: number\n month: string\n usersTotal: number\n}\n\nexport type ActiveConversationStatistic = {\n activeConversations: number\n messagesSent: number\n month: string\n}\n\nexport type DafUsersStatistic = {\n userLogins: number\n messagesSent: number\n month: string\n}\n\nexport type SbcUsersStatistic = {\n userLogins: number\n messagesSent: number\n month: string\n}\n\nexport type GovUsersTimelineStatistic = {\n month: string\n usersTotal: number\n visionUsersTotal: number\n}\n\nexport type ListingPageViewStatistic = {\n id: number\n name: string\n pageViews: number\n}\n\nexport type OrganizationUserStatistic = {\n organization: string\n usersCount: number\n}\n\nexport type GovUserChatResponseStatistic = {\n value: string | number | null\n}\n\nexport type GovUserEngagedCompanies = {\n count: number\n}\n\nexport class AnalyticsStore extends ServerStore {\n public getTechnologyTypeStatistics = async (): Promise> => {\n return this.server()\n .get('/api/v1/admin/statistics/technology_types_statistic')\n .then(({ data }) => data as Array)\n }\n\n public getSBCTimelineStatistics = async (): Promise> => {\n return this.server()\n .get('/api/v1/admin/statistics/company_timeline_statistic')\n .then(({ data }) => data as Array)\n }\n\n public getGovUsersTimelineStatistics = async (): Promise> => {\n return this.server()\n .get('/api/v1/admin/statistics/gov_users_timeline_statistic')\n .then(({ data }) => data as Array)\n }\n\n public getListingPageViewStatistics(\n params: PaginationParams,\n ): Promise> {\n return this.server()\n .get('/api/v1/admin/statistics/listing_page_views_statistic', { params })\n .then(({ data }) => data)\n }\n\n public getGovUserEngagedCompaniesStatistic = async (): Promise => {\n return this.server()\n .get('/api/v1/admin/statistics/count_gov_user_engaged_companies_statistic')\n .then(({ data }) => data)\n }\n\n public getGovUserChatResponseStatistic = async (): Promise => {\n return this.server()\n .get('/api/v1/admin/statistics/pct_gov_user_chat_response_statistic')\n .then(({ data }) => data)\n }\n\n public getActiveConversationStatistics = async (): Promise<\n Array\n > => {\n return this.server()\n .get('/api/v1/admin/statistics/active_conversations_statistic')\n .then(({ data }) => data as Array)\n }\n\n public getDafUserStatistics = async (): Promise> => {\n return this.server()\n .get('/api/v1/admin/statistics/daf_users_statistic')\n .then(({ data }) => data as Array)\n }\n\n public getSbcUserStatistics = async (): Promise> => {\n return this.server()\n .get('/api/v1/admin/statistics/sbc_users_statistic')\n .then(({ data }) => data as Array)\n }\n\n public getOrganizationUserStatistics(\n params: PaginationParams,\n ): Promise> {\n return this.server()\n .get('/api/v1/admin/statistics/organization_users_statistic', { params })\n .then(({ data }) => data)\n }\n}\n","import React from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ServerStore, NotificationStore } from '../../../../stores'\nimport { PaginationData, SearchableParams } from '../../../../lib/types/Params'\nimport {\n isDirtySelectableItem,\n SelectableItem,\n ServerBackedMultiSelectAutoComplete,\n} from '@mobilizeyourtech/vision-core-react'\n\nexport interface IBusinessClassifications {\n id: number\n name: string\n}\n\ntype TProps = {\n serverStore?: ServerStore\n notificationStore?: NotificationStore\n selected: Array\n onChange: (nc: Array) => void\n}\n\nexport const BusinessClassifications = inject(\n ApplicationStore.names.serverStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const getBusinessClassifications = (params: SearchableParams) => {\n return props.serverStore!.getBusinessClassifications(params).then((response) => ({\n data: response.data.map((r) => ({ ...r, label: r.name })),\n // This is a hack, since this isn't paginated\n pagination: {\n count: response.data.length,\n page: 1,\n pages: 1,\n } as PaginationData,\n }))\n }\n\n const getSelectedBusinessClassifications = () => {\n return props.selected.map((nc) => {\n return { ...nc, label: nc.name }\n })\n }\n\n return (\n
\n \n // DirtySelectableItem is only possible if allowDirty were set to tru\n props.onChange(\n change.filter((e) => !isDirtySelectableItem(e)) as Array<\n IBusinessClassifications & SelectableItem\n >,\n )\n }\n selections={getSelectedBusinessClassifications()}\n placeholder={'Search and select multiple business classifications'}\n className=\"business-classifications\"\n data-testid={'business-classifications-select'}\n />\n
\n )\n }),\n)\n","import React from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ServerStore, NotificationStore } from '../../../../stores'\n\nimport { PaginatedSearchableParams, ServerPageData } from '../../../../lib/types/Params'\nimport {\n isDirtySelectableItem,\n SelectableItem,\n ServerBackedMultiSelectAutoComplete,\n} from '@mobilizeyourtech/vision-core-react'\n\nexport interface INaicsCodes {\n id: number\n name: string\n code: string\n label: string\n}\n\ntype TProps = {\n serverStore?: ServerStore\n notificationStore?: NotificationStore\n selected: Array\n onChange: (nc: Array) => void\n}\n\nexport const NaicsCodes = inject(\n ApplicationStore.names.serverStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const getNaicsCodes = (\n params: PaginatedSearchableParams,\n ): Promise> => {\n return props.serverStore!.getNaicsCodes(params).then((response) => ({\n pagination: response.pagination,\n data: response.data.map((r) => ({ ...r, label: `(${r.code}) - ${r.name}` })),\n }))\n }\n\n const getSelectedNaicsCodes = () => {\n return props.selected.map((nc) => {\n return { ...nc, label: `(${nc.code}) - ${nc.name}` }\n })\n }\n\n return (\n
\n \n // DirtySelectableItem is only possible if allowDirty were set to tru\n props.onChange(\n change.filter((e) => !isDirtySelectableItem(e)) as Array<\n INaicsCodes & SelectableItem\n >,\n )\n }\n selections={getSelectedNaicsCodes()}\n placeholder={'Search and select multiple NAICS codes'}\n className=\"naics-codes\"\n data-testid={'naics-codes-select'}\n />\n
\n )\n }),\n)\n","import React from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ServerStore, NotificationStore } from '../../../../stores'\nimport { PaginatedSearchableParams } from '../../../../lib/types/Params'\nimport {\n isDirtySelectableItem,\n SelectableItem,\n ServerBackedMultiSelectAutoComplete,\n ServerPageData,\n} from '@mobilizeyourtech/vision-core-react'\nimport { TechnologyTypeResponse } from '../../../../stores/ServerStore'\n\ntype TProps = {\n serverStore?: ServerStore\n notificationStore?: NotificationStore\n selected: Array\n onChange: (nc: Array) => void\n}\n\nexport const TechnologyFocusAreas = inject(\n ApplicationStore.names.serverStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const getTechnologyFocusAreas = (\n params: PaginatedSearchableParams,\n ): Promise> => {\n return props.serverStore!.getTechnologyTypes(params).then((response) => ({\n pagination: response.pagination,\n data: response.data.map((r) => {\n return { ...r, label: r.name, technologyTypeId: r.id }\n }),\n }))\n }\n\n const getSelectedTechnologyFocusAreas = () => {\n return props.selected.map((t) => {\n return { ...t, label: t.name }\n })\n }\n\n return (\n
\n \n // DirtySelectableItem is only possible if allowDirty were set to tru\n props.onChange(\n change.filter((e) => !isDirtySelectableItem(e)) as Array<\n TechnologyTypeResponse & SelectableItem\n >,\n )\n }\n selections={getSelectedTechnologyFocusAreas()}\n placeholder={'Search and select multiple technologies'}\n className=\"technology-focus-areas\"\n data-testid={'technology-focus-areas-select'}\n />\n
\n )\n }),\n)\n","import React, { useEffect } from 'react'\nimport { CPagination, CPaginationItem, CFormSelect } from '@coreui/react'\nimport { PaginationData } from '../../lib/types'\nimport { NumberParam, useQueryParams, withDefault } from 'use-query-params'\nimport classNames from 'classnames'\n\ntype TProps = {\n pagination: PaginationData\n defaultPerPage?: number\n customPerPages?: number[]\n}\n\nexport const Pagination = (props: TProps) => {\n const AVAILABLE_PER_PAGES = [5, 10, 20]\n const [paginationParams, setPaginationParams] = useQueryParams({\n page: withDefault(NumberParam, props.pagination.page),\n perPage: withDefault(NumberParam, 10),\n })\n\n const isPreviousPageEnabled = paginationParams.page && Number(paginationParams.page) > 1\n\n const isNextPageEnabled = props.pagination.last > props.pagination.page\n\n useEffect(() => {\n if (props.pagination) {\n if (paginationParams.page != null) {\n if (paginationParams.page > props.pagination.pages) {\n setPaginationParams((current) => ({ ...current, page: props.pagination.pages }))\n } else if (paginationParams.page <= 0 || isNaN(paginationParams.page)) {\n setPaginationParams(() => ({ ...paginationParams, page: 1 }))\n }\n }\n\n if (paginationParams.perPage != null) {\n if (paginationParams.perPage <= 0 || isNaN(paginationParams.perPage)) {\n setPaginationParams((current) => ({ ...current, perPage: undefined }))\n }\n }\n }\n }, [paginationParams, props.pagination])\n\n return (\n
\n
\n {\n setPaginationParams({ perPage: Number(event.target.value), page: 1 })\n }}\n >\n {(props.customPerPages || AVAILABLE_PER_PAGES).map((perPage, index) => {\n return (\n \n {perPage}\n \n )\n })}\n \n
\n
\n

\n {props.pagination.from} to {props.pagination.to} of {props.pagination.count} entries\n

\n
\n
\n \n {\n isPreviousPageEnabled &&\n setPaginationParams({ page: Number(paginationParams.page) - 1 })\n }}\n >\n «\n \n {props.pagination?.series.map((l: string | number) => {\n return (\n {\n setPaginationParams({ page: Number(l) })\n }}\n >\n {l === 'gap' ? '...' : l}\n \n )\n })}\n {\n isNextPageEnabled && setPaginationParams({ page: paginationParams.page + 1 })\n }}\n >\n »\n \n \n
\n
\n )\n}\n","import { CBadge } from '@coreui/react'\nimport { ListingArtifactTechnologyType } from '../../stores/ListingStore'\n\ntype TProps = {\n data: ListingArtifactTechnologyType\n}\n\nexport const ViewListingArtifactTechnologyType = (props: TProps) => {\n return (\n
\n \n

{props.data.name}

\n \n
\n )\n}\n","import { ListingAwardData } from '../../stores/ListingStore'\nimport { CBadge, CCard, CCardBody, CCardTitle, CCol, CContainer, CRow } from '@coreui/react'\nimport { parseDate } from '@mobilizeyourtech/vision-core-react'\nimport classnames from 'classnames'\n\nexport interface ViewListingAwardProps {\n data: ListingAwardData\n}\n\nexport const ViewListingAward = (props: ViewListingAwardProps) => {\n const renderPair = (name: string, value: any, multiline: boolean = false) => {\n return (\n \n \n {name}\n \n\n {value}\n \n )\n }\n\n return (\n \n \n \n \n Detail\n {renderPair('Title', props.data.awardTitle, true)}\n {renderPair('Contract Number', props.data.contractNumber)}\n {renderPair('Branch', props.data.branch)}\n {renderPair('Program', props.data.program)}\n {renderPair('Phase', props.data.phase)}\n {renderPair('Product Service Code', props.data.productServiceCode)}\n {renderPair('Principal NAICS Code', props.data.principleNaicsCode)}\n \n \n\n {props.data.listingArtifactTechnologyTypes &&\n props.data.listingArtifactTechnologyTypes.length > 0 && (\n \n \n \n Technology Types\n \n {props.data.listingArtifactTechnologyTypes.map((tt) => (\n \n {tt.name}\n \n ))}\n \n \n )}\n\n \n \n Contract\n {renderPair('Amount', props.data.awardAmount)}\n {renderPair('State', props.data.state)}\n {renderPair(\n 'Award Date',\n props.data.contractAwardDate && parseDate(props.data.contractAwardDate),\n )}\n {renderPair(\n 'Start Date',\n props.data.contractStartDate && parseDate(props.data.contractStartDate),\n )}\n {renderPair(\n 'End Date',\n props.data.contractEndDate && parseDate(props.data.contractEndDate),\n )}\n \n \n\n \n \n PI\n {renderPair('Name', props.data.piName)}\n {renderPair('Title', props.data.piTitle)}\n {renderPair('Phone', props.data.piPhone)}\n {renderPair('Email', props.data.piEmail)}\n {renderPair('Research Institution', props.data.researchInstitutionName)}\n \n \n\n \n \n Description\n \n {props.data.awardAbstract}\n \n \n \n\n {props.data.anticipatedBenefits && (\n \n \n \n Anticipated Benefits\n \n \n {props.data.anticipatedBenefits}\n \n \n \n )}\n \n \n )\n}\n","import { inject, observer } from 'mobx-react'\nimport { StringParam, NumberParam, useQueryParams, withDefault } from 'use-query-params'\nimport { CustomDropdown, UrlFederatedTechnologyTypesMultiSelectAutoComplete } from '../../../custom'\nimport { DebouncedInput } from '@mobilizeyourtech/vision-core-react'\nimport { CCol, CFormInput } from '@coreui/react'\nimport DatePicker from 'react-date-picker'\nimport { ServerBackedDropdown, UrlFederatedNaicsCodeMultiSelectAutoComplete } from '../../../custom'\nimport {\n ApplicationStore,\n NotificationStore,\n ConnectListingStore,\n ServerStore,\n} from '../../../../stores'\nimport { PaginationParams } from '@mobilizeyourtech/vision-core-react'\nimport { makeDateComputerOffset } from '../../../../lib/time'\nimport { getISOLocalDate } from '@wojtekmaj/date-utils'\nimport { isoUSStateCodes } from '../../../../lib/geography/countryRegionData'\nimport classNames from 'classnames'\n\ninterface ConnectAwardSearchProps {\n connectListingStore?: ConnectListingStore\n notificationStore?: NotificationStore\n serverStore?: ServerStore\n isStandaloneAwardFilter?: boolean\n}\n\nexport const ConnectAwardSearch = inject(\n ApplicationStore.names.connectListingStore,\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.serverStore,\n)(\n observer((props: ConnectAwardSearchProps) => {\n const [params, setParams] = useQueryParams({\n searchAwards: withDefault(StringParam, undefined),\n awardPhase: withDefault(StringParam, undefined),\n awardNaicsCodeIds: withDefault(StringParam, undefined),\n awardContractNumber: withDefault(StringParam, undefined),\n awardAmountMin: withDefault(NumberParam, undefined),\n awardAmountMax: withDefault(NumberParam, undefined),\n awardDateMin: withDefault(StringParam, undefined),\n awardDateMax: withDefault(StringParam, undefined),\n awardState: withDefault(StringParam, undefined),\n awardTechnologyTypeIds: withDefault(StringParam, undefined),\n sortBy: withDefault(StringParam, 'createdAt'),\n sortDirection: withDefault(StringParam, 'desc'),\n })\n\n const getAwardsPhases = async (params: PaginationParams) => {\n return props!.serverStore!.getAwardsPhases(params).then((response) => {\n return {\n data: response.data.map((data) => {\n return { ...data, id: data.label }\n }),\n pagination: response.pagination,\n }\n })\n }\n\n const renderMinMaxAmounts = () => {\n const minValue = params.awardAmountMin?.toString()\n const maxValue = params.awardAmountMax?.toString()\n\n return (\n
\n \n {\n setParams({\n ...params,\n awardAmountMin: value ? parseInt(value) : undefined,\n })\n }}\n />\n \n {\n setParams({\n ...params,\n awardAmountMax: value ? parseInt(value) : undefined,\n })\n }}\n />\n
\n )\n }\n\n const renderMinMaxDates = () => {\n return (\n
\n \n {\n setParams({ ...params, awardDateMin: value && getISOLocalDate(value) })\n }}\n maxDate={new Date()}\n value={params.awardDateMin ? makeDateComputerOffset(params.awardDateMin) : undefined}\n className={'calender'}\n required={false}\n openCalendarOnFocus={false}\n />\n\n \n {\n setParams({ ...params, awardDateMax: value && getISOLocalDate(value) })\n }}\n maxDate={new Date()}\n value={params.awardDateMax ? makeDateComputerOffset(params.awardDateMax) : undefined}\n className={'calender'}\n required={false}\n openCalendarOnFocus={false}\n />\n
\n )\n }\n\n return (\n \n
\n \n setParams({\n ...params,\n searchAwards: value,\n })\n }\n />\n
\n\n \n \n \n setParams({\n ...params,\n awardContractNumber: value,\n })\n }\n />\n \n \n {\n setParams({ ...params, awardState: value as string })\n }}\n onSelectNone={() => {\n setParams({ ...params, awardState: undefined })\n }}\n />\n \n \n\n \n \n getAwardsPhases(params)}\n onSelectNone={() => {\n setParams({ ...params, awardPhase: undefined })\n }}\n onSelect={(selected) => {\n setParams({ ...params, awardPhase: selected.label })\n }}\n selected={\n params.awardPhase\n ? {\n id: params.awardPhase,\n label: params.awardPhase as string,\n }\n : undefined\n }\n testId=\"-awards-phases\"\n normalPlaceholderFont={true}\n />\n \n \n
\n \n
\n
\n \n\n
\n \n
\n\n
\n {renderMinMaxAmounts()}\n {renderMinMaxDates()}\n
\n \n )\n }),\n)\n","import { ApplicationStore, NotificationStore, ServerStore } from '../../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { PaginatedSearchableParams } from '../../../lib/types/Params'\nimport { CCol, CFormLabel, CRow, CButton, CFormTextarea } from '@coreui/react'\nimport {\n isDirtySelectableItem,\n RichTextEditor,\n SelectableItem,\n ServerBackedMultiSelectAutoComplete,\n SuspensefulButton,\n} from '@mobilizeyourtech/vision-core-react'\nimport React from 'react'\nimport { GovUserExtendedDataFormData, LineOfEffortFormData } from './types'\nimport { GovUserClassification, TechnologyTypeResponse } from '../../../stores/ServerStore'\nimport { GoogleSuggestAddressInput } from 'components/custom'\nimport classNames from 'classnames'\nimport DatePicker from 'react-date-picker'\n\nexport interface GovUserExtendedDataProfileFormProps {\n value: Partial\n onChange: (value: Partial) => void\n applicationStore?: ApplicationStore\n serverStore?: ServerStore\n notificationStore?: NotificationStore\n}\n\nexport const GovUserExtendedDataProfileForm = inject(\n ApplicationStore.names.serverStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: GovUserExtendedDataProfileFormProps) => {\n // TECH TYPES DROPDOWN START //////\n\n const getTechnologyTypes = (params: PaginatedSearchableParams) => {\n return props.serverStore!.getTechnologyTypes(params).then((response) => ({\n pagination: response.pagination,\n data: response.data.map((r) => {\n return { ...r, label: r.name }\n }),\n }))\n }\n const getSelectedTechnologyTypes = () => {\n if (props.value.technologyTypes === undefined) {\n return []\n }\n\n return props.value.technologyTypes?.map((t) => {\n return { ...t, label: t.name }\n })\n }\n\n const renderCityStateInput = () => {\n let locationValues: Array = []\n if (props.value.location) {\n const { city, stateOrProvince, country } = props.value.location\n locationValues = [city, stateOrProvince, country].filter(Boolean)\n }\n\n let placeholder = locationValues.length\n ? `${locationValues.join(', ')}`\n : 'Search City and State/Province...'\n\n return (\n \n \n City/State\n \n 0 && 'prepopulated')}\n data-testid=\"location-input\"\n >\n {\n props.onChange({ ...props.value, location: value })\n }}\n value={props.value.location || {}}\n hideManualEntry\n googlePlacesAutoCompleteProps={{\n autocompletionRequest: {\n types: ['(regions)'],\n },\n }}\n placeholder={placeholder}\n />\n \n \n )\n }\n\n const renderGovEmployeeSinceYearInput = () => {\n return (\n \n \n What year did you begin your career in government/Department of Defense service?\n \n \n props.onChange({\n ...props.value,\n govEmployeeSinceYear: year ? year.getFullYear() : undefined,\n })\n }\n format=\"yyyy\"\n maxDetail=\"decade\"\n maxDate={new Date()}\n data-testid=\"gov-employee-since-year-input\"\n />\n \n )\n }\n\n const renderLineOfEffortInputs = () => {\n const lineOfEffortArray = (props.value.linesOfEffort as LineOfEffortFormData[]) || []\n\n return lineOfEffortArray.map((loe, idx) => {\n return !loe.destroy ? (\n
\n {idx !== 0 && (\n
\n removeLineOfEffort(idx)}\n className=\"delete-line-of-effort-btn d-flex justify-content-center align-items-center\"\n color=\"dark\"\n data-testid=\"remove-loe-button\"\n >\n \n \n
\n )}\n updateLineOfEffort(e.target.value, idx)}\n data-testid=\"loe-input\"\n />\n
\n ) : null\n })\n }\n\n const addLineOfEffort = () => {\n const newLineOfEffort: LineOfEffortFormData = { details: '' }\n props.onChange({\n linesOfEffort: [...(props.value.linesOfEffort || []), newLineOfEffort],\n })\n }\n\n const removeLineOfEffort = (idx: number) => {\n // TODO - this is temporary. To be refactored when implementing EDIT\n const updatedLineOfEffort = [...props.value.linesOfEffort!]\n\n const item = updatedLineOfEffort[idx]\n if (item?.id) {\n updatedLineOfEffort[idx] = { ...item, destroy: true }\n } else {\n updatedLineOfEffort.splice(idx, 1)\n }\n\n props.onChange({ linesOfEffort: updatedLineOfEffort })\n }\n\n const updateLineOfEffort = (value: string, idx: number) => {\n const updatedLineOfEffort = props.value.linesOfEffort!.map((loe, i) =>\n i === idx ? { ...loe, details: value } : loe,\n )\n props.onChange({\n linesOfEffort: updatedLineOfEffort,\n })\n }\n\n // TECH TYPES DROPDOWN END ///////\n\n const technologyTypesRow = () => {\n return (\n \n \n Technology Types \n (required)\n \n \n {\n props.onChange({\n technologyTypes: selected.filter((e) => !isDirtySelectableItem(e)) as Array<\n TechnologyTypeResponse & SelectableItem\n >,\n })\n }}\n selections={getSelectedTechnologyTypes()}\n placeholder=\"Select Technology Types...\"\n className=\"technology-type-search-dropdown ValidatedInput\"\n data-testid=\"technology-type-search-dropdown\"\n />\n \n \n )\n }\n\n const linesOfEffortRow = () => {\n return (\n \n \n \n Lines of Effort \n (required)\n \n \n What area or problem are you looking for new emerging technologies to solve for your\n mission? (up to 6)\n
\n The more detail, the better. LOEs with more than 20 words (about 3 sentences) tend to\n generate more specific matches in IGNITE. Don’t hesitate to elaborate on what you’re\n looking for.\n
\n \n {renderLineOfEffortInputs()}\n
\n {props.value.linesOfEffort &&\n props.value.linesOfEffort.filter((loe) => !loe.destroy).length < 6 && (\n \n Add new line of effort\n \n )}\n
\n
\n
\n \n
Example:
\n

\n Air Force Special Warfare unit is looking for portable electronic warfare systems with\n excellent SWaP characteristics for field use. They must be able to cover 2-10GHz.\n

\n
\n
\n )\n }\n\n const profileDetailsRow = () => {\n return (\n \n \n \n About you \n (required)\n \n \n Role description and anything else you want people to know.\n \n \n {\n props.onChange({ profileDetail: value })\n }}\n />\n \n \n \n
Example:
\n

\n Hi! I am a program manager working specifically in advanced manufacturing. I’m\n especially interested in innovative 3D printing opportunities.\n

\n
\n
\n )\n }\n\n const getGovUserClassifications = async (p: PaginatedSearchableParams) => {\n return props\n .serverStore!.getGovUserClassifications({\n ...p,\n eager: 'govUserClassificationCategory',\n })\n .then((response) => {\n return {\n ...response,\n data: response.data.map((classification) => {\n return {\n ...classification,\n subLabel: classification.description,\n categoryLabel: classification.govUserClassificationCategory\n ? classification.govUserClassificationCategory.name\n : 'Other',\n }\n }),\n }\n })\n }\n\n const govUserClassificationsRow = () => {\n return (\n \n \n How do you want to interact with small businesses in IGNITE?{' '}\n \n (required)\n \n \n If selecting Technical Point of Contact, please reference{' '}\n \n these listed duties.\n \n
\n If you are unsure if you can sign a customer memo, please reference{' '}\n \n open topic resources.\n {' '}\n More often than not, you are able to sign a customer memo.\n
\n \n {\n props.onChange({\n govUserClassifications: selected.filter(\n (e) => !isDirtySelectableItem(e),\n ) as Array,\n })\n }}\n selections={props.value.govUserClassifications || []}\n placeholder=\"Select desired interactions\"\n data-testid=\"user-classification-multiselect\"\n className=\"gov-user-classifications-multiselect ValidatedInput\"\n />\n \n
\n )\n }\n\n return (\n
\n {renderCityStateInput()}\n {renderGovEmployeeSinceYearInput()}\n {linesOfEffortRow()}\n {technologyTypesRow()}\n {govUserClassificationsRow()}\n {profileDetailsRow()}\n
\n )\n }),\n)\n","import { CCard, CCardHeader, CCardBody } from '@coreui/react'\nimport { CCardProps } from '@coreui/react/dist/components/card/CCard'\nimport ReactHtmlParser from 'react-html-parser'\nimport classNames from 'classnames'\nimport { LineOfEffort } from 'stores/UserStore'\n\ninterface LinesOfEffortCardProps extends CCardProps {\n linesOfEffort?: Array\n}\n\nexport const LinesOfEffortCard = ({\n linesOfEffort = [],\n className,\n ...props\n}: LinesOfEffortCardProps) => {\n const linesOfEffortSection = () => {\n if (linesOfEffort.length === 0) {\n return Nothing to show\n }\n\n return (\n
    \n {linesOfEffort.map((lineOfEffort) => {\n return
  1. {ReactHtmlParser(lineOfEffort.details)}
  2. \n })}\n
\n )\n }\n\n return (\n \n \n Lines of Effort\n
\n Problem statements I am looking for solutions on\n
\n {linesOfEffortSection()}\n
\n )\n}\n","import { CCard, CCardHeader, CCardBody, CBadge, CCol, CRow } from '@coreui/react'\nimport { CCardProps } from '@coreui/react/dist/components/card/CCard'\nimport classNames from 'classnames'\nimport { GovUserClassification } from 'stores/ServerStore'\nimport Styles from './GovUserClassificationsCard.module.scss'\n\nexport interface GovUserClassificationsCardProps extends CCardProps {\n govUserClassifications?: Array\n}\n\nexport const GovUserClassificationsCard = ({\n govUserClassifications = [],\n className,\n ...props\n}: GovUserClassificationsCardProps) => {\n const govUserClassificationsSection = () => {\n if (govUserClassifications.length === 0) {\n return Nothing to show\n }\n\n return (\n \n {govUserClassifications.map((classification) => {\n return (\n \n \n {classification.name}\n \n \n )\n })}\n \n )\n }\n\n return (\n \n Desired Interactions with Small Businesses\n {govUserClassificationsSection()}\n \n )\n}\n","export { UrlFederatedBasicDropdown } from './UrlFederatedInputs/UrlFederatedBasicDropdown/UrlFederatedBasicDropdown'\n","import { makeAutoObservable } from 'mobx'\nimport { uuid } from '../lib/helpers/utils'\n\nexport class AuthStore {\n private readonly accessToken: string = 'vision-ignite-access-token'\n public JWT: string | null\n // This is a helpful value you can change if you ever want the AuthBoundary to reload its state\n public salt: string\n\n constructor() {\n this.JWT = this.getJWT()\n this.salt = uuid()\n makeAutoObservable(this)\n }\n\n public setJWT(jwt: string | null) {\n if (jwt) {\n localStorage.setItem(this.accessToken, jwt)\n } else {\n localStorage.removeItem(this.accessToken)\n }\n\n this.JWT = jwt\n }\n\n public getJWT() {\n if (!this.JWT) {\n const jwt = localStorage.getItem(this.accessToken)\n this.JWT = jwt\n }\n return this.JWT\n }\n\n public isAuthenticated() {\n return !!this.getJWT()\n }\n\n public generateAndSetSalt() {\n this.salt = uuid()\n }\n}\n","import { makeAutoObservable } from 'mobx'\n\nexport class NotificationStore {\n public message: string | undefined\n public severity: string | undefined\n public severityOptions: {\n [success: string]: string\n }\n public isSuppressing: boolean | undefined = false\n\n constructor() {\n makeAutoObservable(this)\n this.message = ''\n this.severity = undefined\n this.severityOptions = {\n success: 'success',\n danger: 'danger',\n warning: 'warning',\n info: 'info',\n }\n }\n\n /**\n *\n * @param message\n * @param severity\n * @param timeout\n * @param suppress setting this to true means to suppress all other notifications until this one is cleared. Really only the ServerStore interceptor should need to do this\n */\n public setNotificationMessage(\n message: string | undefined,\n severity?: string | undefined,\n timeout?: number,\n suppress?: boolean,\n ) {\n if (!this.isSuppressing) {\n this.message = message\n if (severity && !!this.severityOptions[severity]) {\n this.severity = severity\n } else {\n this.severity = undefined\n }\n\n this.isSuppressing = suppress\n\n if (timeout) {\n setTimeout(() => {\n this.clearMessage()\n }, timeout)\n }\n }\n }\n\n /**\n * Clear any message, including a suppressive one\n */\n public clearMessage() {\n this.isSuppressing = false\n return this.setNotificationMessage(undefined, undefined)\n }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"GovUserClassificationsCard\":\"GovUserClassificationsCard_GovUserClassificationsCard__2a3xd\",\"classificationBadge\":\"GovUserClassificationsCard_classificationBadge__339ev\"};","import { StringParam, NumberParam, useQueryParams, withDefault } from 'use-query-params'\nimport { Collapsible } from '../../../custom'\nimport { objectContainsAnyValue } from '../../../../lib/helpers/utils'\nimport { ConnectAwardSearch } from '../ConnectAwardSearch/ConnectAwardSearch'\n\nexport const ConnectCollapsibleAwardSearch = () => {\n const [params] = useQueryParams({\n searchAwards: withDefault(StringParam, undefined),\n awardPhase: withDefault(StringParam, undefined),\n awardNaicsCodeIds: withDefault(StringParam, undefined),\n awardContractNumber: withDefault(StringParam, undefined),\n awardAmountMin: withDefault(NumberParam, undefined),\n awardAmountMax: withDefault(NumberParam, undefined),\n awardDateMin: withDefault(StringParam, undefined),\n awardDateMax: withDefault(StringParam, undefined),\n awardState: withDefault(StringParam, undefined),\n awardTechnologyTypeIds: withDefault(StringParam, undefined),\n })\n\n return (\n \n \n \n )\n}\n","import { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { Collapsible, UrlFederatedTechnologyTypesMultiSelectAutoComplete } from '../../../custom'\nimport { DebouncedInput } from '@mobilizeyourtech/vision-core-react'\nimport { objectContainsAnyValue } from '../../../../lib/helpers/utils'\n\nexport const ConnectCollapsibleServiceSearch = () => {\n const [params, setParams] = useQueryParams({\n searchServices: withDefault(StringParam, undefined),\n serviceTechnologyTypeIds: withDefault(StringParam, undefined),\n })\n\n return (\n \n
\n \n setParams({\n ...params,\n searchServices: value,\n })\n }\n />\n\n
\n \n
\n
\n \n )\n}\n","import { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { Collapsible } from '../../../custom'\nimport { DebouncedInput } from '@mobilizeyourtech/vision-core-react'\nimport { objectContainsAnyValue } from '../../../../lib/helpers/utils'\n\nexport const ConnectCollapsibleUseCaseSearch = () => {\n const [params, setParams] = useQueryParams({\n searchUseCases: withDefault(StringParam, undefined),\n })\n\n return (\n \n
\n \n setParams({\n ...params,\n searchUseCases: value,\n })\n }\n />\n
\n
\n )\n}\n","import { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { Collapsible, UrlFederatedTechnologyTypesMultiSelectAutoComplete } from '../../../custom'\nimport { DebouncedInput } from '@mobilizeyourtech/vision-core-react'\nimport { objectContainsAnyValue } from '../../../../lib/helpers/utils'\n\nexport const ConnectCollapsibleProductSearch = () => {\n const [params, setParams] = useQueryParams({\n searchProducts: withDefault(StringParam, undefined),\n productTechnologyTypeIds: withDefault(StringParam, undefined),\n })\n\n return (\n \n
\n \n setParams({\n ...params,\n searchProducts: value,\n })\n }\n />\n\n
\n \n
\n
\n \n )\n}\n","import { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { Collapsible, CustomDropdown } from '../../../custom'\nimport {\n UrlFederatedNaicsCodeMultiSelectAutoComplete,\n UrlFederatedTechnologyTypesMultiSelectAutoComplete,\n UrlFederatedBusinessClassificationsMultiSelectAutoComplete,\n} from '../../../custom'\nimport { DebouncedInput } from '@mobilizeyourtech/vision-core-react'\nimport { objectContainsAnyValue } from '../../../../lib/helpers/utils'\nimport { isoUSStateCodes } from '../../../../lib/geography/countryRegionData'\n\nexport const ConnectCollapsibleCompanySearch = () => {\n const [params, setParams] = useQueryParams({\n searchListings: withDefault(StringParam, undefined),\n listingIdentifier: withDefault(StringParam, undefined),\n listingState: withDefault(StringParam, undefined),\n })\n\n return (\n \n
\n \n setParams({\n ...params,\n searchListings: value,\n })\n }\n />\n
\n
\n \n setParams({\n ...params,\n listingIdentifier: value,\n })\n }\n />\n
\n
\n {\n setParams({ ...params, listingState: value as string })\n }}\n onSelectNone={() => {\n setParams({ ...params, listingState: undefined })\n }}\n />\n
\n
\n\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n )\n}\n","import React from 'react'\nimport { useQueryParams, withDefault, StringParam } from 'use-query-params'\nimport {\n CustomDropdown,\n CustomDropdownProps,\n ICustomDropdownItem,\n} from '../../../custom/CustomDropdown'\nimport classnames from 'classnames'\n\ntype UrlFederatedBasicDropdownItem = {\n label: string\n urlValue: string\n}\n\nexport interface UrlFederatedDropdownProps\n extends Omit, 'onSelect' | 'onSelectNone' | 'options'> {\n paramKey: string\n options: Array\n defaultParam?: string\n 'data-testid'?: string\n}\n\nexport const UrlFederatedBasicDropdown = ({\n paramKey,\n options,\n defaultParam,\n 'data-testid': dataTestId = 'federated-dropdown',\n ...props\n}: UrlFederatedDropdownProps) => {\n const [params, setParams] = useQueryParams({\n [paramKey]: withDefault(StringParam, defaultParam ?? undefined),\n })\n\n const handleSelect = (selection: string | ICustomDropdownItem) => {\n const urlVal = options.find((o) => o.label === selection)?.urlValue\n\n return setParams({\n [paramKey]: urlVal,\n })\n }\n\n return (\n
\n o.label)}\n selectedOption={options.find((o) => o.urlValue === params[paramKey])?.label}\n />\n
\n )\n}\n\nexport default UrlFederatedBasicDropdown\n","export { ConnectCollapsibleAwardSearch } from './ConnectCollapsibleAwardSearch/ConnectCollapsibleAwardSearch'\nexport { ConnectAwardSearch } from './ConnectAwardSearch/ConnectAwardSearch'\nexport { ConnectCollapsibleServiceSearch } from './ConnectServiceSearch/ConnectCollapsibleServiceSearch'\nexport { ConnectCollapsibleUseCaseSearch } from './ConnectUseCaseSearch/ConnectCollapsibleUseCaseSearch'\nexport { ConnectCollapsibleProductSearch } from './ConnectProductSearch/ConnectCollapsibleProductSearch'\nexport { ConnectCollapsibleCompanySearch } from './ConnectCompanySearch/ConnectCollapsibleCompanySearch'\n","import { CCard, CCardBody, CCardTitle, CCol, CRow } from '@coreui/react'\nimport React, { useEffect, useState } from 'react'\nimport { ApplicationStore, ListingStore, NotificationStore, UserData } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { SocialMediaAccount } from '../../stores/UserStore'\nimport { determineSocialMediaIconClassName } from '../../lib/helpers/utils'\nimport { Avatar } from '@mobilizeyourtech/vision-core-react'\nimport { extractRestfulError } from '../../lib/errors/utils'\n\ntype TProps = {\n listingId: number | string\n notificationStore?: NotificationStore\n listingStore?: ListingStore\n}\nexport const PointOfContactCard = inject(\n ApplicationStore.names.listingStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [userData, setUserData] = useState(undefined)\n const [error, setError] = useState(undefined)\n\n useEffect(() => {\n props.listingStore\n ?.getPointOfContact(props.listingId)\n .then((data) => {\n setUserData(data)\n })\n .catch((error) => {\n let errorResponse = extractRestfulError(error)\n setError(errorResponse?.error ? errorResponse.error : 'UnhandledError')\n\n if (errorResponse?.error !== 'NoUserPointOfContact') {\n props.notificationStore?.setNotificationMessage(\n 'Failed to load primary contact data. Please try again.',\n 'danger',\n 3000,\n )\n }\n })\n }, [props.listingId])\n\n const renderSocialMediaAccount = (sma: SocialMediaAccount) => {\n return (\n \n \n \n {sma.identifier}\n \n \n )\n }\n\n const renderUserData = (data: UserData) => {\n return (\n <>\n \n \n \n {data.firstName} {data.lastName}\n \n \n \n \n \n \n \n \n {data.title}\n \n \n \n \n \n {data.email}\n \n \n \n \n \n {data.cellPhone}\n \n \n \n \n \n {formatWorkPhone(data)}\n \n \n \n \n {data.socialMediaAccounts.map(renderSocialMediaAccount)}\n \n \n \n )\n }\n\n const formatWorkPhone = (data: UserData): string | undefined => {\n let result\n\n if (!data.workPhone) {\n result = undefined\n } else if (!data.workPhoneExt) {\n result = data.workPhone\n } else if (data.workPhoneExt.toLowerCase().includes('x')) {\n result = `${data.workPhone} ${data.workPhoneExt}`\n } else {\n result = `${data.workPhone} x${data.workPhoneExt}`\n }\n\n return result\n }\n\n const renderError = (error: string) => {\n if (error === 'NoUserPointOfContact') {\n return

No Point of Contact Data

\n }\n\n return

Error loading data

\n }\n\n return (\n \n \n \n {userData && (\n \n )}\n Primary Contact\n \n {userData && renderUserData(userData)}\n {error && renderError(error)}\n \n \n )\n }),\n)\n","import { CBadge, CCard, CCardBody, CCardSubtitle, CCardTitle, CCol, CRow } from '@coreui/react'\nimport React, { useEffect, useState } from 'react'\nimport { ApplicationStore, NotificationStore, ServerStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { IBusinessClassifications } from '../form/fragments/listing'\n\ntype TProps = {\n path: string\n notificationStore?: NotificationStore\n serverStore?: ServerStore\n}\nexport const BusinessClassificationsCard = inject(\n ApplicationStore.names.serverStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [businessClassificationsData, setBusinessClassificationsData] = useState<\n Array | undefined\n >(undefined)\n\n useEffect(() => {\n props.serverStore\n ?.server()\n .get>(props.path)\n .then(({ data }) => {\n setBusinessClassificationsData(data)\n })\n .catch(() => {\n props.notificationStore?.setNotificationMessage(\n 'Failed to load listing business classifications data. Please try again.',\n 'danger',\n 3000,\n )\n })\n }, [props.path])\n return (\n \n \n Business Classifications\n \n Business classifications can be explained in more detail on the {}\n Small Business Administration website.\n \n\n \n {businessClassificationsData?.map((bc) => {\n const id = `businessClassifications${bc.id}`\n\n return (\n \n \n {bc.name}\n \n \n )\n })}\n \n \n \n )\n }),\n)\n","import { CBadge, CCard, CCardBody, CCardSubtitle, CCardTitle, CCol, CRow } from '@coreui/react'\nimport React, { useEffect, useState } from 'react'\nimport { ApplicationStore, NotificationStore, ServerStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { TechnologyTypeResponse } from '../../stores/ServerStore'\n\ntype TProps = {\n path: string\n notificationStore?: NotificationStore\n serverStore?: ServerStore\n}\nexport const TechnologyFocusAreasCard = inject(\n ApplicationStore.names.serverStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [technologyTypeData, setTechnologyTypeData] = useState<\n Array | undefined\n >(undefined)\n useEffect(() => {\n props.serverStore\n ?.server()\n .get>(props.path)\n .then(({ data }) => {\n setTechnologyTypeData(data)\n })\n .catch(() => {\n props.notificationStore?.setNotificationMessage(\n 'Failed to load listing technology data. Please try again.',\n 'danger',\n 3000,\n )\n })\n }, [props.path])\n\n return (\n \n \n Company Focuses\n Technology focuses of your company.\n\n \n {technologyTypeData?.map((tt) => {\n return (\n \n \n {tt.name}\n \n \n )\n })}\n \n \n \n )\n }),\n)\n","import React, { useEffect, useState } from 'react'\nimport { ApplicationStore, NotificationStore, ServerStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { SocialMediaAccount } from '../../stores/UserStore'\nimport { CCol, CRow } from '@coreui/react'\nimport { determineSocialMediaIconClassName } from '../../lib/helpers/utils'\n\ntype TProps = {\n path: string\n notificationStore?: NotificationStore\n serverStore?: ServerStore\n}\nexport const SocialMediaDetails = inject(\n ApplicationStore.names.serverStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [socialMediaData, setSocialMediaData] = useState | undefined>(\n undefined,\n )\n\n useEffect(() => {\n props.serverStore\n ?.server()\n .get>(props.path)\n .then(({ data }) => {\n setSocialMediaData(data)\n })\n .catch(() => {\n props.notificationStore?.setNotificationMessage(\n 'Failed to load listing social media data. Please try again.',\n 'danger',\n 3000,\n )\n })\n }, [props.path])\n return (\n <>\n Social Media\n {socialMediaData?.map((sma) => {\n const id = `socialMedia${sma.socialMediaTypeName.replace(' ', '')}${sma.id}`\n\n return (\n \n \n \n {sma.identifier}\n \n \n )\n })}\n \n )\n }),\n)\n","import { ApplicationStore, NotificationStore, ServerStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport React, { useEffect, useState } from 'react'\nimport { CBadge, CCard, CCardBody, CCardTitle, CCol, CRow } from '@coreui/react'\nimport { INaicsCodes } from '../form/fragments/listing'\nimport { ProductServiceCode } from '../../stores/ListingStore'\n\ntype TProps = {\n naicsCodesPath: string\n samCode?: string\n dunsCode?: string\n cageCode?: string\n samRegistrationDate?: string\n samExpirationDate?: string\n productServiceCodes?: Array\n uniqueEntityId: string\n notificationStore?: NotificationStore\n serverStore?: ServerStore\n}\nexport const ContractingInformationCard = inject(\n ApplicationStore.names.serverStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [naicsCodesData, setNaicsCodesData] = useState | undefined>(undefined)\n useEffect(() => {\n props.serverStore\n ?.server()\n .get>(props.naicsCodesPath)\n .then(({ data }) => {\n setNaicsCodesData(data)\n })\n .catch(() => {\n props.notificationStore?.setNotificationMessage(\n 'Failed to load listing NAICS code data. Please try again.',\n 'danger',\n 3000,\n )\n })\n }, [props.naicsCodesPath])\n\n const makeNaicsCodeLabel = (nc: INaicsCodes) => {\n return `(${nc.code}) - ${nc.name}`\n }\n\n const makeProductServiceCodeLabel = (psc: ProductServiceCode) => {\n if (psc.description) {\n return `${psc.code} - ${psc.description}`\n } else {\n return `${psc.code}`\n }\n }\n\n return (\n \n \n Contracting Information\n\n \n \n Unique Entity ID {props.uniqueEntityId}\n \n \n {props.samRegistrationDate && (\n \n \n SAM Registration Date {props.samRegistrationDate}\n \n \n )}\n {props.samExpirationDate && (\n \n \n SAM Expiration Date {props.samExpirationDate}\n \n \n )}\n {props.dunsCode && (\n \n \n DUNS {props.dunsCode}\n \n \n )}\n {props.cageCode && (\n \n \n Cage Code {props.cageCode}\n \n \n )}\n \n \n Product and Service Codes\n \n \n \n {props.productServiceCodes?.map((psc) => {\n const id = `psc${psc.id}`\n return (\n \n \n {makeProductServiceCodeLabel(psc)}\n \n \n )\n })}\n \n \n \n NAICS Codes\n \n \n \n {naicsCodesData?.map((nc) => {\n const id = `naicsCodes${nc.id}`\n\n return (\n \n \n {makeNaicsCodeLabel(nc)}\n \n \n )\n })}\n \n \n \n )\n }),\n)\n","import { CBadge } from '@coreui/react'\nimport React from 'react'\nimport { ListingData } from '../../stores/ListingStore'\n\nexport type TProps = {\n listing: ListingData\n}\nexport const ListingPublishedStatusIndicator = (props: TProps) => {\n return props.listing.isPublished ? (\n \n Published\n \n ) : (\n \n Unpublished\n \n )\n}\n","import React, { useState } from 'react'\nimport { ListingData, ListingStore } from '../../stores/ListingStore'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore } from '../../stores'\nimport { CButton, CTooltip } from '@coreui/react'\nimport { ConfirmationBoundaryModal } from '../custom'\nimport { canListingPublish, canListingUnpublish } from '../../lib/listing/utils'\nimport { publishIcon } from '../../assets/brand/publishIcon'\nimport { unpublishIcon } from '../../assets/brand/unpublishIcon'\n\ntype TProps = {\n listing: ListingData\n listingStore?: ListingStore\n notificationStore?: NotificationStore\n onAction: (data: ListingData) => void\n withText?: boolean\n}\nexport const ListingPublishOrUnpublishActionButton = inject(\n ApplicationStore.names.listingStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [isPublishPromptOpen, setIsPublishPromptOpen] = useState(false)\n const [isPublishSuspending, setIsPublishSuspending] = useState(false)\n const [isUnpublishPromptOpen, setIsUnpublishPromptOpen] = useState(false)\n const [isUnpublishSuspending, setIsUnpublishSuspending] = useState(false)\n\n const onPublishConfirm = () => {\n setIsPublishSuspending(true)\n props.listingStore\n ?.publishListing(props.listing.id)\n .then((data) => {\n setIsPublishSuspending(false)\n setIsPublishPromptOpen(false)\n props.notificationStore?.setNotificationMessage(\n 'Successfully published listing.',\n 'success',\n 3000,\n )\n props.onAction(data)\n })\n .catch(() => {\n setIsPublishSuspending(false)\n props.notificationStore?.setNotificationMessage(\n 'Failed to publish listing. Please try again',\n 'danger',\n 3000,\n )\n })\n }\n\n const onUnpublishConfirm = () => {\n setIsUnpublishSuspending(true)\n props.listingStore\n ?.unpublishListing(props.listing.id)\n .then((data) => {\n setIsUnpublishSuspending(false)\n setIsUnpublishPromptOpen(false)\n props.notificationStore?.setNotificationMessage(\n 'Successfully unpublished listing.',\n 'success',\n 3000,\n )\n props.onAction(data)\n })\n .catch(() => {\n setIsUnpublishSuspending(false)\n props.notificationStore?.setNotificationMessage(\n 'Failed to unpublish listing. Please try again',\n 'danger',\n 3000,\n )\n })\n }\n\n const renderPublishActionButton = () => {\n const isDisabled = !canListingPublish(props.listing)\n return (\n <>\n \n setIsPublishPromptOpen(true)}\n disabled={isDisabled}\n >\n {publishIcon()} {props.withText && Publish}\n \n \n setIsPublishPromptOpen(false)}\n onConfirm={onPublishConfirm}\n isOpen={isPublishPromptOpen}\n headerText={'Are you sure you want to publish this listing?'}\n isSuspended={isPublishSuspending}\n >\n

\n Once published, this listing is visible to all DoD VISION users. You can unpublish\n this listing at any time.\n

\n \n \n )\n }\n\n const renderUnpublishActionButton = () => {\n const isDisabled = !canListingUnpublish(props.listing)\n\n return (\n <>\n \n setIsUnpublishPromptOpen(true)}\n disabled={isDisabled}\n >\n {unpublishIcon()} {props.withText && Unpublish}\n \n \n setIsUnpublishPromptOpen(false)}\n onConfirm={onUnpublishConfirm}\n isOpen={isUnpublishPromptOpen}\n headerText={'Are you sure you want to unpublish this listing?'}\n isSuspended={isUnpublishSuspending}\n >\n

\n By unpublishing this listing you will set this and all its content as hidden from DOD\n VISION users. You can publish this again at anytime so long as the listing payment\n status is in good standing.\n

\n \n \n )\n }\n\n return props.listing.isPublished ? renderUnpublishActionButton() : renderPublishActionButton()\n }),\n)\n","import { ListingData } from '../../stores/ListingStore'\n\nexport const canListingPublish = (listing: ListingData) => !listing.isPublished\n\nexport const canListingUnpublish = (listing: ListingData) => {\n return listing.isPublished\n}\n","export const unpublishIcon = () => {\n return (\n \n \n \n )\n}\n","export const publishIcon = () => {\n return (\n \n \n \n )\n}\n","import { observer } from 'mobx-react'\nimport { useState } from 'react'\nimport { ListingServiceProductData, ListingUseCaseData, isUseCase } from '../../stores/ListingStore'\nimport { CCard, CCardBody, CCardLink, CCardTitle } from '@coreui/react'\nimport {\n OptionalImage,\n ActionDropdown,\n parseDate,\n ActionDropdownMenuOption,\n ActionConfirmationModal,\n formatUrlProtocol,\n} from '@mobilizeyourtech/vision-core-react'\n\ntype TProps = {\n listingArtifact: ListingServiceProductData | ListingUseCaseData\n onDelete: (artifactId: string | number) => void\n handleParamsChange: (id: string | number) => void\n handleEdit: (artifactId: string | number) => void\n}\n\ninterface ArtifactMenuOption extends ActionDropdownMenuOption {\n callback: () => void\n}\n\nexport const ListingArtifactCard = observer((props: TProps) => {\n const [isConfirmationModalOpen, setIsConfirmationModalOpen] = useState(false)\n const artifactOptions: Array = [\n {\n id: 0,\n name: 'Edit',\n iconClassName: 'fa fa-pen',\n callback: () => props.handleEdit(props.listingArtifact.id),\n },\n {\n id: 1,\n name: 'Remove',\n iconClassName: 'fa fa-trash',\n callback: () => setIsConfirmationModalOpen(true),\n },\n ]\n\n return (\n \n props.onDelete(props.listingArtifact.id)}\n onClose={() => setIsConfirmationModalOpen(false)}\n actionText={`Are you sure you want to delete ${props.listingArtifact.name}?`}\n alignment=\"center\"\n />\n\n \n
\n
\n props.handleParamsChange(props.listingArtifact.id)}\n className=\"artifact-logo\"\n src={props.listingArtifact.logo?.path}\n />\n
\n props.handleParamsChange(props.listingArtifact.id)}>\n {props.listingArtifact.name}\n \n \n {props.listingArtifact.url && props.listingArtifact.url.replace(/^https?:\\/\\//, '')}\n \n
\n
\n
\n option.callback()}\n data-testid={'artifact-actions'}\n dropdownToggleProps={{\n caret: false,\n }}\n />\n
\n
\n {isUseCase(props.listingArtifact) && (\n
\n

\n Start Date: \n {props.listingArtifact.startDate ? (\n parseDate(props.listingArtifact.startDate)\n ) : (\n N/A\n )}\n

\n

\n End Date: \n {props.listingArtifact.endDate ? (\n parseDate(props.listingArtifact.endDate)\n ) : (\n N/A\n )}\n

\n
\n )}\n

{props.listingArtifact.description}

\n
\n
\n )\n})\n","import { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ListingStore, NotificationStore } from '../../stores'\nimport { ListingServiceProductData } from '../../stores/ListingStore'\nimport { useRouteMatch } from 'react-router-dom'\nimport { useQueryParams, withDefault, NumberParam, StringParam } from 'use-query-params'\nimport { Pagination } from '../custom'\nimport { PaginationData } from '../../lib/types/Params'\nimport { CRow, CButton, CCard, CCardBody } from '@coreui/react'\nimport { ListingArtifactFormModal } from '../form'\nimport { ListingArtifactCard } from './ListingArtifactCard'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport ViewListingArtifactModal from './ViewListingArtifactModal'\n\ntype TProps = {\n listingStore?: ListingStore\n notificationStore?: NotificationStore\n timeout?: number\n /** Optional timeout for form modal - mostly passthrough for testing */\n}\ninterface MatchParams {\n id: string\n}\n\nexport const ListingServicesTab = inject(\n ApplicationStore.names.listingStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [pagination, setPagination] = useState(undefined)\n const [paginationParams] = useQueryParams({\n page: withDefault(NumberParam, 1),\n perPage: withDefault(NumberParam, 10),\n })\n const {\n params: { id },\n } = useRouteMatch()\n\n const [, setParams] = useQueryParams({\n artifactId: withDefault(StringParam, undefined),\n artifactType: withDefault(StringParam, undefined),\n })\n\n const [services, setServices] = useState>([])\n const [editServiceId, setEditServiceId] = useState(undefined)\n const [isLoading, setIsLoading] = useState(false)\n const [isCreateModalVisible, setIsCreateModalVisible] = useState(false)\n const [error, setError] = useState(undefined)\n\n useEffect(() => {\n getData()\n }, [paginationParams])\n\n const getData = () => {\n setIsLoading(true)\n props.listingStore\n ?.getListingServices({\n listingId: id,\n params: paginationParams,\n })\n .then((response) => {\n setServices(response.data)\n setPagination(response.pagination)\n })\n .catch((error) => {\n setError(error)\n props.notificationStore?.setNotificationMessage('Error loading services', 'error', 3000)\n })\n .finally(() => setIsLoading(false))\n }\n\n const handleDelete = (serviceId: string | number) => {\n props.listingStore\n ?.deleteService({ listingId: id, serviceId })\n .then(() => {\n props.notificationStore?.setNotificationMessage('Service deleted', 'success', 3000)\n getData()\n })\n .catch(() => {\n props.notificationStore?.setNotificationMessage(\n 'Could not delete Service - please reload and try again',\n 'danger',\n 3000,\n )\n })\n }\n\n const renderServiceContent = () => {\n if (error) {\n return (\n \n \n Error loading Services - please reload\n \n \n )\n } else if (services.length > 0) {\n return services.map((service) => {\n return (\n setEditServiceId(id)}\n handleParamsChange={(id: string | number) =>\n setParams({ artifactId: id as string, artifactType: 'service' })\n }\n />\n )\n })\n } else if (pagination && pagination.count === 0) {\n return (\n \n \n There are no services to display\n \n \n )\n }\n }\n\n const handleSuccessfulUpdate = (artifactType: string, artifactId: string) => {\n getData()\n setParams({ artifactType, artifactId })\n }\n\n return (\n
\n {\n setEditServiceId(artifactId)\n setParams({ artifactType: undefined, artifactId: undefined })\n }}\n />\n getData()}\n visible={isCreateModalVisible}\n setVisibility={setIsCreateModalVisible}\n timeout={props.timeout}\n />\n handleSuccessfulUpdate(artifact, id.toString())}\n visible={!!editServiceId}\n setVisibility={() => setEditServiceId(undefined)}\n artifactId={editServiceId}\n timeout={props.timeout}\n />\n
\n

Services

\n {\n setIsCreateModalVisible(true)\n }}\n >\n \n Create Service\n \n
\n \n \n {renderServiceContent()}\n \n \n\n
\n {pagination && }\n
\n
\n )\n }),\n)\n","import { useState, useEffect } from 'react'\nimport { useRouteMatch } from 'react-router-dom'\nimport { useQueryParams, withDefault, NumberParam, StringParam } from 'use-query-params'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ListingStore, NotificationStore } from '../../stores'\nimport { ListingUseCaseData } from '../../stores/ListingStore'\nimport { PaginationData } from '../../lib/types/Params'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport { CCard, CButton, CCardBody, CRow } from '@coreui/react'\nimport { Pagination } from '../../components/custom/Pagination'\nimport { ListingArtifactCard } from './ListingArtifactCard'\nimport { ListingArtifactFormModal } from '../form'\nimport ViewListingArtifactModal from './ViewListingArtifactModal'\n\ntype TProps = {\n listingStore?: ListingStore\n notificationStore?: NotificationStore\n timeout?: number\n}\n\ninterface MatchParams {\n id: string\n}\n\nexport const ListingUseCasesTab = inject(\n ApplicationStore.names.listingStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const {\n params: { id },\n } = useRouteMatch()\n\n const [paginationParams] = useQueryParams({\n page: withDefault(NumberParam, 1),\n perPage: withDefault(NumberParam, 10),\n })\n\n const [, setParams] = useQueryParams({\n artifactId: withDefault(StringParam, undefined),\n artifactType: withDefault(StringParam, undefined),\n })\n\n const [editUseCaseId, setEditUseCaseId] = useState(undefined)\n const [useCases, setUseCases] = useState>([])\n const [isLoading, setIsLoading] = useState(false)\n const [isCreateModalVisible, setIsCreateModalVisible] = useState(false)\n const [pagination, setPagination] = useState(undefined)\n const [error, setError] = useState(undefined)\n\n useEffect(() => {\n loadData()\n }, [paginationParams])\n\n const loadData = () => {\n setIsLoading(true)\n props.listingStore\n ?.getListingUseCases({\n listingId: id,\n params: paginationParams,\n })\n .then((response) => {\n setUseCases(response.data)\n setPagination(response.pagination)\n })\n .catch((error) => {\n setError(error)\n props.notificationStore?.setNotificationMessage('Error loading Use Cases', 'error', 3000)\n })\n .finally(() => setIsLoading(false))\n }\n\n const handleDelete = (useCaseId: string | number) => {\n props.listingStore\n ?.deleteUseCase({ listingId: id, useCaseId })\n .then(() => {\n props.notificationStore?.setNotificationMessage('Use Case deleted', 'success', 3000)\n loadData()\n })\n .catch(() => {\n props.notificationStore?.setNotificationMessage(\n 'Could not delete Use Case - please reload and try again',\n 'danger',\n 3000,\n )\n })\n }\n\n const handleSuccessfulUpdate = (artifactType: string, artifactId: string) => {\n loadData()\n setParams({ artifactType, artifactId })\n }\n\n const renderUseCaseContent = () => {\n if (error) {\n return (\n \n \n Error loading Use Cases - please reload\n \n \n )\n } else if (useCases.length > 0) {\n return useCases.map((useCase) => {\n return (\n \n setParams({ artifactId: id as string, artifactType: 'use case' })\n }\n handleEdit={(id) => setEditUseCaseId(id)}\n listingArtifact={useCase}\n key={useCase.id}\n onDelete={handleDelete}\n />\n )\n })\n } else if (pagination && pagination.count === 0) {\n return (\n \n \n There are no use cases to display\n \n \n )\n }\n }\n\n return (\n
\n {\n setEditUseCaseId(artifactId)\n setParams({ artifactType: undefined, artifactId: undefined })\n }}\n />\n loadData()}\n visible={isCreateModalVisible}\n setVisibility={setIsCreateModalVisible}\n timeout={props?.timeout}\n />\n handleSuccessfulUpdate(artifact, id.toString())}\n visible={!!editUseCaseId}\n setVisibility={() => setEditUseCaseId(undefined)}\n artifactId={editUseCaseId}\n timeout={props.timeout}\n />\n
\n

Use Cases

\n setIsCreateModalVisible(true)}\n >\n \n Create Use Case\n \n
\n \n \n {renderUseCaseContent()}\n \n \n\n
\n {pagination && }\n
\n
\n )\n }),\n)\n","import { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ListingStore, NotificationStore } from '../../stores'\nimport { ListingServiceProductData } from '../../stores/ListingStore'\nimport { useRouteMatch } from 'react-router-dom'\nimport { useQueryParams, withDefault, NumberParam, StringParam } from 'use-query-params'\nimport { Pagination } from '../custom'\nimport { PaginationData } from '../../lib/types/Params'\nimport { CCol, CRow, CButton, CCard, CCardBody } from '@coreui/react'\nimport { ListingArtifactCard } from './ListingArtifactCard'\nimport { ListingArtifactFormModal } from '../form'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport ViewListingArtifactModal from './ViewListingArtifactModal'\n\ntype TProps = {\n listingStore?: ListingStore\n notificationStore?: NotificationStore\n timeout?: number\n}\n\ninterface MatchParams {\n id: string\n}\n\nexport const ListingProductsTab = inject(\n ApplicationStore.names.listingStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [pagination, setPagination] = useState(undefined)\n const [paginationParams] = useQueryParams({\n page: withDefault(NumberParam, 1),\n perPage: withDefault(NumberParam, 10),\n })\n const {\n params: { id },\n } = useRouteMatch()\n\n const [, setParams] = useQueryParams({\n artifactId: withDefault(StringParam, undefined),\n artifactType: withDefault(StringParam, undefined),\n })\n\n const [products, setProducts] = useState>([])\n const [editProductId, setEditProductId] = useState(undefined)\n const [isLoading, setIsLoading] = useState(false)\n const [isCreateModalVisible, setIsCreateModalVisible] = useState(false)\n const [error, setError] = useState(undefined)\n\n useEffect(() => {\n loadData()\n }, [paginationParams])\n\n const loadData = () => {\n setIsLoading(true)\n props.listingStore\n ?.getListingProducts({\n listingId: id,\n params: paginationParams,\n })\n .then((response) => {\n setProducts(response.data)\n setPagination(response.pagination)\n })\n .catch((error) => {\n setError(error)\n props.notificationStore?.setNotificationMessage('Error loading products', 'error', 3000)\n })\n .finally(() => setIsLoading(false))\n }\n\n const handleDelete = (productId: string | number) => {\n props.listingStore\n ?.deleteProduct({ listingId: id, productId })\n .then(() => {\n props.notificationStore?.setNotificationMessage('Product deleted', 'success', 3000)\n loadData()\n })\n .catch(() =>\n props.notificationStore?.setNotificationMessage(\n 'Could not delete Product - please reload and try again',\n 'danger',\n 3000,\n ),\n )\n }\n\n const renderProductContent = () => {\n if (error) {\n return (\n \n \n \n Error loading Products - please reload\n \n \n \n )\n } else if (products.length > 0) {\n return products.map((product) => {\n return (\n \n setParams({ artifactId: id as string, artifactType: 'product' })\n }\n handleEdit={(id) => setEditProductId(id)}\n listingArtifact={product}\n onDelete={handleDelete}\n key={product.id}\n />\n )\n })\n } else if (pagination && pagination.count === 0) {\n return (\n \n \n There are no products to display\n \n \n )\n }\n }\n\n const handleSuccessfulUpdate = (artifactType: string, artifactId: string) => {\n loadData()\n setParams({ artifactType, artifactId })\n }\n\n return (\n
\n {\n setEditProductId(id)\n setParams({ artifactType: undefined, artifactId: undefined })\n }}\n />\n loadData()}\n visible={isCreateModalVisible}\n setVisibility={setIsCreateModalVisible}\n timeout={props.timeout}\n />\n handleSuccessfulUpdate(artifact, id.toString())}\n visible={!!editProductId}\n setVisibility={() => setEditProductId(undefined)}\n timeout={props.timeout}\n artifactId={editProductId}\n />\n
\n

Products

\n {\n setIsCreateModalVisible(true)\n }}\n >\n \n Create Product\n \n
\n \n \n {renderProductContent()}\n \n \n\n
\n {pagination && }\n
\n
\n )\n }),\n)\n","import { observer } from 'mobx-react'\nimport { ListingAwardData } from '../../stores/ListingStore'\nimport { CCard, CCardBody, CCardSubtitle, CCardTitle } from '@coreui/react'\nimport { parseDate } from '@mobilizeyourtech/vision-core-react'\nimport ReactHtmlParser from 'react-html-parser'\n\ntype TProps = {\n award: ListingAwardData\n handleParamsChange: (id: string | number) => void\n}\n\nexport const ListingAwardCard = observer((props: TProps) => {\n return (\n props.handleParamsChange(props.award.id)}>\n \n
\n
\n
\n {props.award.awardTitle}\n \n {props.award.contractNumber}\n {props.award.awardYear && ' - ' + props.award.awardYear}\n {props.award.phase && ' - ' + props.award.phase}\n \n
\n
\n
\n
\n

\n Contract Start Date:{' '}\n {props.award.contractStartDate ? parseDate(props.award.contractStartDate) : 'N/A'}\n

\n

\n Contract End Date:{' '}\n {props.award.contractEndDate ? (\n parseDate(props.award.contractEndDate)\n ) : (\n N/A\n )}\n

\n
\n
\n {props.award.searchMetadata?.highlight ? (\n
\n {ReactHtmlParser(props.award.searchMetadata.highlight)}\n
\n ) : (\n

{props.award.awardAbstract}

\n )}\n
\n
\n
\n )\n})\n","import { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ListingStore, NotificationStore } from '../../stores'\nimport { ListingAwardData } from '../../stores/ListingStore'\nimport { useRouteMatch } from 'react-router-dom'\nimport { useQueryParams, withDefault, NumberParam, StringParam } from 'use-query-params'\nimport { Pagination } from '../custom'\nimport { PaginationData } from '../../lib/types/Params'\nimport { CRow, CCard, CButton, CCardBody, CContainer } from '@coreui/react'\nimport { RichTooltip, SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport { ListingAwardCard } from './ListingAwardCard'\nimport ViewListingArtifactModal from './ViewListingArtifactModal'\nimport { ConnectAwardSearch } from '../Organisms/SearchFilters'\nimport { UrlFederatedBasicDropdown } from '../Molecules'\n\ntype TProps = {\n listingStore?: ListingStore\n notificationStore?: NotificationStore\n}\n\ninterface MatchParams {\n id: string\n}\n\nexport const ListingAwardsTab = inject(\n ApplicationStore.names.listingStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [pagination, setPagination] = useState(undefined)\n const [paginationParams] = useQueryParams({\n page: withDefault(NumberParam, 1),\n perPage: withDefault(NumberParam, 10),\n })\n const {\n params: { id },\n } = useRouteMatch()\n\n const [, setArtifactParams] = useQueryParams({\n artifactId: withDefault(StringParam, undefined),\n artifactType: withDefault(StringParam, undefined),\n })\n\n const [params, setParams] = useQueryParams({\n searchAwards: withDefault(StringParam, undefined),\n awardPhase: withDefault(StringParam, undefined),\n awardNaicsCodeIds: withDefault(StringParam, undefined),\n awardContractNumber: withDefault(StringParam, undefined),\n awardAmountMin: withDefault(NumberParam, undefined),\n awardAmountMax: withDefault(NumberParam, undefined),\n awardDateMin: withDefault(StringParam, undefined),\n awardDateMax: withDefault(StringParam, undefined),\n awardState: withDefault(StringParam, undefined),\n awardTechnologyTypeIds: withDefault(StringParam, undefined),\n sortBy: withDefault(StringParam, 'createdAt'),\n sortDirection: withDefault(StringParam, 'desc'),\n highlight: withDefault(StringParam, 'true'),\n eager: withDefault(StringParam, undefined),\n })\n\n const [awards, setAwards] = useState>([])\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState(undefined)\n\n const loadData = () => {\n let isPromiseStale = false\n\n setIsLoading(true)\n props.listingStore\n ?.getListingAwards({\n listingId: id,\n params: { ...params, ...paginationParams },\n })\n .then((response) => {\n if (!isPromiseStale) {\n setAwards(response.data)\n setPagination(response.pagination)\n }\n })\n .catch((error) => {\n if (!isPromiseStale) {\n setError(error)\n props.notificationStore?.setNotificationMessage('Error loading awards', 'error', 3000)\n }\n })\n .finally(() => {\n setTimeout(() => {\n setIsLoading(false)\n }, 300)\n return () => {\n isPromiseStale = true\n }\n })\n }\n\n useEffect(() => {\n loadData()\n }, [paginationParams, params])\n\n const resetSearch = () => {\n setParams({\n searchAwards: undefined,\n awardPhase: undefined,\n awardNaicsCodeIds: undefined,\n awardContractNumber: undefined,\n awardAmountMin: undefined,\n awardAmountMax: undefined,\n awardDateMin: undefined,\n awardDateMax: undefined,\n awardState: undefined,\n awardTechnologyTypeIds: undefined,\n sortBy: undefined,\n sortDirection: undefined,\n highlight: 'true',\n })\n }\n\n const renderProductContent = () => {\n if (error) {\n return (\n \n \n Error loading Awards - please reload\n \n \n )\n } else if (awards.length > 0) {\n return awards.map((award) => {\n return (\n \n setArtifactParams({ artifactId: id as string, artifactType: 'award' })\n }\n />\n )\n })\n } else if (pagination && pagination.count === 0) {\n return (\n \n \n There are no awards to display\n \n \n )\n }\n }\n\n return (\n
\n {\n setArtifactParams({ artifactType: undefined, artifactId: undefined })\n }}\n />\n
\n

Awards

\n \n Award data is populated from third party sources, so you may experience some latency\n based on when an award is granted to when it is entered into those third party\n sources.\n \n }\n location=\"top\"\n timeout={300}\n >\n \n \n
\n \n \n
\n resetSearch()}>\n \n Reset\n \n
\n \n
\n
\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n \n {renderProductContent()}\n \n \n \n
\n {pagination && }\n
\n
\n )\n }),\n)\n","import React, { useState } from 'react'\nimport { ListingData, ListingStore } from '../../stores/ListingStore'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore } from '../../stores'\nimport { CButton, CTooltip } from '@coreui/react'\nimport { ConfirmationBoundaryModal } from '../custom'\nimport { visionVisibilityIcon } from '../../assets/brand/vision_visibility_icon'\n\ntype TProps = {\n listing: ListingData\n listingStore?: ListingStore\n notificationStore?: NotificationStore\n onAction: (data: ListingData) => void\n withText?: boolean\n}\nexport const ListingVisionVisibilityActionButton = inject(\n ApplicationStore.names.listingStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [isPromptOpen, setIsPromptOpen] = useState(false)\n const [isSuspending, setIsSuspending] = useState(false)\n\n const { isOnlyVisionVisible } = props.listing\n\n const determineVisibilityMessage = () => {\n return isOnlyVisionVisible\n ? 'Successfully changed listing visibility to everyone'\n : 'Successfully changed listing visibility to VISION users only.'\n }\n\n const toggleVisibilityConfirm = () => {\n setIsSuspending(true)\n props.listingStore\n ?.setListingVisibility(props.listing.id, !isOnlyVisionVisible)\n .then((data) => {\n setIsSuspending(false)\n setIsPromptOpen(false)\n props.notificationStore?.setNotificationMessage(\n determineVisibilityMessage(),\n 'success',\n 3000,\n )\n props.onAction(data)\n })\n .catch(() => {\n setIsSuspending(false)\n props.notificationStore?.setNotificationMessage(\n 'Failed to change listing visibility. Please try again',\n 'danger',\n 3000,\n )\n })\n }\n\n const renderToggleVisibilityButton = () => {\n return (\n <>\n \n setIsPromptOpen(true)}\n disabled={isSuspending}\n >\n {isOnlyVisionVisible ? : visionVisibilityIcon()}{' '}\n {props.withText && (\n {`Make visible to ${\n isOnlyVisionVisible ? 'everyone' : 'VISION Only'\n } `}\n )}\n \n \n setIsPromptOpen(false)}\n onConfirm={toggleVisibilityConfirm}\n isOpen={isPromptOpen}\n headerText={`Are you sure you want to make this listing viewable to ${\n isOnlyVisionVisible ? 'everyone' : 'only VISION users'\n }?`}\n isSuspended={isSuspending}\n >\n

\n {`Once selected, this listing is visible to ${\n isOnlyVisionVisible ? 'everyone' : 'only DoD VISION users'\n } . You can change this\n setting at any time.`}\n

\n \n \n )\n }\n\n return renderToggleVisibilityButton()\n }),\n)\n","import { inject, observer } from 'mobx-react'\nimport { useRouteMatch } from 'react-router-dom'\nimport React, { useEffect, useState } from 'react'\nimport { parseDateTime } from '../../lib/time'\nimport { ApplicationStore, ListingStore, NotificationStore } from '../../stores'\nimport {\n ListingArtifactAttachment,\n ListingArtifactLink,\n ListingData,\n} from '../../stores/ListingStore'\nimport {\n CButton,\n CButtonGroup,\n CCard,\n CCardBody,\n CCardText,\n CCardTitle,\n CCol,\n CContainer,\n CRow,\n CTooltip,\n CNav,\n CNavItem,\n CNavLink,\n CTabContent,\n CTabPane,\n CNavbar,\n CBadge,\n} from '@coreui/react'\nimport {\n BusinessClassificationsCard,\n ContractingInformationCard,\n ListingPublishedStatusIndicator,\n ListingPublishOrUnpublishActionButton,\n PointOfContactCard,\n SocialMediaDetails,\n TechnologyFocusAreasCard,\n ListingServicesTab,\n ListingUseCasesTab,\n ListingProductsTab,\n ListingAwardsTab,\n} from '../../components/listing'\nimport { formatUrlProtocol } from '../../lib/helpers/utils'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { ViewListingArtifactAttachmentOrLink } from '../../components/listing/ViewListingArtifactAttachmentOrLink'\nimport { OptionalImage } from '@mobilizeyourtech/vision-core-react'\nimport classnames from 'classnames'\nimport { visionVisibilityIcon } from '../../assets/brand/vision_visibility_icon'\n\ntype TProps = {\n listingStore?: ListingStore\n notificationStore?: NotificationStore\n}\n\ninterface MatchParams {\n id: string\n}\n\nconst tabs = {\n LISTING: 'STOREFRONT',\n SERVICES: 'SERVICES',\n PRODUCTS: 'PRODUCTS',\n USE_CASES: 'USE_CASES',\n AWARDS: 'AWARDS',\n}\n\nconst ViewListing = inject(\n ApplicationStore.names.listingStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [params, setParams] = useQueryParams({\n checkoutSuccess: withDefault(StringParam, undefined),\n tab: withDefault(StringParam, tabs.LISTING),\n })\n\n const {\n params: { id },\n } = useRouteMatch()\n const [listing, setListing] = useState(undefined)\n\n useEffect(() => {\n props\n .listingStore!.getSingleListing(id, 'links,attachments,productServiceCodes,views')\n .then((listingResponse) => {\n setListing(listingResponse)\n })\n .catch(() => {\n props.notificationStore?.setNotificationMessage(\n 'Unable to get listing data; please try again later',\n 'danger',\n )\n })\n }, [params])\n\n const renderStatusIndicator = (listing: ListingData) => {\n if (!listing.isPublished) {\n return (\n <>\n \n

Visible to no one

\n \n )\n } else if (listing.isOnlyVisionVisible) {\n return (\n <>\n {visionVisibilityIcon()}\n

Visible only to VISION users

\n \n )\n } else {\n return (\n <>\n \n

Visible to all government users

\n \n )\n }\n }\n\n if (!listing) {\n return <>\n }\n\n return (\n
\n \n \n \n setParams({ tab: tabs.LISTING }, 'replace')}\n data-testid=\"storefront-tab-button\"\n >\n Storefront\n \n \n \n setParams({ tab: tabs.PRODUCTS }, 'replace')}\n data-testid=\"products-tab-button\"\n >\n Products\n \n \n \n setParams({ tab: tabs.SERVICES }, 'replace')}\n data-testid=\"services-tab-button\"\n >\n Services\n \n \n \n setParams({ tab: tabs.USE_CASES }, 'replace')}\n data-testid=\"use-cases-tab-button\"\n >\n Use Cases\n \n \n \n setParams({ tab: tabs.AWARDS }, 'replace')}\n data-testid=\"awards-tab-button\"\n >\n Awards\n \n \n \n \n\n \n \n
\n
\n \n
\n {renderStatusIndicator(listing)}\n
\n
\n \n {/* Disabling this per stakeholder request but leaving this commented for quick reenable */}\n {/* setListing(data)}*/}\n {/*/>*/}\n setListing(data)}\n />\n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n\n \n

{listing.name}

\n

{listing.tagLine}

\n

\n {listing.website && (\n \n {listing.website}\n \n )}\n

\n
\n\n \n Headquarters\n

{listing.addressLine1}

\n

{listing.addressLine2}

\n

{listing.addressLine3}

\n

\n {listing.city && listing.city + ','} {listing.stateProvince}{' '}\n {listing.postalCode}\n

\n

{listing.country}

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

Company Founded Year: {listing.yearFounded}

\n

\n Last Profile Sync: {parseDateTime(listing.updatedAt)}\n

\n

{`Profile Views in the Last 30 Days: ${\n listing.views ?? 0\n }`}

\n
\n
\n
\n
\n
\n\n \n \n \n \n \n \n \n \n Links\n\n {listing.listingArtifactLinks?.length === 0 ? (\n No Links to Show\n ) : (\n listing.listingArtifactLinks?.map((listing: ListingArtifactLink) => (\n \n ))\n )}\n \n \n \n\n \n \n\n \n \n \n Statement of Capabilities\n \n \n {listing.capabilityStatement\n ? listing.capabilityStatement\n : 'No statement of capabilities'}\n \n \n \n \n \n Attachments\n {listing.listingArtifactAttachments?.length === 0 ? (\n No Attachments to Show\n ) : (\n listing.listingArtifactAttachments?.map(\n (attachment: ListingArtifactAttachment) => (\n \n ),\n )\n )}\n \n \n \n \n \n
\n {params.tab === tabs.PRODUCTS && }\n {params.tab === tabs.SERVICES && }\n {params.tab === tabs.USE_CASES && }\n {params.tab === tabs.AWARDS && }\n
\n
\n )\n }),\n)\n\nexport default React.memo(ViewListing)\n","import { AuthStore, NotificationStore, ServerStore } from './'\nimport { action, makeObservable, observable } from 'mobx'\nimport { FileResponseData } from '../lib/types'\nimport { SignupUserData, SignupLoginData } from '../components/form/fragments'\nimport { validateLength, validatePassword, validateValueMatch } from '../lib/helpers/validation'\nimport { SelectableItem, ServerPageData } from '@mobilizeyourtech/vision-core-react'\nimport {\n GovUserClassification,\n GovUserOrganizationResponse,\n TechnologyTypeResponse,\n} from './ServerStore'\nimport {\n CountResponse,\n GovUserPaginatedSearchableParams,\n PaginationParams,\n SortableParams,\n} from '../lib/types/Params'\nimport * as Cable from '@rails/actioncable'\nimport { Consumer } from '@rails/actioncable'\nimport { getFullSessionUrl } from '../lib/helpers/sessionHelpers'\nimport { LineOfEffortFormData } from 'components/form/fragments/types'\n\nexport type SocialMediaAccount = {\n socialMediaTypeName: string\n socialMediaTypeId: number\n identifier: string\n id: number\n}\n\nexport interface SocialMediaUserFormData {\n socialMediaTypeId: number | string\n identifier: string\n}\n\nexport interface ClaimRequestData {\n id: number\n firstName: string\n lastName: string\n email: string\n accountId: number\n}\n\nexport interface DecryptedGovUserData {\n firstName?: string\n lastName?: string\n email: string\n visionPreferredUsername: string\n position?: string\n visionUserId: number\n}\n\nexport interface GenericSearchMetadata {\n rank: number\n highlight: string\n}\n\nexport type ConfirmationEmailBody = {\n user?: { email: string }\n redirectTo?: string\n}\n\nexport interface UserData {\n id: number\n accountId: number\n firstName: string\n lastName: string\n email?: string\n title: string\n timezone: string\n cellPhone: string\n workPhone?: string\n workPhoneExt?: string\n headshot: FileResponseData | null\n socialMediaAccounts: Array\n listings: string\n isAdmin: boolean\n confirmed: boolean\n unconfirmedEmail?: string\n userRoles: Array\n govUserExtendedData?: ExtendedGovernmentData\n technologyTypes?: Array\n userAppNotificationSetting: UserNotificationSetting\n userEmailNotificationSetting: UserNotificationSetting\n isActive?: boolean\n}\n\nexport interface NotificationResponse {\n id: number\n notificationType: string\n read: boolean\n readAt?: string\n message: string\n createdAt: string\n updatedAt: string\n\n // present if notificationType === NewMessageNotification\n chatThreadId?: number\n}\n\nexport interface NewMessageNotificationResponse extends NotificationResponse {\n // present if notificationType === NewMessageNotification\n chatThreadId: number\n}\n\nexport const isNewMessageNotification = (\n o: NotificationResponse,\n): o is NewMessageNotificationResponse => {\n return o.notificationType === 'NewMessageNotification'\n}\n\nexport const hasGovRole = (user: UserData | GovUserData) => {\n return user.userRoles.includes('gov')\n}\n\nexport const hasIgniteRole = (user: UserData | GovUserData) => {\n return user.userRoles.includes('ignite')\n}\n\nexport const isUserData = (o: any): o is UserData => {\n if (o === undefined) return false\n return 'id' in o && !!o['id'] && 'firstName' in o && !!o['firstName']\n}\n\nexport const isAccountData = (o: any): o is AccountData => {\n if (o === undefined) return false\n return 'uniqueEntityId' in o && !!o['uniqueEntityId'] && 'name' in o && !!o['name']\n}\n\nexport type LineOfEffort = {\n id: number\n govUserExtendedDataId: number\n details: string\n}\n\nexport type ExtendedGovernmentData = {\n govUserOrganization: GovUserOrganizationResponse\n visionUserId: number\n profileDetail: string\n interactionDetail?: string\n linesOfEffort: Array\n govUserClassifications?: Array\n city?: string\n stateOrProvince?: string\n country?: string\n govEmployeeSinceYear?: number\n}\n\nexport type UserNotificationSetting = {\n id: number\n newChatMessage?: boolean\n userId: number\n}\n\nexport interface GovUserData extends UserData {\n govUserExtendedData: ExtendedGovernmentData\n technologyTypes: Array\n govUserSetting: GovUserAccountSettings\n searchMetadata?: GenericSearchMetadata\n chatThreadIdsWithCurrentUserAccount?: Array\n activeChatThreadsCount?: number\n}\n\nexport interface InvitedUserData {\n userInviteId: number\n accountId: number\n firstName: string\n lastName: string\n email: string\n inviteTokenExpiry: string\n}\n\nexport type ClaimRequestForm = {\n email: string\n firstName: string\n lastName: string\n uniqueEntityId: string\n recaptchaToken: string\n}\n\nexport type GovUserAccountSettings = {\n id: number\n userId: number\n allowMessageRequests?: boolean\n}\n\nexport type ResendClaimFormData = {\n claimToken: string\n}\n\nexport type ResendClaimFormDataAlternative = {\n email: string\n uniqueEntityId: string\n}\nexport const isResendClaimFormDataAlternative = (\n o: ResendClaimFormData | ResendClaimFormDataAlternative,\n): o is ResendClaimFormDataAlternative => {\n return 'email' in o && !!o.email && 'uniqueEntityId' in o && !!o.uniqueEntityId\n}\n\nexport type InviteUserSignupForm = {\n user: {\n password: string\n confirmPassword: string\n firstName: string\n lastName: string\n title: string\n cellPhone: string\n workPhone?: string\n workPhoneExt?: string\n timezone: string\n headshot: File | string | undefined\n socialMedia?: Array\n }\n recaptchaToken: string\n inviteToken: string\n}\n\nexport type ClaimRequestSignUpFormData = Omit & {\n claimToken: string\n}\n\nexport type GovUserSignUpFormData = {\n user: {\n password: string\n confirmPassword: string\n firstName: string\n lastName: string\n title: string\n timezone: string\n email: string\n govUserOrganizationId: number\n headshot: File | string | undefined\n technologyTypes?: Array\n encryptedVisionUserData?: string\n profileDetail?: string\n interactionDetail?: string\n linesOfEffort?: Array\n govUserClassifications?: Array\n city?: string\n stateOrProvince?: string\n country?: string\n govEmployeeSinceYear?: number\n }\n recaptchaToken: string\n}\n\nexport type UpdateUserForm = {\n firstName: string\n lastName: string\n title: string\n cellPhone?: string\n workPhone?: string\n workPhoneExt?: string\n timezone: string\n headshot?: File\n socialMedia?: Array<{\n id?: number\n socialMediaTypeId: number | string\n identifier: string\n destroy?: boolean\n }>\n govUserExtendedDataAttributes?: {\n govUserOrganizationId: number\n profileDetail?: string\n interactionDetail?: string\n linesOfEffort: Array\n govUserClassifications?: Array\n city?: string\n stateOrProvince?: string\n country?: string\n govEmployeeSinceYear?: number\n }\n technologyTypes?: Array\n}\n\nexport type UserFormData = SignupLoginData &\n SignupUserData & {\n recaptchaToken: string | null\n }\n\nexport type AccountData = {\n id: number\n name: string\n uniqueEntityId: string\n defaultListingId: number | string | undefined\n logo?: FileResponseData\n}\n\nexport type ChangePasswordData = {\n currentPassword: string\n password: string\n passwordConfirmation: string\n}\n\nexport type UpdateAccountForm = {\n name: string\n}\n\nexport const isUserSubmittable = (data: Partial): boolean => {\n let errors = [\n validatePassword(data.password),\n validateValueMatch(data.password, data.confirmPassword),\n validateLength(data.firstName, 2),\n validateLength(data.lastName, 2),\n validateLength(data.title, 2),\n validateLength(data.cellPhone, 2),\n ]\n\n if (errors.some((err) => !!err)) {\n return false\n }\n\n let presence = [data.timezone, data.recaptchaToken].every((e) => !!e)\n\n return presence\n}\n\nexport const claimErrorDictionary: { [key: string]: string } = {\n InvalidClaimToken: 'The claim token provided is invalid',\n ClaimPeriodExpired: 'The provided claim token has expired',\n UnknownError: 'Something went wrong; please try again',\n}\n\nexport class UserStore extends ServerStore {\n public readonly baseUserURL: string = '/api/v1/users'\n public currentUserData?: UserData = undefined\n public currentAccountData?: AccountData = undefined\n public websocketConsumer?: Consumer = undefined\n\n constructor(authStore: AuthStore, notificationStore: NotificationStore) {\n super(authStore, notificationStore)\n makeObservable(this, {\n currentUserData: observable,\n setCurrentUserData: action,\n currentAccountData: observable,\n setCurrentAccountData: action,\n websocketConsumer: observable,\n setWebsocketConsumer: action,\n })\n }\n\n public setCurrentUserData(currentUserData: UserData | undefined) {\n this.currentUserData = currentUserData\n }\n\n public setCurrentAccountData(currentAccountData: AccountData | undefined) {\n this.currentAccountData = currentAccountData\n }\n\n public retrieveCurrentUserData = (eager?: string): Promise => {\n return this.server()\n .get('/api/v1/current_user', { params: { eager } })\n .then(({ data }) => data)\n }\n\n public retrieveCurrentGovUserData = (eager?: string): Promise => {\n return this.server()\n .get('/api/v1/current_user', { params: { eager } })\n .then(({ data }) => data)\n }\n\n public retrieveCurrentAccountData = (): Promise => {\n return this.server()\n .get('/api/v1/current_user/account')\n .then(({ data }) => data)\n }\n\n public retrieveGovUserById = (id: string, eager?: string): Promise => {\n return this.server()\n .get(`/api/v1/gov/users/${id}`, { params: { eager } })\n .then(({ data }) => data)\n }\n\n public updateUserSettings = (params: {\n allowMessageRequests?: boolean\n allowInAppNotifications?: boolean\n allowByEmailNotifications?: boolean\n }): Promise => {\n let payload = {\n govUserSettingAttributes: {\n allowMessageRequests: params.allowMessageRequests,\n },\n userAppNotificationSettingAttributes: {\n newChatMessage: params.allowInAppNotifications,\n },\n userEmailNotificationSettingAttributes: {\n newChatMessage: params.allowByEmailNotifications,\n },\n eager:\n 'technologyTypes,userEmailNotificationSetting,userAppNotificationSetting,govUserSetting',\n }\n\n return this.server()\n .patch('/api/v1/users', payload, {\n headers: { 'Content-Type': 'application/json' },\n })\n .then(({ data }) => data)\n }\n\n public getGovUsers(\n params: GovUserPaginatedSearchableParams,\n ): Promise> {\n return this.server()\n .get(`/api/v1/gov/users`, {\n params: {\n ...params,\n eager:\n 'technologyTypes,userEmailNotificationSetting,userAppNotificationSetting,chatThreadIdsWithCurrentUserAccount,isActive,lastLogin',\n },\n })\n .then(({ data }) => data)\n }\n\n public signInUser = (email: string, password: string): Promise => {\n const payload = { user: { email, password } }\n return this.server()\n .post(`${this.baseUserURL}/sign_in`, payload, {\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n 'X-User-Email': email,\n },\n })\n .then((res) => {\n this.authStore.setJWT(res.headers.authorization)\n return res.data\n })\n }\n\n public signOutUser = () => {\n // Intentionally abandoning this promise to the server.\n // The FE doesn't need to care if the serverside invalidation succeeded or not\n this.server().delete(`${this.baseUserURL}/sign_out`)\n this.setWebsocketConsumer(undefined)\n this.authStore.setJWT(null)\n this.setCurrentUserData(undefined)\n this.setCurrentAccountData(undefined)\n }\n\n public submitClaimRequest = (form: ClaimRequestForm): Promise => {\n return this.server()\n .post('/api/v1/claim_requests', form, {\n headers: { 'Content-Type': 'application/json' },\n })\n .then(({ data }) => data)\n }\n\n public resendClaim = (\n form: ResendClaimFormData | ResendClaimFormDataAlternative,\n ): Promise => {\n return this.server()\n .patch('/api/v1/claim_requests/resend', form, {\n headers: { 'Content-Type': 'application/json' },\n })\n .then(({ data }) => data)\n }\n\n public inviteSignUp = (\n form: InviteUserSignupForm,\n ): Promise => {\n const formData = new FormData()\n formData.append('recaptchaToken', form.recaptchaToken)\n formData.append('firstName', form.user.firstName)\n formData.append('lastName', form.user.lastName)\n formData.append('title', form.user.title)\n formData.append('cellPhone', form.user.cellPhone)\n formData.append('timezone', form.user.timezone)\n form.user.headshot && formData.append('headshot', form.user.headshot)\n form.user.workPhone && formData.append('workPhone', form.user.workPhone)\n form.user.workPhoneExt && formData.append('workPhoneExt', form.user.workPhoneExt)\n formData.append('password', form.user.password)\n formData.append('passwordConfirmation', form.user.confirmPassword)\n formData.append('inviteToken', form.inviteToken)\n form.user.socialMedia &&\n form.user.socialMedia.forEach((sm, i) => {\n formData.append(\n `userSocialMediaAccountsAttributes[${i}][socialMediaTypeId]`,\n sm.socialMediaTypeId.toString(),\n )\n formData.append(\n `userSocialMediaAccountsAttributes[${i}][identifier]`,\n sm.identifier.toString(),\n )\n })\n\n return this.server()\n .post('/api/v1/user_invites/accept_invite', formData, {\n headers: { 'Content-Type': 'multipart-form-data' },\n })\n .then(({ data, headers: { authorization } }) => ({ ...data, authorization }))\n }\n\n public claimSignUp = async (\n form: ClaimRequestSignUpFormData,\n ): Promise => {\n const formData = new FormData()\n formData.append('recaptchaToken', form.recaptchaToken)\n formData.append('firstName', form.user.firstName)\n formData.append('lastName', form.user.lastName)\n formData.append('title', form.user.title)\n formData.append('cellPhone', form.user.cellPhone)\n formData.append('timezone', form.user.timezone)\n form.user.headshot && formData.append('headshot', form.user.headshot)\n form.user.workPhone && formData.append('workPhone', form.user.workPhone)\n form.user.workPhoneExt && formData.append('workPhoneExt', form.user.workPhoneExt)\n formData.append('password', form.user.password)\n formData.append('passwordConfirmation', form.user.confirmPassword)\n formData.append('claimToken', form.claimToken)\n form.user.socialMedia &&\n form.user.socialMedia.forEach((sm, i) => {\n formData.append(\n `userSocialMediaAccountsAttributes[${i}][socialMediaTypeId]`,\n sm.socialMediaTypeId.toString(),\n )\n formData.append(\n `userSocialMediaAccountsAttributes[${i}][identifier]`,\n sm.identifier.toString(),\n )\n })\n\n return this.server()\n .post('/api/v1/claim_requests/claim_account', formData, {\n headers: { 'Content-Type': 'multipart-form-data' },\n })\n .then(({ data, headers: { authorization } }) => ({ ...data, authorization }))\n }\n\n public govUserSignUp = async (\n form: GovUserSignUpFormData,\n ): Promise => {\n const formData = new FormData()\n formData.append('recaptchaToken', form.recaptchaToken)\n formData.append('firstName', form.user.firstName)\n formData.append('lastName', form.user.lastName)\n formData.append('title', form.user.title)\n formData.append('timezone', form.user.timezone)\n form.user.headshot && formData.append('headshot', form.user.headshot)\n formData.append('password', form.user.password)\n formData.append('passwordConfirmation', form.user.confirmPassword)\n formData.append('email', form.user.email)\n form.user.encryptedVisionUserData &&\n formData.append('encryptedVisionUserData', form.user.encryptedVisionUserData)\n formData.append('govUserOrganizationId', form.user.govUserOrganizationId.toString())\n\n form.user.technologyTypes &&\n form.user.technologyTypes.forEach((tt, i) => {\n formData.append(`technologyTypes[][id]`, tt.id.toString())\n })\n\n form.user.govUserClassifications &&\n form.user.govUserClassifications.forEach((c) => {\n formData.append(\n `govUserUserClassificationsAttributes[][govUserClassificationId]`,\n c.id.toString(),\n )\n })\n\n form.user.linesOfEffort &&\n form.user.linesOfEffort\n ?.filter((el) => el.details && el.details.trim() !== '')\n .forEach((loe, i) => {\n formData.append(`lineOfEffortsAttributes[${i}][details]`, loe.details)\n })\n\n form.user.profileDetail && formData.append('profileDetail', form.user.profileDetail.toString())\n form.user.interactionDetail &&\n formData.append('interactionDetail', form.user.interactionDetail.toString())\n\n form.user.city && formData.append(`city`, form.user.city)\n form.user.stateOrProvince && formData.append(`stateOrProvince`, form.user.stateOrProvince)\n form.user.country && formData.append(`country`, form.user.country)\n\n form.user?.govEmployeeSinceYear &&\n formData.append('govEmployeeSinceYear', `${form.user.govEmployeeSinceYear}`)\n\n let redirectTo = getFullSessionUrl()\n redirectTo && formData.append('redirectTo', encodeURIComponent(redirectTo))\n\n return this.server()\n .post('/api/v1/gov_users/signup', formData, {\n headers: { 'Content-Type': 'multipart-form-data' },\n })\n .then(({ data, headers: { authorization } }) => ({ ...data, authorization }))\n }\n\n public updateUser = (form: UpdateUserForm): Promise => {\n const formData = new FormData()\n formData.append('firstName', form.firstName)\n formData.append('lastName', form.lastName)\n formData.append('title', form.title)\n form.cellPhone && formData.append('cellPhone', form.cellPhone)\n formData.append('timezone', form.timezone)\n form.headshot && formData.append('headshot', form.headshot)\n form.workPhone && formData.append('workPhone', form.workPhone)\n form.workPhoneExt && formData.append('workPhoneExt', form.workPhoneExt)\n form.govUserExtendedDataAttributes?.govUserOrganizationId &&\n formData.append(\n `govUserExtendedDataAttributes[govUserOrganizationId]`,\n form.govUserExtendedDataAttributes.govUserOrganizationId.toString(),\n )\n\n form.govUserExtendedDataAttributes?.profileDetail &&\n formData.append(\n `govUserExtendedDataAttributes[profileDetail]`,\n form.govUserExtendedDataAttributes.profileDetail,\n )\n form.govUserExtendedDataAttributes?.interactionDetail &&\n formData.append(\n `govUserExtendedDataAttributes[interactionDetail]`,\n form.govUserExtendedDataAttributes.interactionDetail,\n )\n\n formData.append(\n `govUserExtendedDataAttributes[city]`,\n form.govUserExtendedDataAttributes?.city || '',\n )\n formData.append(\n `govUserExtendedDataAttributes[stateOrProvince]`,\n form.govUserExtendedDataAttributes?.stateOrProvince || '',\n )\n formData.append(\n `govUserExtendedDataAttributes[country]`,\n form.govUserExtendedDataAttributes?.country || '',\n )\n\n formData.append(\n 'govUserExtendedDataAttributes[govEmployeeSinceYear]',\n `${form.govUserExtendedDataAttributes?.govEmployeeSinceYear ?? ''}`,\n )\n\n form.govUserExtendedDataAttributes?.linesOfEffort &&\n form.govUserExtendedDataAttributes?.linesOfEffort\n .filter((loe) => {\n // Strip out New LOEs that have empty details, but don't strip out existing LOEs that have empty details\n const detailsEmpty = !loe.details || loe.details.trim() === ''\n const newLoe = !loe.id\n\n return !(newLoe && detailsEmpty)\n })\n .forEach((loe) => {\n const destroy = loe.destroy || (loe.id && (!loe.details || loe.details.trim() === ''))\n\n loe.id &&\n formData.append(\n `govUserExtendedDataAttributes[lineOfEffortsAttributes][][id]`,\n loe.id.toString(),\n )\n\n formData.append(\n `govUserExtendedDataAttributes[lineOfEffortsAttributes][][details]`,\n loe.details,\n )\n\n destroy &&\n formData.append(\n `govUserExtendedDataAttributes[lineOfEffortsAttributes][][_destroy]`,\n destroy.toString(),\n )\n })\n\n form.govUserExtendedDataAttributes?.govUserClassifications &&\n form.govUserExtendedDataAttributes.govUserClassifications.forEach((c) => {\n formData.append(\n `govUserExtendedDataAttributes[govUserUserClassificationsAttributes][][govUserClassificationId]`,\n c.id.toString(),\n )\n\n c.destroy &&\n formData.append(\n `govUserExtendedDataAttributes[govUserUserClassificationsAttributes][][_destroy]`,\n c.destroy.toString(),\n )\n })\n\n form.socialMedia &&\n form.socialMedia.forEach((sm, i) => {\n formData.append(\n `userSocialMediaAccountsAttributes[${i}][socialMediaTypeId]`,\n sm.socialMediaTypeId.toString(),\n )\n formData.append(\n `userSocialMediaAccountsAttributes[${i}][identifier]`,\n sm.identifier.toString(),\n )\n\n sm.id && formData.append(`userSocialMediaAccountsAttributes[${i}][id]`, sm.id.toString())\n sm.destroy &&\n formData.append(\n `userSocialMediaAccountsAttributes[${i}][_destroy]`,\n sm.destroy.toString(),\n )\n })\n\n form.technologyTypes &&\n form.technologyTypes.forEach((tt, i) => {\n formData.append(`technologyTypes[][id]`, tt.id.toString())\n tt.destroy && formData.append(`technologyTypes[][_destroy]`, tt.destroy.toString())\n })\n\n return this.server()\n .patch('/api/v1/users', formData, {\n headers: { 'Content-Type': 'multipart-form-data' },\n })\n .then(({ data, headers: { authorization } }) => ({ ...data, authorization }))\n }\n\n public changePassword = (\n params: ChangePasswordData,\n ): Promise => {\n return this.server()\n .patch(\n '/api/v1/users',\n { user: params },\n {\n headers: { 'Content-Type': 'application/json' },\n },\n )\n .then(({ data, headers: { authorization } }) => ({ ...data, authorization }))\n }\n\n public resendConfirmationEmail(email?: string) {\n const payload: ConfirmationEmailBody = {}\n payload.user = email ? { email } : undefined\n let redirect = getFullSessionUrl()\n payload.redirectTo = redirect ? encodeURIComponent(redirect) : undefined\n\n return this.server()\n .post('/api/v1/users/confirmation', payload, {\n headers: { 'Content-Type': 'application/json' },\n })\n .then(({ data }) => data)\n }\n\n public confirmUser(token: string) {\n return this.server().get('/api/v1/users/confirmation', {\n params: { confirmation_token: token },\n })\n }\n\n public checkUserInvite(token: string) {\n return this.server()\n .get('/api/v1/user_invites/check_invite', {\n params: { invite_token: token },\n })\n .then(({ data }) => data)\n }\n\n public checkClaim = async (claimToken: string): Promise => {\n return this.server()\n .get('/api/v1/claim_requests/check_claim', {\n params: { claimToken },\n })\n .then(({ data }) => data)\n }\n\n public decryptAndValidateGovUserData = async (q: string): Promise => {\n return this.server()\n .get('/api/v1/gov_users/vision_redirection_data', {\n params: { q },\n })\n .then(({ data }) => data)\n }\n\n public saveGovUserDataFromVision = async (q: string): Promise => {\n return this.server()\n .post('/api/v1/gov_users/save_vision_data_for_existing_users', { q })\n .then(({ data }) => data)\n }\n\n public checkIfVisionUserHasAccountAndIsLinked = async (\n q: string,\n ): Promise<{ userExists: boolean; isLinked: boolean }> => {\n return this.server()\n .get('/api/v1/gov_users/user_exists_and_is_linked', {\n params: { q },\n })\n .then(({ data }) => data)\n }\n\n public updateAccount = (form: UpdateAccountForm): Promise => {\n const formData = new FormData()\n formData.append('name', form.name)\n return this.server()\n .patch('/api/v1/current_user/account', formData, {\n headers: { 'Content-Type': 'multipart-form-data' },\n })\n .then(({ data }) => data)\n }\n\n public changeEmail = (email: string) => {\n return this.server()\n .patch('/api/v1/users', { user: { email: email } })\n .then(({ data }) => data)\n }\n\n public requestPasswordReset = (email: string): Promise => {\n return this.server()\n .post('/api/v1/users/password', { email: email })\n .then((res: any) => res)\n }\n\n public resetPassword = (\n password: string,\n passwordConfirmation: string,\n resetPasswordToken: string,\n ): Promise => {\n const params = {\n password: password,\n passwordConfirmation: passwordConfirmation,\n resetPasswordToken: resetPasswordToken,\n }\n return this.server()\n .patch('/api/v1/users/password', {\n user: params,\n })\n .then((res: any) => res)\n }\n\n public cancelEmailChange = (): Promise => {\n return this.server()\n .patch('/api/v1/users/confirmation/cancel')\n .then(({ data }) => data)\n }\n\n public createWebsocketConsumer = () => {\n if (!this.authStore.getJWT()) {\n return\n }\n\n this.setWebsocketConsumer(Cable.createConsumer(`/cable?jwt=${this.authStore.getJWT()}`))\n }\n\n public setWebsocketConsumer = (value: Consumer | undefined) => {\n this.websocketConsumer = value\n }\n\n public countNotifications = (params: { read?: boolean }): Promise => {\n return this.server()\n .get('/api/v1/current_user/notifications/count', { params })\n .then(({ data }) => data)\n }\n\n public getNotifications = (\n params: PaginationParams & SortableParams & { read?: boolean },\n ): Promise> => {\n return this.server()\n .get('/api/v1/current_user/notifications', { params })\n .then(({ data }) => data)\n }\n\n public markAllNotificationsRead = (): Promise => {\n // Is a 204\n return this.server()\n .patch('/api/v1/current_user/notifications/read')\n .then(({ data }) => data)\n }\n\n public markNotificationRead = (id: number): Promise => {\n // Is a 204\n return this.server()\n .patch(`/api/v1/current_user/notifications/${id}/read`)\n .then(({ data }) => data)\n }\n}\n","import { inject, observer } from 'mobx-react'\nimport { CBadge, CCardText } from '@coreui/react'\nimport {\n ApplicationStore,\n AuthStore,\n NotificationStore,\n ServerStore,\n UserData,\n UserStore,\n} from '../../stores'\n\nimport {\n ChatMessageResponse,\n ChatParticipantResponse,\n ChatThreadResponse,\n isAccountData,\n isAccountParticipant,\n isUserParticipant,\n} from '../../stores/ServerStore'\nimport { UserAvatar } from '../user'\nimport { AccountData } from '../../stores/UserStore'\nimport { SubPageData } from '../../lib/types'\nimport { Link } from 'react-router-dom'\nimport { Fragment } from 'react'\n\nexport const makeChatThreadHeadliner = (participantList: Array) =>\n participantList.map((item: ChatParticipantResponse, index: number) => {\n return (\n \n {index > 0 && index <= participantList.length - 1 && ', '}\n {isAccountData(item.participant) ? (\n \n {item.participant.name}\n \n ) : (\n \n {item.participant.firstName + ' ' + item.participant.lastName}\n \n )}\n \n )\n })\n\nexport type ChatThreadCardProps = {\n value: ChatThreadResponse\n userStore?: UserStore\n notificationStore?: NotificationStore\n authStore?: AuthStore\n serverStore?: ServerStore\n selected?: boolean\n onSelect: () => void\n}\n\nexport const ChatThreadCard = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.authStore,\n ApplicationStore.names.serverStore,\n)(\n observer((props: ChatThreadCardProps) => {\n const chatThreadData = props.value\n const user = props.userStore?.currentUserData\n const currentIsGovUser = props.userStore?.currentUserData?.userRoles.includes('gov')\n\n const displayParticipantList = chatThreadData.participants.filter(\n (participant: ChatParticipantResponse) => {\n if (isAccountParticipant(participant) && !currentIsGovUser) {\n return user?.accountId !== participant.participantId\n } else if (isAccountParticipant(participant) && currentIsGovUser) {\n return true\n } else {\n return user?.id !== participant.participantId\n }\n },\n )\n\n // set which user or account will be the featured first participant\n const featuredParticipant = () => {\n return displayParticipantList[0]\n }\n\n const mostRecentSenderName = () => {\n return (\n (chatThreadData.userChatMessages as SubPageData).data[0].user\n .firstName +\n ' ' +\n (chatThreadData.userChatMessages as SubPageData).data[0].user.lastName\n )\n }\n\n const renderBadge = () => {\n if (chatThreadData.currentUserUnreadCount > 999) {\n return {'1K+'}\n } else if (chatThreadData.currentUserUnreadCount > 0) {\n return {chatThreadData.currentUserUnreadCount}\n } else {\n return\n }\n }\n\n const renderFeaturedPhoto = () => {\n if (isUserParticipant(featuredParticipant())) {\n let featured = featuredParticipant()?.participant as UserData\n return \n } else {\n // Accounts will only display 1 initial.\n let featured = featuredParticipant()?.participant as AccountData\n return \n }\n }\n\n const onSelected = () => {\n props.onSelect()\n }\n\n return (\n onSelected()}\n data-testid={`chat-thread-card-${chatThreadData.id}`}\n >\n {renderFeaturedPhoto()}\n
\n
\n
\n {makeChatThreadHeadliner(displayParticipantList)}\n
\n
\n \n {user?.id ===\n (chatThreadData.userChatMessages as SubPageData).data[0].userId\n ? 'You: '\n : `${mostRecentSenderName()}: `}\n {(chatThreadData.userChatMessages as SubPageData).data[0].content}\n \n
\n
{renderBadge()}
\n \n )\n }),\n)\n\nexport default ChatThreadCard\n","import {\n BulkFileUploader,\n RichFileAccept,\n ServerFileData,\n RichTooltip,\n} from '@mobilizeyourtech/vision-core-react'\nimport { CCol, CFormLabel, CRow } from '@coreui/react'\nimport React from 'react'\nimport {\n FILE_UPLOAD_MAX_SIZE_BYTES,\n FILE_UPLOAD_MAX_SIZE_CONTENT,\n UNCLASSIFIED_WARNING_PROMPT,\n} from '../../../../lib/helpers/utils'\n\nexport interface ListingArtifactAttachmentFormData {\n id?: string | number\n name?: string\n description?: string\n file: ServerFileData | File\n destroy?: boolean\n}\n\nexport interface BulkAttachmentsProps {\n formData: Array\n onChange: (change: Array) => void\n}\n\nconst allowedFileTypes: Array = [\n { value: 'image/gif', displayValue: 'GIF (.gif)' },\n { value: 'image/jpeg', displayValue: 'JPEG (.jpeg)' },\n { value: 'image/png', displayValue: 'PNG (.png)' },\n { value: 'image/svg+xml', displayValue: 'SVG (.svg)' },\n { value: 'application/pdf', displayValue: 'PDF (.pdf)' },\n { value: 'application/msword', displayValue: 'DOC (.doc)' },\n {\n value: 'application/vnd.ms-word.document.macroenabled.12',\n displayValue: 'XML Word Macro-Enabled Document (.docm)',\n },\n {\n value: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n displayValue: 'XML Word Document (.docx)',\n },\n { value: 'text/csv', displayValue: 'CSV (.csv)' },\n {\n value: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n displayValue: 'Excel Workbook (.xlsx)',\n },\n {\n value: 'application/vnd.ms-excel.sheet.binary.macroenabled.12',\n displayValue: 'Excel Binary Workbook (.xlsb)',\n },\n { value: 'application/vnd.ms-excel', displayValue: 'Excel Spreadsheet (.xls)' },\n {\n value: 'application/vnd.ms-excel.sheet.macroenabled.12',\n displayValue: 'Excel Macro-Enabled Workbook (.xlsm)',\n },\n { value: 'text/plain', displayValue: 'CSV (.csv)' },\n {\n value: 'application/vnd.ms-powerpoint',\n displayValue: 'PowerPoint Binary Presentation (.ppt)',\n },\n {\n value: 'application/vnd.ms-powerpoint.presentation.macroenabled.12',\n displayValue: 'PowerPoint Macro-Enabled Presentation (.pptm)',\n },\n {\n value: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n displayValue: 'PowerPoint XML Presentation (.pptx)',\n },\n]\nexport const BulkAttachments = (props: BulkAttachmentsProps) => {\n return (\n <>\n \n \n Attachments\n \n Provide attachments that will give the government user a more robust picture of your\n company's capabilities.\n
\n }\n location=\"top\"\n timeout={300}\n >\n \n \n \n props.onChange(change)}\n fileUploaderProps={{\n accept: allowedFileTypes,\n subText: UNCLASSIFIED_WARNING_PROMPT,\n additionalText: FILE_UPLOAD_MAX_SIZE_CONTENT,\n maxSize: FILE_UPLOAD_MAX_SIZE_BYTES,\n }}\n />\n \n \n \n )\n}\n","import { CFormLabel, CRow } from '@coreui/react'\nimport React from 'react'\nimport { BulkLinkInput } from '@mobilizeyourtech/vision-core-react'\n\nexport interface ListingArtifactLinkFormData {\n id?: string | number\n name?: string\n description?: string\n url: string\n destroy?: boolean\n destroyable?: boolean\n}\n\nexport interface ListingArtifactLinksAttributesProps {\n formData: Array\n onChange: (change: Array) => void\n}\n\nexport const BulkLinks = (props: ListingArtifactLinksAttributesProps) => {\n return (\n \n Links\n props.onChange(change)}\n requiredFields={['name']}\n />\n \n )\n}\n","import { CButton, CCol, CContainer, CRow } from '@coreui/react'\nimport { SuspensionBoundary, ServerPageData } from '@mobilizeyourtech/vision-core-react'\nimport { inject, observer } from 'mobx-react'\nimport React, { useEffect, useState } from 'react'\nimport { NumberParam, useQueryParams, withDefault } from 'use-query-params'\nimport { Pagination } from '../../components/custom'\nimport { UserDetailCard, CreateModal } from '../../components/user'\nimport { PaginationParams } from '../../lib/types/Params'\nimport {\n AccountStore,\n ApplicationStore,\n NotificationStore,\n UserData,\n UserStore,\n} from '../../stores'\nimport { InvitedUserData } from '../../stores/UserStore'\n\ntype TProps = {\n notificationStore?: NotificationStore\n userStore?: UserStore\n accountStore?: AccountStore\n}\n\nconst Users = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.accountStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [users, setUsers] = useState | undefined>(\n undefined,\n )\n const [isLoading, setIsLoading] = useState(false)\n const [isModalOpen, setIsModalOpen] = useState(false)\n\n const [params] = useQueryParams({\n page: withDefault(NumberParam, 1),\n perPage: withDefault(NumberParam, 10),\n })\n\n const currentAccountId = props.userStore!.currentAccountData!.id\n const { page, perPage } = params\n\n const getUserData = (p: PaginationParams) => {\n setIsLoading(true)\n\n props.accountStore\n ?.getAccountUsers(currentAccountId, p.page, p.perPage, true)\n .then((data) => {\n setUsers(data)\n })\n .catch(() => {\n props.notificationStore?.setNotificationMessage(\n 'Unable to get user data, please try again later',\n 'danger',\n 3000,\n )\n })\n .finally(() => {\n setTimeout(() => {\n setIsLoading(false)\n }, 300)\n })\n }\n\n useEffect(() => {\n getUserData(params)\n }, [page, perPage])\n\n return (\n
\n {\n setIsModalOpen(false)\n getUserData(params)\n }}\n />\n
\n

Users

\n {\n setIsModalOpen(true)\n }}\n >\n \n
Invite User
\n \n
\n \n \n \n {users?.data.map((user: UserData | InvitedUserData) => (\n \n getUserData(params)}\n />\n \n ))}\n \n \n \n {users?.pagination && }\n
\n )\n }),\n)\n\nexport default Users\n","import React, { FormEvent, useState } from 'react'\nimport {\n CButton,\n CCard,\n CCardBody,\n CCardFooter,\n CCol,\n CContainer,\n CForm,\n CFormInput,\n CRow,\n} from '@coreui/react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../stores'\nimport { inject, observer } from 'mobx-react'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { validateEmail } from '../lib/helpers/validation'\nimport { SupportLinks } from '../components/custom'\ntype TProps = {\n userStore?: UserStore\n authStore?: AuthStore\n notificationStore?: NotificationStore\n}\n\nexport const ConfirmationInstructions = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.authStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [params] = useQueryParams({\n key: withDefault(StringParam, ''),\n })\n const decodeKey = () => {\n if (params.key) {\n let buff = Buffer.from(params.key, 'base64')\n return buff.toString('ascii')\n } else {\n return ''\n }\n }\n const [email, setEmail] = useState(decodeKey())\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const isResendEnabled =\n !isSubmitting && (!validateEmail(email) || props.authStore?.isAuthenticated())\n\n const resendConfirmationEmail = (e: FormEvent) => {\n setIsSubmitting(true)\n\n e.preventDefault()\n props.userStore\n ?.resendConfirmationEmail(email)\n .then(() => {\n setIsSubmitting(false)\n props.notificationStore?.setNotificationMessage(\n 'A new confirmation email has been sent.',\n 'success',\n 3000,\n )\n })\n .catch(() => {\n setIsSubmitting(false)\n props.notificationStore?.setNotificationMessage(\n 'Unable to resend confirmation email. Please try again.',\n 'danger',\n 3000,\n )\n })\n }\n\n const determineContent = () => {\n if (!props.authStore?.JWT && !params.key) {\n return emailForm()\n } else {\n return resendButton()\n }\n }\n\n const emailForm = () => {\n return (\n
\n \n \n ) => setEmail(e.target.value)}\n value={email}\n />\n \n \n {resendButton()}\n
\n )\n }\n\n const resendButton = () => {\n return (\n \n \n Resend Confirmation Email\n \n \n )\n }\n\n return (\n
\n \n \n \n \n \n \n \n

Please Confirm Your Email

\n
\n
\n \n \n

\n An email has been sent to the email address you have provided. Please check\n your inbox and follow the link to confirm your account.\n

\n

\n

\n If you did not receive an email or the link did not work, please resend the\n confirmation email.\n

\n
\n
\n {determineContent()}\n
\n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n )\n }),\n)\n\nexport default ConfirmationInstructions\n","export default \"data:image/png;base64,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\"","import { ApplicationStore, NotificationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { CCard, CCardBody, CCardHeader, CRow } from '@coreui/react'\nimport ReactHtmlParser from 'react-html-parser'\nimport React from 'react'\nimport { LinesOfEffortCard } from 'components/Organisms/EntityCards/LinesOfEffortCard/LinesOfEffortCard'\nimport { GovUserClassificationsCard } from 'components/Organisms/EntityCards/GovUserClassificationsCard/GovUserClassificationsCard'\ntype TProps = {\n userStore?: UserStore\n notificationStore?: NotificationStore\n}\n\nexport const GovUserExtendedProfileDetailCard = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const profileDetailSection = () => {\n return (\n \n
\n {props.userStore?.currentUserData?.govUserExtendedData?.profileDetail &&\n ReactHtmlParser(props.userStore.currentUserData.govUserExtendedData.profileDetail)}\n
\n
\n )\n }\n\n return (\n <>\n \n Problem Statement & Role Description\n {profileDetailSection()}\n \n \n \n \n )\n }),\n)\n","import { inject, observer } from 'mobx-react'\nimport { ApplicationStore, UserStore } from '../../stores'\nimport { ActionDropdown, ActionDropdownMenuOption } from '@mobilizeyourtech/vision-core-react'\nimport React, { useState } from 'react'\nimport { CContainer, CModal, CModalBody, CModalHeader, CModalTitle } from '@coreui/react'\nimport { ChangeEmailForm, ChangePasswordForm, EditAccountForm, EditProfileForm } from '../form'\nimport { hasIgniteRole } from '../../stores/UserStore'\n\nexport interface AccountActionsProps {\n userStore?: UserStore\n}\n\nexport const AccountActions = inject(ApplicationStore.names.userStore)(\n observer((props: AccountActionsProps) => {\n const [isEditProfileModalOpen, setIsEditProfileModalOpen] = useState(false)\n const [isChangePasswordModalOpen, setIsChangePasswordModalOpen] = useState(false)\n const [isChangeEmailModalOpen, setIsChangeEmailModalOpen] = useState(false)\n const [isEditAccountModalOpen, setIsEditAccountModalOpen] = useState(false)\n\n const onActionSelect = (o: ActionDropdownMenuOption) => {\n switch (o.id) {\n case 0:\n setIsEditProfileModalOpen(true)\n break\n case 1:\n setIsChangeEmailModalOpen(true)\n break\n case 2:\n setIsChangePasswordModalOpen(true)\n break\n case 3:\n setIsEditAccountModalOpen(true)\n break\n }\n }\n\n const options = React.useMemo(() => {\n let ret = [\n { id: 0, name: 'Edit Profile', iconClassName: 'fas fa-pencil-alt' },\n { id: 1, name: 'Change Email', iconClassName: 'fas fa-edit' },\n { id: 2, name: 'Change Password', iconClassName: 'fas fa-user-secret' },\n ]\n\n if (hasIgniteRole(props.userStore!.currentUserData!)) {\n ret = [...ret, { id: 3, name: 'Edit Account', iconClassName: 'fas fa-pen' }]\n }\n\n return ret\n }, [])\n\n return (\n
\n \n\n setIsEditProfileModalOpen(false)}\n >\n \n Edit Profile\n \n \n \n setIsEditProfileModalOpen(false)} />\n \n \n \n\n setIsChangePasswordModalOpen(false)}\n >\n \n Change Password\n \n \n \n setIsChangePasswordModalOpen(false)} />\n \n \n \n\n setIsChangeEmailModalOpen(false)}\n >\n \n Change Email\n \n \n setIsChangeEmailModalOpen(false)} />\n \n \n\n setIsEditAccountModalOpen(false)}\n >\n \n Edit Account\n \n \n \n setIsEditAccountModalOpen(false)} />\n \n \n \n
\n )\n }),\n)\n","import { CBadge, CCard, CCardBody, CCardHeader, CCol, CRow } from '@coreui/react'\nimport React from 'react'\nimport { TechnologyTypeResponse } from '../../stores/ServerStore'\n\nexport interface GovUserTechnologyTypesCardProps {\n technologyTypes: Array\n}\n\nexport const GovUserTechnologyTypesCard = (props: GovUserTechnologyTypesCardProps) => {\n return (\n \n \n Technology Types\n \n \n \n {props.technologyTypes.map((tt) => {\n return (\n \n \n {tt.name}\n \n \n )\n })}\n \n \n \n )\n}\n","import React from 'react'\nimport { CCol, CContainer, CRow } from '@coreui/react'\nimport { ProfileDetailCard, AccountDetailCard, UserSettingsCard } from '../../components/user'\nimport { ApplicationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { GovUserExtendedProfileDetailCard } from '../../components/user/GovUserExtendedProfileDetailCard'\nimport { AccountActions } from '../../components/user/AccountActions'\nimport { GovUserTechnologyTypesCard } from '../../components/user/GovUserTechnologyTypesCard'\n\ntype TProps = {\n userStore?: UserStore\n}\n\nconst Account = inject(ApplicationStore.names.userStore)(\n observer((props: TProps) => {\n return (\n
\n \n \n \n
\n \n
\n
\n
\n \n \n \n \n \n {props.userStore?.currentUserData?.userRoles.includes('ignite') && (\n \n \n \n \n \n )}\n \n \n \n \n \n {props.userStore?.currentUserData?.userRoles.includes('gov') && (\n \n \n \n \n \n )}\n \n \n {props.userStore?.currentUserData?.userRoles.includes('gov') && (\n \n \n \n \n \n )}\n
\n
\n )\n }),\n)\n\nexport default Account\n","import spacetime from 'spacetime'\nimport { Spacetime } from 'spacetime/types/types'\nimport informal from 'spacetime-informal'\n\nexport type ICustomTimezone = {\n [key: string]: string\n}\n\nexport const getCurrentISOStringOffset = () => {\n const date = new Date()\n var tzo = -date.getTimezoneOffset(),\n dif = tzo >= 0 ? '+' : '-',\n pad = function (num: number) {\n return (num < 10 ? '0' : '') + num\n }\n\n return (\n date.getFullYear() +\n '-' +\n pad(date.getMonth() + 1) +\n '-' +\n pad(date.getDate()) +\n 'T' +\n pad(date.getHours()) +\n ':' +\n pad(date.getMinutes()) +\n ':' +\n pad(date.getSeconds()) +\n dif +\n pad(Math.floor(Math.abs(tzo) / 60)) +\n ':' +\n pad(Math.abs(tzo) % 60)\n )\n}\n\nexport const makeDateComputerOffset = (str: string) => {\n return new Date(str + 'T' + getCurrentISOStringOffset().split('T')[1])\n}\n\nexport const i18nTimezones: ICustomTimezone = {\n 'Pacific/Midway': 'Midway Island, Samoa',\n 'Pacific/Honolulu': 'Hawaii',\n 'America/Juneau': 'Alaska',\n 'America/Boise': 'Mountain Time',\n 'America/Dawson': 'Dawson, Yukon',\n 'America/Chihuahua': 'Chihuahua, La Paz, Mazatlan',\n 'America/Phoenix': 'Arizona',\n 'America/Chicago': 'Central Time',\n 'America/Regina': 'Saskatchewan',\n 'America/Mexico_City': 'Guadalajara, Mexico City, Monterrey',\n 'America/Belize': 'Central America',\n 'America/Detroit': 'Eastern Time',\n 'America/Bogota': 'Bogota, Lima, Quito',\n 'America/Caracas': 'Caracas, La Paz',\n 'America/Santiago': 'Santiago',\n 'America/St_Johns': 'Newfoundland and Labrador',\n 'America/Sao_Paulo': 'Brasilia',\n 'America/Tijuana': 'Tijuana',\n 'America/Argentina/Buenos_Aires': 'Buenos Aires, Georgetown',\n 'America/Godthab': 'Greenland',\n 'America/Los_Angeles': 'Pacific Time',\n 'Atlantic/Azores': 'Azores',\n 'Atlantic/Cape_Verde': 'Cape Verde Islands',\n GMT: 'UTC',\n 'Europe/London': 'Edinburgh, London',\n 'Europe/Dublin': 'Dublin',\n 'Europe/Lisbon': 'Lisbon',\n 'Africa/Casablanca': 'Casablanca, Monrovia',\n 'Atlantic/Canary': 'Canary Islands',\n 'Europe/Belgrade': 'Belgrade, Bratislava, Budapest, Ljubljana, Prague',\n 'Europe/Sarajevo': 'Sarajevo, Skopje, Warsaw, Zagreb',\n 'Europe/Brussels': 'Brussels, Copenhagen, Madrid, Paris',\n 'Europe/Amsterdam': 'Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna',\n 'Africa/Algiers': 'West Central Africa',\n 'Europe/Bucharest': 'Bucharest',\n 'Africa/Cairo': 'Cairo',\n 'Europe/Helsinki': 'Helsinki, Kiev, Riga, Sofia, Tallinn, Vilnius',\n 'Europe/Athens': 'Athens, Istanbul, Minsk',\n 'Asia/Jerusalem': 'Jerusalem',\n 'Africa/Harare': 'Harare, Pretoria',\n 'Europe/Moscow': 'Moscow, St. Petersburg, Volgograd',\n 'Asia/Kuwait': 'Kuwait, Riyadh',\n 'Africa/Nairobi': 'Nairobi',\n 'Asia/Baghdad': 'Baghdad',\n 'Asia/Tehran': 'Tehran',\n 'Asia/Dubai': 'Abu Dhabi, Muscat',\n 'Asia/Baku': 'Baku, Tbilisi, Yerevan',\n 'Asia/Kabul': 'Kabul',\n 'Asia/Yekaterinburg': 'Ekaterinburg',\n 'Asia/Karachi': 'Islamabad, Karachi, Tashkent',\n 'Asia/Kolkata': 'Chennai, Kolkata, Mumbai, New Delhi',\n 'Asia/Kathmandu': 'Kathmandu',\n 'Asia/Dhaka': 'Astana, Dhaka',\n 'Asia/Colombo': 'Sri Jayawardenepura',\n 'Asia/Almaty': 'Almaty, Novosibirsk',\n 'Asia/Rangoon': 'Yangon Rangoon',\n 'Asia/Bangkok': 'Bangkok, Hanoi, Jakarta',\n 'Asia/Krasnoyarsk': 'Krasnoyarsk',\n 'Asia/Shanghai': 'Beijing, Chongqing, Hong Kong SAR, Urumqi',\n 'Asia/Kuala_Lumpur': 'Kuala Lumpur, Singapore',\n 'Asia/Taipei': 'Taipei',\n 'Australia/Perth': 'Perth',\n 'Asia/Irkutsk': 'Irkutsk, Ulaanbaatar',\n 'Asia/Seoul': 'Seoul',\n 'Asia/Tokyo': 'Osaka, Sapporo, Tokyo',\n 'Asia/Yakutsk': 'Yakutsk',\n 'Australia/Darwin': 'Darwin',\n 'Australia/Adelaide': 'Adelaide',\n 'Australia/Sydney': 'Canberra, Melbourne, Sydney',\n 'Australia/Brisbane': 'Brisbane',\n 'Australia/Hobart': 'Hobart',\n 'Asia/Vladivostok': 'Vladivostok',\n 'Pacific/Guam': 'Guam, Port Moresby',\n 'Asia/Magadan': 'Magadan, Solomon Islands, New Caledonia',\n 'Asia/Kamchatka': 'Kamchatka, Marshall Islands',\n 'Pacific/Fiji': 'Fiji Islands',\n 'Pacific/Auckland': 'Auckland, Wellington',\n 'Pacific/Tongatapu': \"Nuku'alofa\",\n}\n\nexport type ITimezoneOption = {\n value: string\n label: string\n abbrev?: string\n altName?: string\n offset?: number\n}\n\nexport type ITimezone = ITimezoneOption | string\n\nexport const scoreTimezoneOption = (currentTime: Spacetime, tz: ITimezoneOption) => {\n let score = 0\n if (\n currentTime.timezones[tz.value.toLowerCase()] &&\n !!currentTime.timezones[tz.value.toLowerCase()].dst === currentTime.timezone().hasDst\n ) {\n if (\n tz.value.toLowerCase().indexOf(currentTime.tz.substr(currentTime.tz.indexOf('/') + 1)) !== -1\n ) {\n score += 8\n }\n if (\n tz.label.toLowerCase().indexOf(currentTime.tz.substr(currentTime.tz.indexOf('/') + 1)) !== -1\n ) {\n score += 4\n }\n if (tz.value.toLowerCase().indexOf(currentTime.tz.substr(0, currentTime.tz.indexOf('/')))) {\n score += 2\n }\n score += 1\n } else if (tz.value === 'GMT') {\n score += 1\n }\n return { tz, score }\n}\n\nexport const findFuzzyTz = (\n zone: string,\n timeZoneOptions: Array,\n): ITimezoneOption | undefined => {\n let currentTime: Spacetime\n try {\n currentTime = spacetime.now(zone)\n } catch (err) {\n return undefined\n }\n return timeZoneOptions\n .filter((tz: ITimezoneOption) => tz.offset === currentTime.timezone().current.offset)\n .map((tz: ITimezoneOption) => scoreTimezoneOption(currentTime, tz))\n .sort((a, b) => b.score - a.score)\n .map(({ tz, score }) => tz)[0]\n}\n\nexport const parseTimezone = (zone: ITimezone, timeZoneOptions: Array) => {\n if (typeof zone === 'object' && zone.value && zone.label) return zone\n if (typeof zone === 'string') {\n return (\n timeZoneOptions.find((tz) => tz.value === zone) ||\n (zone.indexOf('/') !== -1 ? findFuzzyTz(zone, timeZoneOptions) : undefined)\n )\n } else if (zone.value && !zone.label) {\n return timeZoneOptions.find((tz) => tz.value === zone.value)\n }\n}\n\nexport const parseDateTime = (timestamp: string): string => {\n const date = new Date(timestamp)\n return `${date.toLocaleDateString('en-US')} at ${date.toLocaleTimeString('en-US', {\n hour: '2-digit',\n minute: '2-digit',\n })}`\n}\n\nexport const parseDate = (timestamp: string): string => {\n return new Date(timestamp).toLocaleDateString('en-US')\n}\n\nexport const getTimezoneData = (\n zone: string,\n zoneLabel: string,\n labelStyle: string,\n): ITimezoneOption => {\n const now = spacetime.now().goto(zone)\n const tz = now.timezone()\n const tzStrings = informal.display(zone)\n\n let label = ''\n let abbrev = zone\n let altName = zone\n\n if (tzStrings && tzStrings.daylight && tzStrings.standard) {\n abbrev = now.isDST() ? tzStrings.daylight.abbrev : tzStrings.standard.abbrev\n altName = now.isDST() ? tzStrings.daylight.name : tzStrings.standard.name\n }\n\n const min = tz.current.offset * 60\n const hr = `${(min / 60) ^ 0}:` + (min % 60 === 0 ? '00' : Math.abs(min % 60))\n\n const hrTemp = hr.includes('-') ? hr : `+${hr}`\n const prefix = `(GMT${hrTemp}) ${zoneLabel}`\n\n switch (labelStyle) {\n case 'original':\n label = prefix\n break\n case 'altName':\n const altTemp = !altName.includes('/') ? `(${altName})` : ''\n label = `${prefix} ${altTemp}`\n break\n case 'abbrev':\n const abbrevTemp = abbrev.length < 5 ? `(${abbrev})` : ''\n label = `${prefix} ${abbrevTemp}`\n break\n default:\n label = `${prefix}`\n }\n\n return {\n value: zone,\n label: label,\n offset: tz.current.offset,\n abbrev: abbrev,\n altName: altName,\n }\n}\n\nexport const getTimezoneOptions = (labelStyle = 'original'): Array => {\n return Object.entries(i18nTimezones)\n .reduce((selectOptions, zone) => {\n selectOptions.push(getTimezoneData(zone[0], zone[1], labelStyle))\n\n return selectOptions\n }, [] as ITimezoneOption[])\n .sort((a: ITimezoneOption, b: ITimezoneOption) => (a.offset || 0) - (b.offset || 0))\n}\n\nexport const withGrace = (func: (timeout?: number) => void, timeout?: number) => {\n setTimeout(func, timeout || 300)\n}\n\n/**\n * Number of milliseconds in one second\n */\nexport const second: number = 1000\n\n/**\n * Number of milliseconds in one minute\n */\nexport const minute: number = second * 60\n\n/**\n * Number of milliseconds in one hour\n */\nexport const hour: number = minute * 60\n\n/**\n * Number of milliseconds in one day\n */\nexport const day: number = hour * 24\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"govUserConnectorChip\":\"GovUserConnectorChip_govUserConnectorChip__37ZxW\"};","import { RestfulMessage } from '../types'\n\nexport const extractRestfulError = (error: any): RestfulMessage | undefined => {\n if (error?.response?.data) {\n return error.response.data\n }\n return undefined\n}\n\nexport class VisionRequestInterceptedError extends Error {}\n","import { Location } from 'history'\nexport enum SESSION_VARIABLES {\n PATH_NAME = 'PATH_NAME',\n QUERY = 'QUERY',\n Q_PARAM = 'Q_PARAM',\n Q_USER_EXISTS = 'Q_USER_EXISTS',\n LINKED_TO_VISION = 'LINKED_TO_VISION',\n}\n\n///////////////////////////////////\n// Redirect Session Helpers\n///////////////////////////////////\nexport const setRedirectSessionVariables = (location: Location) => {\n let noStoredSessionRedirect = !getFullSessionUrl()\n let redirectTo = new URLSearchParams(location.search).get('redirectTo')\n\n if (noStoredSessionRedirect || redirectTo) {\n let pathName = location.pathname\n let queryParams = location.search\n\n if (redirectTo) {\n pathName = redirectTo.split('?')[0]\n queryParams = redirectTo.split('?')[1] ? '?' + redirectTo.split('?')[1] : ''\n }\n\n window.sessionStorage.setItem(SESSION_VARIABLES.PATH_NAME, pathName)\n window.sessionStorage.setItem(SESSION_VARIABLES.QUERY, queryParams)\n }\n}\nexport const clearRedirectSessionVariables = () => {\n window.sessionStorage.removeItem(SESSION_VARIABLES.PATH_NAME)\n window.sessionStorage.removeItem(SESSION_VARIABLES.QUERY)\n}\nexport const getSessionPath = () => {\n return window.sessionStorage.getItem(SESSION_VARIABLES.PATH_NAME)\n}\nexport const getSessionQuery = () => {\n return window.sessionStorage.getItem(SESSION_VARIABLES.QUERY)\n}\nexport const getFullSessionUrl = () => {\n let ret = undefined\n\n if (getSessionPath()) {\n ret = getSessionPath()\n }\n\n if (ret && getSessionQuery()) {\n ret = ret + getSessionQuery()\n }\n\n return ret\n}\n\n///////////////////////////////////\n// Redirect Session Helpers\n///////////////////////////////////\n\n///////////////////////////////////\n// Q Param Session Helpers\n///////////////////////////////////\nexport const clearQParamSessionVariables = () => {\n window.sessionStorage.removeItem(SESSION_VARIABLES.Q_PARAM)\n window.sessionStorage.removeItem(SESSION_VARIABLES.Q_USER_EXISTS)\n window.sessionStorage.removeItem(SESSION_VARIABLES.LINKED_TO_VISION)\n}\n\nexport const setSessionQParam = (q: string) => {\n window.sessionStorage.setItem(SESSION_VARIABLES.Q_PARAM, q)\n}\n\nexport const setSessionQUserExists = (args: { userExists: boolean; isLinked: boolean }) => {\n window.sessionStorage.setItem(SESSION_VARIABLES.LINKED_TO_VISION, args.isLinked.toString())\n window.sessionStorage.setItem(SESSION_VARIABLES.Q_USER_EXISTS, args.userExists.toString())\n}\n\nexport const getSessionQParam = () => {\n let ret = window.sessionStorage.getItem(SESSION_VARIABLES.Q_PARAM)\n return ret || null\n}\n\nexport const getSessionQUserExists = () => {\n let ret = window.sessionStorage.getItem(SESSION_VARIABLES.Q_USER_EXISTS)\n return ret ? Boolean(JSON.parse(ret)) : null\n}\n\nexport const getSessionQUserLinkedToVision = () => {\n let ret = window.sessionStorage.getItem(SESSION_VARIABLES.LINKED_TO_VISION)\n return ret ? Boolean(JSON.parse(ret)) : null\n}\n\nexport const removeQParamFromLocation = (location: Location) => {\n let search = new URLSearchParams(location.search)\n search.delete('q')\n location.search = '?' + search.toString()\n return location\n}\n\n///////////////////////////////////\n// Q Param Session Helpers\n///////////////////////////////////\n","export const leftArrow = () => {\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n","import { CCol, CFormInput, CRow } from '@coreui/react'\nimport { CountrySelectInput, RegionSelectInput, ValidatedCFormInput } from '../../custom'\nimport React from 'react'\nimport { validateLength } from '../../../lib/helpers/validation'\n\nexport type AddressData = {\n addressLine1: string\n addressLine2?: string\n addressLine3?: string\n city: string\n stateOrProvince: string\n country: string\n postalCode: string\n}\n\ntype TProps = {\n onChange: (value: Partial) => void\n value?: Partial\n idPrefix?: string\n}\n\nexport const AddressForm = (props: TProps) => {\n const makeId = (value: string) => {\n if (props.idPrefix) {\n return `${props.idPrefix}-${value}`\n }\n return value\n }\n\n const onChange = (v: Partial) => {\n return props.onChange({ ...props.value, ...v })\n }\n\n return (\n
\n \n \n onChange({ addressLine1: value })}\n required\n data-testid={makeId('test-addressLine1Input')}\n validate={(v) => validateLength(v, 2)}\n renderInvalidMessage={() => 'Must be at least 2 characters'}\n />\n \n \n\n \n \n onChange({ addressLine2: value })}\n data-testid={makeId('test-addressLine2Input')}\n />\n \n \n\n \n \n onChange({ addressLine3: value })}\n data-testid={makeId('test-addressLine3Input')}\n />\n \n \n\n \n \n onChange({ city: value })}\n required\n data-testid={makeId('test-addressCityInput')}\n validate={(v) => validateLength(v, 2)}\n renderInvalidMessage={() => 'Must be at least 2 characters'}\n />\n \n\n \n onChange({ stateOrProvince: r?.short })}\n country={props.value?.country}\n id={makeId('addressStateProvinceInput')}\n required\n data-testid={makeId('test-addressStateProvinceInput')}\n />\n \n \n\n \n \n onChange({ country: v?.short, stateOrProvince: undefined })}\n required\n data-testid={makeId('test-addressCountryInput')}\n />\n \n \n onChange({ postalCode: value })}\n required\n data-testid={makeId('test-addressPostalCodeInput')}\n validate={(v) => validateLength(v, 2)}\n renderInvalidMessage={() => 'Must be at least 2 characters'}\n />\n \n \n
\n )\n}\n","import { CCol, CFormLabel, CRow } from '@coreui/react'\nimport React from 'react'\nimport { AsyncValidatedTextInput, IconPopover, ValidatedCFormInput } from '../../custom'\nimport { validateLength } from '../../../lib/helpers/validation'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ServerStore } from '../../../stores'\n\nexport type SignupAccountData = {\n name: string\n uniqueEntityId: string\n}\ntype TProps = {\n value: Partial\n onChange: (value: Partial) => void\n serverStore?: ServerStore\n asyncValidationDebounceMs?: number\n disabled?: string[]\n isAccountNameHidden?: boolean\n}\nexport const SignupAccountForm = inject(ApplicationStore.names.serverStore)(\n observer((props: TProps) => {\n const validateUniqueEntityId = async (value: string) => {\n // Force to say this is valid (i.e. in edit when the user cannot change their Unique Entity ID\n if (props.disabled?.includes('uniqueEntityId') && props.value.uniqueEntityId) {\n return undefined\n }\n\n try {\n const data = await props.serverStore?.checkUniqueEntity(value)\n return data ? undefined : 'InvalidUniqueEntityId'\n } catch (_e) {\n return 'ServerError'\n }\n }\n\n const craftInvalidMessage = (invalidReason: string) => {\n switch (invalidReason) {\n case 'InvalidUniqueEntityId':\n return (\n

\n Invalid Unique Entity Id. Please contact our support team at{' '}\n support@mobilizeignite.com.\n

\n )\n default:\n return 'Error validating Unique Entity ID. Please try again.'\n }\n }\n\n const accountNameInput = () => {\n if (props.isAccountNameHidden) {\n return\n }\n return (\n \n \n Account Name\n \n \n props.onChange({ ...props.value, name: value })}\n required\n validate={(v) => validateLength(v, 2)}\n renderInvalidMessage={() => 'Must be a minimum of 2 characters'}\n />\n \n \n )\n }\n\n return (\n <>\n {accountNameInput()}\n \n \n Unique Entity ID\n \n The SAM.GOV unique entity indentifier. A valid\n unique entity identifier is required for signup and only one account per unique\n entity identifier is supported within IGNITE.\n \n }\n placement={'right'}\n iconClassName={'fas fa-question-circle ms-2 text-primary'}\n />\n \n \n {\n props.onChange({ ...props.value, uniqueEntityId: value })\n }}\n validate={validateUniqueEntityId}\n makeValidationMessage={craftInvalidMessage}\n data-testid=\"signupUniqueEntityId\"\n placeholder={'Unique Entity ID'}\n disabled={props.disabled?.includes('uniqueEntityId')}\n />\n \n \n \n )\n }),\n)\n","/**\n * NOTE\n *\n * Deprecated\n *\n * This is gettting added temporarily until we recreate the ServerBackedAutoComplete in VCR (https://app.clickup.com/t/86dvpmveu)\n * Once that work is complete, this entire file can be removed.\n */\n\nimport React, { useState, useEffect, useRef, ReactNode, PropsWithChildren } from 'react'\nimport { useDebouncedCallback } from 'use-debounce'\nimport classnames from 'classnames'\nimport {\n PaginationData,\n PaginationParams,\n ServerPageData,\n Spinner,\n} from '@mobilizeyourtech/vision-core-react'\n\nimport './server-backed-autocomplete.scss'\n\nexport interface AutoCompleteItem {\n id: string | number\n label: string\n shortLabel?: string\n sublabel?: string\n categoryLabel?: string\n}\n\ntype InputProps = {\n id?: string\n label?: string\n required?: boolean\n requiredBreach?: boolean\n value?: any\n inputComponent?: any\n inputProps?: React.DetailedHTMLProps<\n React.InputHTMLAttributes,\n HTMLInputElement\n >\n className?: string\n maxLength?: number\n inputAriaLabel?: string\n}\n\nconst Input = (props: PropsWithChildren) => {\n const renderLabel = () => {\n return (\n
\n
\n \n {props.required && (Required)}\n
\n
\n )\n }\n\n return (\n
\n {!!props.label && renderLabel()}\n
\n {props.inputComponent}\n {
{props.children}
}\n
\n
\n )\n}\n\nexport interface ServerBackedAutoCompleteProps\n extends Omit<\n React.DetailedHTMLProps, HTMLElement>,\n 'onSelect'\n > {\n getDataFunction: (params: PaginationParams & { search?: string }) => Promise>\n onSelect: (selected: T | undefined) => void\n /**\n * @param {string} testId - ID used to target specific components in tests. This\n * attribute is added to several sub components within the ServerBackedAutoComplete:\n * - ${testId}-testid for the container div\n * - autocomplete-input${testId} for the input\n * - dropdown-item-loader${testId} for the loading spinner\n * - dropdown-item-error${testId} for the error loading message\n */\n testId?: string\n selected?: T\n placeholder?: string\n label?: string\n required?: boolean\n loadingBounceMs?: number // mainly just a test entry point\n searchDebounceMs?: number // default 500\n scrollDebounceMs?: number // default 200\n scrollLoadOffsetPx?: number // default 50\n clearInput?: boolean\n inputAriaLabel?: string\n ariaRequired?: boolean\n renderSelectItemContent?: (item: T) => ReactNode\n disabled?: boolean\n}\n\n// @deprecated - Remove and Replace usages once in VCR\nexport const ServerBackedAutoComplete = (\n props: ServerBackedAutoCompleteProps,\n) => {\n const [selectOptions, setSelectOptions] = useState | undefined>(undefined)\n const [lastPage, setLastPage] = useState(undefined)\n\n const [search, setSearchValue] = useState(undefined)\n\n const [optionsLoading, setOptionsLoading] = useState(false)\n const [isExtending, setIsExtending] = useState(false)\n const [loadingError, setLoadingError] = useState(undefined)\n\n const [isActive, setIsActive] = useState(false)\n const [requiredBreach, setRequiredBreach] = useState(false)\n\n const ref: any = useRef(null)\n const itemRefs = useRef>([])\n const inputRef = useRef(null)\n\n const handleTargetOutside = (e: MouseEvent | FocusEvent) => {\n if (ref.current && !ref.current.contains(e.target)) {\n setIsActive(false)\n inputRef.current && inputRef.current.blur()\n }\n }\n\n const handleEscape = ({ key: kypress }: KeyboardEvent) => {\n if (kypress === 'Escape') {\n setIsActive(false)\n inputRef.current && inputRef.current.blur()\n }\n }\n\n useEffect(() => {\n !props.selected && setSearchValue(undefined)\n }, [props.selected])\n\n useEffect(() => {\n if (isActive) {\n document.addEventListener('mousedown', handleTargetOutside)\n document.addEventListener('focusin', handleTargetOutside)\n document.addEventListener('keydown', handleEscape)\n }\n return () => {\n document.removeEventListener('mousedown', handleTargetOutside)\n document.removeEventListener('focusin', handleTargetOutside)\n document.removeEventListener('keydown', handleEscape)\n }\n }, [isActive])\n\n // Function to replace data (typically with a new search)\n const getData = (searchValue?: string) => {\n setOptionsLoading(true)\n return props\n .getDataFunction({\n page: 1,\n perPage: 10,\n search: searchValue === '' ? undefined : searchValue,\n })\n .then((page) => {\n setSelectOptions(page.data)\n setLastPage(page.pagination)\n })\n .catch((e) => {\n setLoadingError(e)\n })\n .finally(() => setTimeout(() => setOptionsLoading(false), props.loadingBounceMs || 200))\n }\n\n const debounceChange = useDebouncedCallback(\n // function\n (v) => getData(v),\n // delay in ms\n props.searchDebounceMs ? props.searchDebounceMs : 500,\n )\n\n // Function to extend data, typically on scroll with an existing search\n const extendData = async () => {\n try {\n setIsExtending(true)\n const page = await props.getDataFunction({\n // @ts-ignore\n page: lastPage.page + 1,\n perPage: 10,\n search: search === '' ? undefined : search,\n })\n\n setSelectOptions([...(selectOptions || []), ...page.data])\n setLastPage(page.pagination)\n } catch (e) {\n setLoadingError(e as any)\n } finally {\n setIsExtending(false)\n }\n }\n\n const onScrollBottom = () => {\n if (!isExtending && lastPage!.page !== lastPage!.pages) {\n extendData()\n }\n }\n\n const debouncedScroll = useDebouncedCallback(\n // function\n () => onScrollBottom(),\n // delay in ms\n props.scrollDebounceMs == null ? 200 : props.scrollDebounceMs,\n )\n\n const onScroll = (e: any) => {\n const offset = props.scrollLoadOffsetPx || 50\n if (e.target.scrollHeight - e.target.scrollTop >= e.target.clientHeight - offset) {\n debouncedScroll()\n }\n }\n\n const makeItemLabel = (item?: T) => {\n if (!item) {\n return undefined\n }\n return item.shortLabel ? `${item.shortLabel} - ${item.label}` : item.label\n }\n\n const renderOptionsContent = () => {\n if (selectOptions == null) {\n return \n } else if (optionsLoading) {\n return (\n \n \n \n )\n }\n\n if (selectOptions!.length === 0) {\n return No matches...\n }\n\n const renderSelectItem = (item: T, idx: number) => {\n return (\n {\n if (element) {\n itemRefs.current[idx] = element\n }\n }}\n onMouseDown={() => {\n setRequiredBreach(false)\n setSearchValue(item.label)\n props.onSelect && props.onSelect(item)\n setIsActive(false)\n }}\n onKeyDown={(e) => {\n let { key: kyprss } = e\n if (kyprss === 'Enter') {\n e.preventDefault()\n setRequiredBreach(false)\n setSearchValue(item.label)\n props.onSelect && props.onSelect(item)\n inputRef.current && inputRef.current.focus()\n setIsActive(false)\n } else if (kyprss === 'ArrowDown') {\n e.preventDefault()\n idx + 1 < itemRefs.current.length && itemRefs.current[idx + 1].focus()\n } else if (kyprss === 'ArrowUp' && idx === 0) {\n e.preventDefault()\n inputRef.current && inputRef.current.focus()\n } else if (kyprss === 'ArrowUp') {\n e.preventDefault()\n idx - 1 > -1 && itemRefs.current[idx - 1].focus()\n }\n }}\n >\n {props.renderSelectItemContent ? (\n props.renderSelectItemContent!(item)\n ) : (\n <>\n

{makeItemLabel(item)}

\n {item.sublabel && (\n {item.sublabel}\n )}\n \n )}\n \n )\n }\n\n let category: string | undefined\n\n return selectOptions.map((option, index) => {\n let divider\n\n if (option.categoryLabel && option.categoryLabel !== category) {\n divider = (\n \n {option.categoryLabel}\n \n )\n category = option.categoryLabel\n }\n\n return (\n <>\n {divider}\n {renderSelectItem(option, index)}\n \n )\n })\n }\n\n const renderOptions = () => {\n if (!isActive) {\n return null\n }\n\n return (\n
\n \n {renderOptionsContent()}\n\n {isExtending && !optionsLoading && (\n \n \n
\n )}\n {!!loadingError && (\n \n Error loading data...\n \n )}\n \n \n )\n }\n\n const clearSelect = () => {\n setSearchValue(undefined)\n props.onSelect(undefined)\n }\n\n return (\n <>\n \n \n {\n setIsActive(true)\n clearSelect()\n getData('')\n }}\n onBlur={() => {\n if (props.required && !props.selected) {\n setRequiredBreach(true)\n }\n }}\n onKeyDown={(e) => {\n const { key: kypress } = e\n if (kypress === 'ArrowDown') {\n e.preventDefault()\n itemRefs.current[0].focus()\n }\n }}\n onChange={({ target: { value } }) => {\n setSearchValue(value)\n props.onSelect(undefined)\n debounceChange(value)\n }}\n />\n }\n >\n {renderOptions()}\n \n {(props.selected || (selectOptions && selectOptions!.length === 0)) && !props.disabled && (\n clearSelect()}\n tabIndex={0}\n aria-label=\"Clear selection\"\n onKeyDown={({ key: kypress }) => {\n if (kypress === 'Enter') {\n clearSelect()\n }\n }}\n className=\"clear-button\"\n >\n \n
\n )}\n \n \n )\n}\n","import { PaginationParams, ServerPageData } from '@mobilizeyourtech/vision-core-react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore } from 'stores'\nimport classnames from 'classnames'\n\nimport {\n AutoCompleteItem,\n ServerBackedAutoComplete,\n ServerBackedAutoCompleteProps,\n} from 'components/custom/ServerBackedAutoComplete/ServerBackedAutoComplete'\nimport { GovUserOrganizationResponse } from 'stores/ServerStore'\nimport { GovUserOrganizationParams } from 'lib/types/Params'\n\nexport interface GovUserOrganizationAutoCompleteInputProps\n extends Omit<\n ServerBackedAutoCompleteProps,\n 'getDataFunction'\n > {\n getOrganizations: (\n params: GovUserOrganizationParams,\n ) => Promise>\n notificationStore?: NotificationStore\n}\n\nexport const GovUserOrganizationAutoCompleteInput = inject(\n ApplicationStore.names.notificationStore,\n)(\n observer(\n ({\n getOrganizations,\n notificationStore: _notificationStore,\n ...props\n }: GovUserOrganizationAutoCompleteInputProps) => {\n const loadOrganizations = (p: PaginationParams & { ids?: string }) => {\n return getOrganizations(p).then((res) => {\n return {\n data: res.data.map((i) => {\n return { ...i, label: i.name, categoryLabel: i.category }\n }),\n pagination: res.pagination,\n }\n })\n }\n\n return (\n \n )\n },\n ),\n)\n","import React from 'react'\nimport { CCol, CFormLabel, CRow } from '@coreui/react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore, ServerStore } from '../../../stores'\nimport { GovUserExtendedDataFormData } from './types'\nimport { GovUserOrganizationAutoCompleteInput } from 'components/Molecules/AutoCompleteInputs/GovUserOrganizationAutoCompleteInput/GovUserOrganizationAutoCompleteInput'\n\nexport interface GovUserExtendedDataOrganizationFormProps {\n value: Partial\n onChange: (value: Partial) => void\n serverStore?: ServerStore\n notificationStore?: NotificationStore\n}\nexport const GovUserExtendedDataOrganizationForm = inject(\n ApplicationStore.names.serverStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: GovUserExtendedDataOrganizationFormProps) => {\n return (\n <>\n \n \n Organization Name\n \n \n {\n return props.serverStore!.getGovUserOrganizations({\n ...p,\n eager: 'category',\n sort: 'category',\n })\n }}\n selected={props.value.govUserOrganization}\n onSelect={(value) => {\n props.onChange({\n govUserOrganization: value,\n })\n }}\n required\n />\n \n \n \n )\n }),\n)\n","import React from 'react'\nimport { CCol, CFormInput, CFormLabel, CRow } from '@coreui/react'\nimport { SingleImageUploader, TimezoneSelect, ValidatedCFormInput } from '../../custom'\nimport { validateLength } from '../../../lib/helpers/validation'\nimport { ITimezone } from '../../../lib/time'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore, ServerStore } from '../../../stores'\nimport { SocialMediaAccountsForm, SocialMediaFormData } from './SocialMediaAccountsForm'\n\nexport type SignupUserData = {\n firstName: string\n lastName: string\n title: string\n cellPhone: string\n workPhone?: string\n workPhoneExt?: string\n timezone: ITimezone\n socialMedia?: Array\n headshot: File | string | undefined\n}\n\ntype TProps = {\n value: Partial\n onChange: (value: Partial) => void\n serverStore?: ServerStore\n notificationStore?: NotificationStore\n isGovUser?: boolean\n}\nexport const SignupUserForm = inject(\n ApplicationStore.names.serverStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const defaultCharLengthMessage = 'Must be a minimum of 2 characters'\n\n const firstNameRow = () => {\n return (\n \n \n First Name\n \n \n {\n props.onChange({ firstName: value })\n }}\n required\n validate={(v) => validateLength(v, 2)}\n renderInvalidMessage={() => defaultCharLengthMessage}\n />\n \n \n )\n }\n const lastNameRow = () => {\n return (\n \n \n Last Name\n \n \n props.onChange({ lastName: value })}\n required\n validate={(v) => validateLength(v, 2)}\n renderInvalidMessage={() => defaultCharLengthMessage}\n />\n \n \n )\n }\n const headShotRow = () => {\n return (\n \n Profile Image\n \n {\n props.onChange({ headshot: file })\n }}\n value={props.value.headshot}\n />\n \n \n )\n }\n const titleRow = () => {\n return (\n \n \n {props.isGovUser ? 'Duty Title/Rank' : 'Title'}\n \n \n props.onChange({ title: value })}\n required\n validate={(v) => validateLength(v, 2)}\n renderInvalidMessage={() => defaultCharLengthMessage}\n />\n \n\n \n
Example:
\n
    \n
  • Assured PNT Lead
  • \n
  • Supervisory Engineer Automated Test System Division
  • \n
\n
\n
\n )\n }\n const timeZoneRow = () => {\n return (\n \n \n Timezone\n \n \n {\n props.onChange({ timezone: v })\n }}\n />\n \n \n )\n }\n const contactInfoInputs = () => {\n return (\n <>\n \n \n Mobile Phone\n \n \n props.onChange({ cellPhone: value })}\n required\n /* TODO valid phone */\n validate={(v) => validateLength(v, 2)}\n renderInvalidMessage={() => defaultCharLengthMessage}\n />\n \n \n \n \n Work Phone\n \n \n props.onChange({ workPhone: value })}\n />\n \n \n Work Extension\n \n \n props.onChange({ workPhoneExt: value })}\n />\n \n \n \n props.onChange({ socialMedia: change })}\n />\n \n \n )\n }\n\n return (\n <>\n {firstNameRow()}\n {lastNameRow()}\n {headShotRow()}\n\n {timeZoneRow()}\n {titleRow()}\n {!props.isGovUser && contactInfoInputs()}\n \n )\n }),\n)\n","import { CCol, CFormLabel, CRow, CFormFeedback } from '@coreui/react'\nimport {\n validateEmail,\n validatePassword,\n validateValueMatch,\n} from '../../../lib/helpers/validation'\nimport { AsyncValidatedTextInput, IconPopover, ValidatedCFormInput } from '../../custom'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore } from '../../../stores'\n\nexport type SignupLoginData = {\n email: string\n password: string\n confirmPassword: string\n emailValid: boolean\n}\n\ntype TProps = {\n value: Partial\n onChange: (value: Partial) => void\n isEmailHidden?: boolean\n disableEmail?: boolean\n isVisionUser?: boolean\n applicationStore?: ApplicationStore\n openConnectVisionAccountModal?: () => void\n visionAccountConnected?: boolean\n}\n\nexport const SignupLoginForm = inject('applicationStore')(\n observer((props: TProps) => {\n const onEmailChange = async (email: string | undefined) => {\n if (!email) {\n return props.onChange({ email, emailValid: false })\n }\n\n const emailValidReason = await asyncValidateEmail(email)\n return props.onChange({ email, emailValid: emailValidReason == null })\n }\n\n const asyncValidateEmail = async (email: string) => {\n if (props.disableEmail) {\n return\n }\n\n const syncValidation = validateEmail(email)\n if (syncValidation) {\n return syncValidation\n }\n\n if (!props.isVisionUser) {\n const { value } = await props.applicationStore!.checkSignupUserEmail(email)\n if (!value) {\n return 'disallowed_email'\n }\n }\n }\n\n const makeEmailValidationMessage = (reason: string): string => {\n if (reason === 'invalid_email') {\n return 'Provide a valid email'\n } else if (reason === 'disallowed_email') {\n return 'This email is not currently allowed for Ignite government user signup. Please contact support to request access.'\n }\n return ''\n }\n\n const emailInput = () => {\n if (props.isEmailHidden) {\n return\n }\n return (\n \n \n Email\n \n \n \n {/* Toggle-able helper text */}\n {!props.visionAccountConnected && (\n \n \n Connect your VISION account to IGNITE\n \n \n )}\n \n E-mail addresses will never be shared or displayed to a small business or other IGNITE\n users.\n \n \n \n )\n }\n\n return (\n <>\n {emailInput()}\n \n \n Password\n \n Must be at least 6 characters, contain at least one capital and lowercase letter,\n number, and special character (#?!@$%^&*-)\n \n }\n placement={'right'}\n iconClassName={'fas fa-question-circle ms-2 text-primary'}\n />\n \n\n \n props.onChange({ password })}\n required\n validate={(v) => validatePassword(v, 6)}\n renderInvalidMessage={() =>\n 'Must be at least 6 characters, contain at least one capital and lowercase letter, number, and special character (#?!@$%^&*-)'\n }\n />\n \n \n \n \n \n Confirm Password\n \n\n \n \n props.onChange({ confirmPassword })\n }\n validate={(v) => validateValueMatch(props.value.password, v)}\n renderInvalidMessage={() => 'Passwords must match'}\n />\n \n \n \n )\n }),\n)\n","import { CCol, CFormLabel, CRow } from '@coreui/react'\nimport React from 'react'\nimport { IconPopover, ValidatedCFormInput } from '../../custom'\nimport { validateEmail, validateLength } from '../../../lib/helpers/validation'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore, ServerStore } from '../../../stores'\n\nexport type ClaimRequestFormData = {\n firstName: string\n lastName: string\n email: string\n}\n\ntype TProps = {\n value: Partial\n onChange: (value: Partial) => void\n serverStore?: ServerStore\n notificationStore?: NotificationStore\n}\nexport const ClaimRequestForm = inject(\n ApplicationStore.names.serverStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const onChange = (change: Partial) =>\n props.onChange({ ...props.value, ...change })\n\n const defaultCharLengthMessage = 'Must be a minimum of 2 characters'\n\n return (\n <>\n \n \n Email\n \n To be eligible to claim an existing account, you must submit the claim request\n using an email that matches available PI/POC data records from previously awarded\n contracts or that matches the same domain as the associated entity data from{' '}\n SAM.GOV or{' '}\n SBIR.GOV. After submitting the claim, you\n will be required to verify you are the owner of this email. If you are unable,\n please contact support to request a path to access.\n \n }\n placement={'right'}\n iconClassName={'fas fa-question-circle ms-2 text-primary'}\n />\n \n\n \n {\n onChange({ email })\n }}\n validate={validateEmail}\n renderInvalidMessage={() => 'Provide a valid email'}\n />\n \n \n \n \n First Name\n \n \n {\n onChange({ firstName: value })\n }}\n required\n validate={(v) => validateLength(v, 2)}\n renderInvalidMessage={() => defaultCharLengthMessage}\n />\n \n \n \n \n Last Name\n \n \n onChange({ lastName: value })}\n required\n validate={(v) => validateLength(v, 2)}\n renderInvalidMessage={() => defaultCharLengthMessage}\n />\n \n \n \n )\n }),\n)\n","import { CButton, CCol, CForm, CFormLabel, CRow } from '@coreui/react'\nimport { inject, observer } from 'mobx-react'\nimport React, { FormEvent, useState } from 'react'\nimport { validateEmail } from '../../lib/helpers/validation'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../../stores'\nimport { ValidatedCFormInput } from '../custom'\n\ntype TProps = {\n userStore?: UserStore\n notificationStore?: NotificationStore\n authStore?: AuthStore\n onSubmitted?: () => void\n}\nexport const ChangeEmailForm = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.authStore,\n)(\n observer((props: TProps) => {\n const [hasValidated, setHasValidated] = useState(false)\n const [isSubmitting, setIsSubmitting] = useState(false)\n const [email, setEmail] = useState('')\n\n const onSubmit = (e: FormEvent) => {\n e.preventDefault()\n\n setHasValidated(true)\n setIsSubmitting(true)\n props.userStore\n ?.changeEmail(email!)\n .then((data) => {\n props.onSubmitted && props.onSubmitted()\n setTimeout(() => props.userStore?.setCurrentUserData(data), 500)\n props.notificationStore?.setNotificationMessage(\n `Email confirmation has been sent to ${email}`,\n 'success',\n 3000,\n )\n setIsSubmitting(false)\n })\n .catch((err) => {\n setIsSubmitting(false)\n props.notificationStore?.setNotificationMessage(\n 'Failed to change email, please try again.',\n 'danger',\n 3000,\n )\n })\n }\n\n const resendEmail = (unconfirmedEmail: string) => {\n setIsSubmitting(true)\n props.userStore\n ?.changeEmail(unconfirmedEmail)\n .then((data) => {\n props.onSubmitted && props.onSubmitted()\n setTimeout(() => props.userStore?.setCurrentUserData(data), 500)\n props.notificationStore?.setNotificationMessage(\n `Email confirmation has been sent to ${unconfirmedEmail}`,\n 'success',\n 3000,\n )\n setIsSubmitting(false)\n })\n .catch((err) => {\n setIsSubmitting(false)\n props.notificationStore?.setNotificationMessage(\n 'Failed to change email, please try again.',\n 'danger',\n 3000,\n )\n })\n }\n\n const cancelEmailChange = () => {\n setIsSubmitting(true)\n props.userStore\n ?.cancelEmailChange()\n .then((data) => {\n props.onSubmitted && props.onSubmitted()\n props.notificationStore?.setNotificationMessage(\n `Change email has been undone`,\n 'success',\n 3000,\n )\n setTimeout(() => props.userStore?.setCurrentUserData(data), 500)\n setIsSubmitting(false)\n })\n .catch(() => {\n setIsSubmitting(false)\n props.notificationStore?.setNotificationMessage(\n 'Failed to undo change email. Please try again.',\n 'danger',\n 3000,\n )\n })\n }\n\n const isSubmittable = () => {\n return !validateEmail(email)\n }\n\n const emailForm = () => {\n return (\n
\n \n \n

\n An email will be sent to the requested email. Until it is confirmed, you will use\n your current email for logging in.\n

\n
\n \n \n Email\n \n\n \n {\n setEmail(email)\n }}\n validate={validateEmail}\n renderInvalidMessage={() => 'Provide a valid email'}\n />\n \n \n\n \n \n \n {isSubmitting ? (\n \n ) : (\n \n )}\n Change email\n \n \n \n \n
\n )\n }\n\n const unconfirmedForm = () => {\n return (\n
\n \n

\n A confirmation email has been sent to{' '}\n {props.userStore?.currentUserData?.unconfirmedEmail}\n

\n
\n \n resendEmail(props.userStore?.currentUserData?.unconfirmedEmail!)}\n >\n \n Resend Confirmation\n \n \n \n Undo Change Email\n \n \n
\n )\n }\n\n const determineContent = () => {\n if (props.userStore?.currentUserData?.unconfirmedEmail) {\n return unconfirmedForm()\n } else {\n return emailForm()\n }\n }\n\n return (\n
\n {determineContent()}\n
\n )\n }),\n)\n","import React, { FormEvent, useState } from 'react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { CButton, CCol, CForm, CFormLabel, CRow } from '@coreui/react'\nimport { IconPopover, ValidatedCFormInput } from '../custom'\nimport { validateLength, validatePassword, validateValueMatch } from '../../lib/helpers/validation'\nimport { ChangePasswordData } from '../../stores/UserStore'\nimport { extractRestfulError } from '../../lib/errors/utils'\n\ntype TProps = {\n userStore?: UserStore\n notificationStore?: NotificationStore\n authStore?: AuthStore\n onSubmitted?: () => void\n}\nexport const ChangePasswordForm = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.authStore,\n)(\n observer((props: TProps) => {\n const [formData, setFormData] = useState>({})\n const [hasValidated, setHasValidated] = useState(false)\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const isSubmittable = (): boolean => {\n let errors = [\n validateLength(formData.currentPassword, 6),\n validatePassword(formData.password, 6),\n validateValueMatch(formData.password, formData.passwordConfirmation),\n ]\n\n if (errors.some((err) => !!err)) {\n return false\n }\n\n return true\n }\n\n const onSubmit = (e: FormEvent) => {\n e.preventDefault()\n\n setHasValidated(true)\n setIsSubmitting(true)\n props.userStore\n ?.changePassword(formData as ChangePasswordData)\n .then(() => {\n setTimeout(() => {\n // auth store salt to reload data\n setIsSubmitting(false)\n props.authStore?.generateAndSetSalt()\n props.notificationStore?.setNotificationMessage(\n 'Password changed successfully.',\n 'success',\n 3000,\n )\n props.onSubmitted && props.onSubmitted()\n }, 500)\n })\n .catch((err) => {\n const e = extractRestfulError(err)\n setIsSubmitting(false)\n props.notificationStore?.setNotificationMessage(\n e && e.status === 400 ? e.message : 'Failed to change password, please try again.',\n 'danger',\n 3000,\n )\n })\n }\n\n const onChange = (change: Partial) =>\n setFormData({ ...formData, ...change })\n\n return (\n
\n \n \n \n Current Password\n \n\n \n onChange({ currentPassword })}\n required\n validate={(v) => validatePassword(v, 6)}\n renderInvalidMessage={() => undefined}\n />\n \n \n \n \n New Password\n \n Must be at least 6 characters, contain at least one capital and lowercase\n letter, number, and special character (#?!@$%^&*-)\n \n }\n placement={'right'}\n iconClassName={'fas fa-question-circle ms-2 text-primary'}\n />\n \n\n \n onChange({ password: newPassword })}\n validate={(v) => validatePassword(v, 6)}\n renderInvalidMessage={() =>\n 'Must be at least 6 characters, contain at least one capital and lowercase letter, number, and special character (#?!@$%^&*-)'\n }\n />\n \n \n\n \n \n Confirm New Password\n \n\n \n \n onChange({ passwordConfirmation: confirmNewPassword })\n }\n validate={(v) => validateValueMatch(formData.password, v)}\n renderInvalidMessage={() => 'New passwords must match'}\n />\n \n \n\n \n \n \n {isSubmitting ? (\n \n ) : (\n \n )}\n Save\n \n \n \n \n
\n )\n }),\n)\n","import React, { FormEvent, useState } from 'react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { SignupAccountData, SignupAccountForm } from './fragments'\nimport { CButton, CCol, CForm, CRow } from '@coreui/react'\nimport { validateLength } from '../../lib/helpers/validation'\n\ntype TProps = {\n userStore?: UserStore\n notificationStore?: NotificationStore\n authStore?: AuthStore\n onSubmitted?: () => void\n}\n\nexport const EditAccountForm = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.authStore,\n)(\n observer((props: TProps) => {\n const [formData, setFormData] = useState>({\n name: props.userStore?.currentAccountData?.name,\n uniqueEntityId: props.userStore?.currentAccountData?.uniqueEntityId,\n })\n const [hasValidated, setHasValidated] = useState(false)\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const isSubmittable = (): boolean => {\n let nameError = validateLength(formData.name, 2)\n\n if (nameError) {\n return false\n }\n\n return [formData.name].every((e) => !!e)\n }\n\n const onSubmit = (e: FormEvent) => {\n e.preventDefault()\n\n setHasValidated(true)\n setIsSubmitting(true)\n props.userStore\n ?.updateAccount({\n name: formData.name!,\n })\n .then(() => {\n setTimeout(() => {\n // auth store salt to reload data\n setIsSubmitting(false)\n props.authStore?.generateAndSetSalt()\n props.notificationStore?.setNotificationMessage(\n 'Account updated successfully.',\n 'success',\n 3000,\n )\n props.onSubmitted && props.onSubmitted()\n }, 500)\n })\n .catch(() => {\n setIsSubmitting(false)\n props.notificationStore?.setNotificationMessage(\n 'Failed to update account, please try again.',\n 'danger',\n 3000,\n )\n })\n }\n\n return (\n
\n \n setFormData(v)}\n disabled={['uniqueEntityId']}\n />\n\n \n \n \n {isSubmitting ? (\n \n ) : (\n \n )}\n Save\n \n \n \n \n
\n )\n }),\n)\n","import React, { FormEvent, useState } from 'react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { GovUserExtendedDataOrganizationForm, SignupUserData, SignupUserForm } from './fragments'\nimport { CButton, CCol, CForm, CRow } from '@coreui/react'\nimport { getTimezoneOptions, parseTimezone } from '../../lib/time'\nimport { validateLength } from '../../lib/helpers/validation'\nimport { hasGovRole } from '../../stores/UserStore'\nimport { GovUserExtendedDataFormData } from './fragments/types'\nimport { GovUserExtendedDataProfileForm } from './fragments/GovUserExtendedDataProfileForm'\n\ntype TProps = {\n userStore?: UserStore\n notificationStore?: NotificationStore\n authStore?: AuthStore\n onSubmitted?: () => void\n}\n\nexport const EditProfileForm = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.authStore,\n)(\n observer(({ userStore, ...props }: TProps) => {\n const isGovUser = hasGovRole(userStore?.currentUserData!)\n\n const [formData, setFormData] = useState>({\n firstName: userStore?.currentUserData?.firstName,\n lastName: userStore?.currentUserData?.lastName,\n title: userStore?.currentUserData?.title,\n cellPhone: userStore?.currentUserData?.cellPhone,\n workPhone: userStore?.currentUserData?.workPhone,\n workPhoneExt: userStore?.currentUserData?.workPhoneExt,\n timezone: parseTimezone(userStore!.currentUserData!.timezone, getTimezoneOptions('original')),\n headshot: userStore?.currentUserData?.headshot?.path,\n socialMedia: userStore?.currentUserData?.socialMediaAccounts,\n })\n const [govUserExtendedFormData, setGovUserExtendedFormData] = useState<\n Partial | undefined\n >(\n isGovUser\n ? {\n govUserOrganization:\n userStore!.currentUserData!.govUserExtendedData!.govUserOrganization,\n technologyTypes: userStore?.currentUserData?.technologyTypes?.map((r) => {\n return { ...r, label: r.name, destroyable: true }\n }),\n profileDetail: userStore?.currentUserData?.govUserExtendedData?.profileDetail,\n interactionDetail: userStore?.currentUserData?.govUserExtendedData?.interactionDetail,\n linesOfEffort:\n !userStore?.currentUserData?.govUserExtendedData?.linesOfEffort ||\n userStore?.currentUserData?.govUserExtendedData?.linesOfEffort.length === 0\n ? [{ details: '' }]\n : userStore.currentUserData.govUserExtendedData.linesOfEffort,\n govUserClassifications:\n userStore?.currentUserData?.govUserExtendedData?.govUserClassifications?.map(\n (classification) => {\n return {\n ...classification,\n categoryLabel: classification.govUserClassificationCategory\n ? classification.govUserClassificationCategory.name\n : 'Other',\n subLabel: classification.description,\n destroyable: true,\n }\n },\n ),\n location: {\n city: userStore?.currentUserData?.govUserExtendedData?.city,\n stateOrProvince: userStore?.currentUserData?.govUserExtendedData?.stateOrProvince,\n country: userStore?.currentUserData?.govUserExtendedData?.country,\n },\n govEmployeeSinceYear:\n userStore?.currentUserData?.govUserExtendedData?.govEmployeeSinceYear,\n }\n : undefined,\n )\n const [hasValidated, setHasValidated] = useState(false)\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const onSubmit = (e: FormEvent) => {\n e.preventDefault()\n\n setHasValidated(true)\n setIsSubmitting(true)\n\n const govUserExtendedDataAttributes = isGovUser\n ? {\n govUserOrganizationId: govUserExtendedFormData!.govUserOrganization!.id,\n profileDetail: govUserExtendedFormData!.profileDetail,\n interactionDetail: govUserExtendedFormData!.interactionDetail,\n linesOfEffort: govUserExtendedFormData!.linesOfEffort!,\n govUserClassifications: govUserExtendedFormData?.govUserClassifications,\n city: govUserExtendedFormData?.location?.city,\n stateOrProvince: govUserExtendedFormData?.location?.stateOrProvince,\n country: govUserExtendedFormData?.location?.country,\n govEmployeeSinceYear: govUserExtendedFormData?.govEmployeeSinceYear,\n }\n : undefined\n\n userStore\n ?.updateUser({\n firstName: formData.firstName!,\n lastName: formData.lastName!,\n title: formData.title!,\n cellPhone: isGovUser ? undefined : formData.cellPhone,\n workPhone: isGovUser ? undefined : formData.workPhone,\n workPhoneExt: isGovUser ? undefined : formData.workPhoneExt,\n timezone:\n typeof formData.timezone === 'string' ? formData.timezone : formData.timezone!.value,\n headshot: formData.headshot instanceof File ? formData.headshot : undefined,\n // TODO destroy semantics,\n socialMedia: isGovUser\n ? undefined\n : formData.socialMedia?.map((sm) => {\n return {\n ...sm,\n destroy: (sm as any).id && !sm.identifier ? true : undefined,\n }\n }),\n govUserExtendedDataAttributes,\n technologyTypes: isGovUser ? govUserExtendedFormData!.technologyTypes : undefined,\n })\n .then(() => {\n setTimeout(() => {\n // auth store salt to reload data\n setIsSubmitting(false)\n props.authStore?.generateAndSetSalt()\n props.notificationStore?.setNotificationMessage(\n 'Profile updated successfully.',\n 'success',\n 3000,\n )\n props.onSubmitted && props.onSubmitted()\n }, 500)\n })\n .catch(() => {\n setIsSubmitting(false)\n props.notificationStore?.setNotificationMessage(\n 'Failed to update profile, please try again.',\n 'danger',\n 3000,\n )\n })\n }\n\n const isSubmittable = (): boolean => {\n let errors = [\n validateLength(formData.firstName, 2),\n validateLength(formData.lastName, 2),\n validateLength(formData.title, 2),\n ]\n\n if (isGovUser) {\n if (!govUserExtendedFormData?.govUserOrganization?.id) {\n return false\n }\n\n if (\n !govUserExtendedFormData?.technologyTypes ||\n govUserExtendedFormData.technologyTypes.length < 1 ||\n govUserExtendedFormData.technologyTypes.every((tt) => tt.destroy) ||\n !govUserExtendedFormData?.govUserClassifications ||\n govUserExtendedFormData.govUserClassifications.length < 1 ||\n govUserExtendedFormData.govUserClassifications.every((c) => c.destroy) ||\n !govUserExtendedFormData?.linesOfEffort ||\n govUserExtendedFormData.linesOfEffort.length < 1 ||\n govUserExtendedFormData.linesOfEffort.every(\n (loe) => loe.destroy || loe.details.trim() === '',\n )\n ) {\n return false\n }\n\n errors.push(\n validateLength(govUserExtendedFormData?.profileDetail?.replace(/<[^>]*>/g, ''), 2),\n )\n } else {\n errors.push(\n // TODO: Validate phone\n validateLength(formData.cellPhone, 2),\n )\n\n formData.socialMedia &&\n formData.socialMedia.forEach((socialAccount) => {\n if (socialAccount.identifier.length === 1) {\n errors.push(validateLength(socialAccount.identifier, 2))\n }\n })\n }\n\n if (errors.some((err) => !!err)) {\n return false\n }\n\n return [formData.timezone].every((e) => !!e)\n }\n\n return (\n
\n \n {isGovUser && (\n \n \n {\n setGovUserExtendedFormData((prev) => ({\n ...prev,\n ...value,\n }))\n }}\n />\n \n \n )}\n {\n setFormData((prev) => ({ ...prev, ...v }))\n }}\n isGovUser={isGovUser}\n />\n {isGovUser && (\n \n \n {\n setGovUserExtendedFormData((prev) => ({\n ...prev,\n ...value,\n }))\n }}\n />\n \n \n )}\n \n \n \n {isSubmitting ? (\n \n ) : (\n \n )}\n Save\n \n \n \n \n
\n )\n }),\n)\n","import React, { useState } from 'react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { CCol, CForm, CFormInput, CFormLabel, CRow } from '@coreui/react'\nimport { SuspensefulButton } from '@mobilizeyourtech/vision-core-react'\nimport {\n isResendClaimFormDataAlternative,\n ResendClaimFormData,\n ResendClaimFormDataAlternative,\n} from '../../stores/UserStore'\n\ntype TProps = {\n userStore?: UserStore\n notificationStore?: NotificationStore\n authStore?: AuthStore\n formData: ResendClaimFormData | ResendClaimFormDataAlternative\n}\nexport const ResendClaimForm = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.authStore,\n)(\n observer((props: TProps) => {\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const onSubmit = () => {\n setIsSubmitting(true)\n\n props\n .userStore!.resendClaim(props.formData)\n .then(({ ...claimdata }) => {\n setIsSubmitting(false)\n props.notificationStore?.setNotificationMessage(\n 'Claim email has been resent.',\n 'success',\n 3000,\n )\n })\n .catch((error) => {\n setIsSubmitting(false)\n props.notificationStore?.setNotificationMessage(\n 'Failed to resend claim email, please try again.',\n 'danger',\n 3000,\n )\n })\n }\n\n return (\n
\n \n {isResendClaimFormDataAlternative(props.formData) && (\n <>\n \n \n \n Unique Entity Id\n \n \n \n \n \n \n \n Email\n \n \n \n \n \n )}\n\n \n \n \n Resend\n \n \n \n \n
\n )\n }),\n)\n","import React from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ServerStore, NotificationStore } from '../../../../stores'\nimport { PaginatedSearchableParams } from '../../../../lib/types/Params'\nimport {\n isDirtySelectableItem,\n SelectableItem,\n ServerBackedMultiSelectAutoComplete,\n} from '@mobilizeyourtech/vision-core-react'\nimport { ListingArtifactTechnologyType } from '../../../../stores/ListingStore'\nimport { TechnologyTypeResponse } from '../../../../stores/ServerStore'\n\ntype TProps = {\n serverStore?: ServerStore\n notificationStore?: NotificationStore\n selected: Array<(ListingArtifactTechnologyType & SelectableItem) | TechnologyTypeResponse>\n onChange: (\n nc: Array<(ListingArtifactTechnologyType & SelectableItem) | TechnologyTypeResponse>,\n ) => void\n}\n\nexport const ListingArtifactTechnologyFocusAreas = inject(\n ApplicationStore.names.serverStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const getTechnologyFocusAreas = (params: PaginatedSearchableParams) => {\n return props.serverStore!.getTechnologyTypes(params).then((response) => ({\n pagination: response.pagination,\n data: response.data.map((r) => {\n return { ...r, label: r.name }\n }),\n }))\n }\n\n const getSelectedTechnologyFocusAreas = () => {\n return props.selected.map((t) => {\n return { ...t, label: t.name }\n })\n }\n\n return (\n
\n \n // DirtySelectableItem is only possible if allowDirty were set to tru\n props.onChange(\n change.filter((e) => !isDirtySelectableItem(e)) as Array<\n ListingArtifactTechnologyType & SelectableItem\n >,\n )\n }\n selections={getSelectedTechnologyFocusAreas()}\n placeholder={'Search and select multiple technologies'}\n className=\"technology-focus-areas\"\n data-testid={'technology-focus-areas-select'}\n />\n
\n )\n }),\n)\n","import { CCol, CFormLabel, CRow } from '@coreui/react'\nimport { SingleImageUploader, ValidatedCFormInput, ValidatedCFormTextArea } from '../../../custom'\nimport { validateLength, validateWebsite } from '../../../../lib/helpers/validation'\nimport {\n isServerFileData,\n SelectableItem,\n ServerFileData,\n} from '@mobilizeyourtech/vision-core-react'\nimport { titleCase } from '../../../../lib/helpers/utils'\nimport DatePicker from 'react-date-picker'\nimport { ListingArtifactTechnologyType } from '../../../../stores/ListingStore'\nimport { ListingArtifactTechnologyFocusAreas } from '.'\nimport { TechnologyTypeResponse } from '../../../../stores/ServerStore'\n\nexport interface GenericListingArtifactFormData {\n name: string\n description: string\n url?: string\n logo?: File | ServerFileData\n startDate?: string\n endDate?: string\n listingArtifactTechnologyTypesAttributes?: Array<\n (ListingArtifactTechnologyType & SelectableItem) | TechnologyTypeResponse\n >\n}\nexport const extractGenericListingArtifactFormData = ({\n name,\n description,\n url,\n logo,\n startDate,\n endDate,\n listingArtifactTechnologyTypesAttributes,\n}: T & Partial) => ({\n name,\n description,\n url,\n logo,\n startDate,\n endDate,\n listingArtifactTechnologyTypesAttributes,\n})\n\nexport interface GenericListingArtifactFormFragmentProps {\n formData: Partial\n onChange: (change: Partial) => void\n artifact: 'product' | 'service' | 'use case'\n}\nexport const GenericListingArtifactFormFragment = (\n props: GenericListingArtifactFormFragmentProps,\n) => {\n const renderDatePicker = (label: string, formKey: string, value?: string) => {\n return (\n <>\n \n {label}\n \n \n \n props.onChange({ ...props.formData, [formKey]: date?.toISOString() })\n }\n value={value ? new Date(value) : undefined}\n openCalendarOnFocus={false}\n className=\"calendar\"\n />\n \n \n )\n }\n\n return (\n <>\n \n \n Name\n \n \n validateLength(v, 2)}\n onChange={(v) => props.onChange({ ...props.formData, name: v })}\n renderInvalidMessage={() => 'Must be a minimum of 2 characters'}\n placeholder={`${titleCase(props.artifact)} name`}\n />\n \n \n\n \n \n Description\n \n \n props.onChange({ ...props.formData, description: value })}\n value={props.formData.description || ''}\n validate={(v) => validateLength(v, 2)}\n renderInvalidMessage={() => 'Must be at least 2 characters'}\n required\n />\n \n \n\n \n \n Url\n \n \n props.onChange({ ...props.formData, url: value })}\n value={props.formData.url || ''}\n validate={(v) => validateWebsite(v)}\n renderInvalidMessage={() => 'Invalid url'}\n placeholder={`${titleCase(props.artifact)} website or url`}\n />\n \n \n {props.artifact !== 'use case' && (\n \n \n Technology Types\n \n \n \n props.onChange({\n ...props.formData,\n listingArtifactTechnologyTypesAttributes: change,\n })\n }\n />\n \n \n )}\n\n {props.artifact === 'use case' && (\n \n {renderDatePicker('Start Date', 'startDate', props.formData.startDate)}\n {renderDatePicker('End Date', 'endDate', props.formData.endDate)}\n \n )}\n\n \n Logo\n \n props.onChange({ ...props.formData, logo: f })}\n value={\n props.formData.logo && isServerFileData(props.formData.logo)\n ? props.formData.logo.path\n : props.formData.logo\n }\n />\n \n \n \n )\n}\n","import {\n extractGenericListingArtifactFormData,\n GenericListingArtifactFormData,\n GenericListingArtifactFormFragment,\n} from './fragments/listing/GenericListingArtifact'\nimport { Wizard, WizardStepProps } from '@mobilizeyourtech/vision-core-react'\nimport {\n BulkAttachments,\n ListingArtifactAttachmentFormData,\n} from './fragments/listing/BulkAttachments'\nimport { BulkLinks, ListingArtifactLinkFormData } from './fragments/listing/BulkLinks'\nimport { useMemo } from 'react'\nimport { titleCase } from '../../lib/helpers/utils'\nimport { validateLength, validateWebsite } from '../../lib/helpers/validation'\n\nexport type ListingArtifactFormData = GenericListingArtifactFormData & {\n listingArtifactAttachmentsAttributes?: Array\n listingArtifactLinksAttributes?: Array\n}\nexport interface GenericListingArtifactFormFragmentProps {\n formData: Partial\n onChange: (change: Partial) => void\n submittable?: boolean // Meaning should this wizard expose the submit button or should it be controlled above this?\n artifact: 'product' | 'service' | 'use case'\n}\n\nexport const isListingArtifactSubmittable = (formData: Partial) => {\n // Required fields\n const required = [formData.name].every((f) => !!f)\n const valid = [\n validateLength(formData.name, 2),\n validateLength(formData.description, 2),\n formData.url ? validateWebsite(formData.url) : undefined,\n ].every((v) => !v)\n\n const validAttachments = formData.listingArtifactAttachmentsAttributes\n ? formData.listingArtifactAttachmentsAttributes?.every((v) => !!v.file)\n : true\n const validLinks = formData.listingArtifactLinksAttributes\n ? formData.listingArtifactLinksAttributes?.every((v) => !validateWebsite(v.url) && !!v.name)\n : true\n\n return required && valid && validAttachments && validLinks\n}\n\nexport const ListingArtifactFormWizard = (props: GenericListingArtifactFormFragmentProps) => {\n const steps = useMemo(\n () => [\n {\n label: titleCase(props.artifact),\n render: (_props: WizardStepProps>) => (\n _props.onChange({ ..._props.formData, ...change })}\n />\n ),\n },\n {\n label: 'Files',\n render: (_props: WizardStepProps>) => (\n \n _props.onChange({ ..._props.formData, listingArtifactAttachmentsAttributes: change })\n }\n />\n ),\n },\n {\n label: 'Links',\n render: (_props: WizardStepProps>) => (\n \n _props.onChange({ ..._props.formData, listingArtifactLinksAttributes: change })\n }\n />\n ),\n },\n ],\n [props.artifact],\n )\n\n return (\n
\n {}}\n onFormDataChange={props.onChange}\n canComplete={isListingArtifactSubmittable}\n submittable={false}\n />\n
\n )\n}\n","import { useState, useEffect } from 'react'\nimport { ApplicationStore, ListingStore, NotificationStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { PropsWithChildren } from 'react'\nimport { CModalBody, CModalFooter } from '@coreui/react'\nimport {\n CustomModal,\n SuspensefulButton,\n SuspensionBoundary,\n} from '@mobilizeyourtech/vision-core-react'\nimport {\n isListingArtifactSubmittable,\n ListingArtifactFormWizard,\n ListingArtifactFormData,\n} from './ListingArtifactFormWizard'\nimport { isUseCase, ListingServiceProductData, ListingUseCaseData } from '../../stores/ListingStore'\nimport { capitalizeFirstLetter, titleCase } from '../../lib/helpers/utils'\n\nexport type ListingArtifactFormModalProps = {\n listingId: string\n artifact: 'product' | 'service' | 'use case'\n method: 'get' | 'create' | 'update'\n onSubmit: (artifact: string, responseId: string | number) => void\n visible: boolean\n setVisibility: (bool: boolean) => void\n listingStore?: ListingStore\n notificationStore?: NotificationStore\n artifactId?: string | number\n /** Optional ID - will preload data for id if present */\n timeout?: number\n /** Optional timeout interval - mostly for testing, will default to 300 if absent */\n}\ninterface ListingArtifactDirectory {\n [key: string]: {\n [key: string]: () => Promise\n }\n}\n\nexport const ListingArtifactFormModal = inject(\n ApplicationStore.names.listingStore,\n ApplicationStore.names.notificationStore,\n)(\n observer(\n ({\n artifact,\n listingId,\n method,\n ...props\n }: PropsWithChildren) => {\n const [formData, setFormData] = useState>({})\n const [suspending, setSuspense] = useState(false)\n\n const directory: ListingArtifactDirectory = {\n service: {\n create: () =>\n props.listingStore!.createListingService({\n listingId,\n payload: formData as ListingArtifactFormData,\n }),\n update: () =>\n props.listingStore!.updateListingService({\n listingId,\n serviceId: props.artifactId as string,\n payload: formData as ListingArtifactFormData,\n }),\n get: () =>\n props.listingStore!.getSingleListingService({\n listingId,\n serviceId: props.artifactId as string,\n eager: 'links,attachments,technologyTypes',\n }),\n },\n product: {\n create: () =>\n props.listingStore!.createListingProduct({\n listingId,\n payload: formData as ListingArtifactFormData,\n }),\n update: () =>\n props.listingStore!.updateListingProduct({\n listingId,\n productId: props.artifactId as string,\n payload: formData as ListingArtifactFormData,\n }),\n get: () =>\n props.listingStore!.getSingleListingProduct({\n listingId,\n productId: props.artifactId as string,\n eager: 'links,attachments,technologyTypes',\n }),\n },\n 'use case': {\n create: () =>\n props.listingStore!.createListingUseCase({\n listingId,\n payload: formData as ListingArtifactFormData,\n }),\n update: () =>\n props.listingStore!.updateListingUseCase({\n listingId,\n useCaseId: props.artifactId as string,\n payload: formData as ListingArtifactFormData,\n }),\n get: () =>\n props.listingStore!.getSingleListingUseCase({\n listingId,\n useCaseId: props.artifactId as string,\n eager: 'links,attachments',\n }),\n },\n }\n\n useEffect(() => {\n if (props.artifactId) {\n getData()\n }\n }, [props.artifactId])\n\n const composePreloadedData = (response: ListingServiceProductData | ListingUseCaseData) => {\n let dataWithAttributes = {\n listingArtifactAttachmentsAttributes: response.listingArtifactAttachments!.map(\n (attachment) => {\n return { destroy: false, destroyable: true, ...attachment }\n },\n ),\n listingArtifactLinksAttributes: response.listingArtifactLinks!.map((link) => {\n return { destroy: false, destroyable: true, ...link }\n }),\n listingArtifactTechnologyTypesAttributes: !isUseCase(response)\n ? response.listingArtifactTechnologyTypes!.map((techType) => {\n // Formulate this for presence in a dropdown of Technology Type selectables\n return {\n id: techType.technologyTypeId,\n ...techType,\n destroy: false,\n destroyable: true,\n }\n })\n : undefined,\n\n ...response,\n }\n\n let {\n listingArtifactLinks,\n listingArtifactAttachments,\n listingArtifactTechnologyTypes,\n ...composedFormData\n } = dataWithAttributes\n\n return composedFormData\n }\n\n const getData = async () => {\n try {\n let response = await directory[artifact]['get']()\n setFormData(composePreloadedData(response))\n } catch {\n props.notificationStore?.setNotificationMessage(\n `Unable to load data for listing ${artifact} - please reload and try again.`,\n 'danger',\n 3000,\n )\n }\n }\n\n const canSubmit = () => isListingArtifactSubmittable(formData)\n\n const switchOff = () => {\n props.setVisibility(false)\n setTimeout(() => {\n setFormData({})\n }, props.timeout || 300)\n }\n\n const onSubmit = async () => {\n setSuspense(true)\n\n try {\n let response = await directory[artifact][method]()\n switchOff()\n props.onSubmit(artifact, response.id)\n props.notificationStore?.setNotificationMessage(\n `Successfully submitted listing ${artifact}`,\n 'success',\n 3000,\n )\n } catch (err) {\n props.notificationStore?.setNotificationMessage(\n `Unable to submit ${method} listing ${artifact} form at the moment, please try again later.`,\n 'danger',\n 3000,\n )\n } finally {\n setSuspense(false)\n }\n }\n\n const composeHeaderText = () => {\n return capitalizeFirstLetter(method) + ' Listing ' + titleCase(artifact)\n }\n\n return (\n \n switchOff()}\n size=\"lg\"\n headerContent={composeHeaderText()}\n scrollable\n >\n \n \n ) => {\n setFormData({ ...formData, ...change })\n }}\n submittable={canSubmit()}\n artifact={artifact}\n />\n \n \n \n onSubmit()}\n disabled={suspending || !canSubmit()}\n icon=\"fas fa-check\"\n >\n Submit\n \n \n \n \n )\n },\n ),\n)\n","import React, { useEffect, useState } from 'react'\nimport { CButton, CCard, CCardBody, CCol, CContainer, CRow } from '@coreui/react'\nimport { AccountStore, ApplicationStore, AuthStore, NotificationStore } from '../stores'\nimport { inject, observer } from 'mobx-react'\nimport { TermsOrPrivacyResponse } from '../stores/AccountStore'\nimport { Redirect } from 'react-router-dom'\nimport { parseDate } from '../lib/time'\nimport ReactHtmlParser from 'react-html-parser'\n\ntype TProps = {\n accountStore?: AccountStore\n notificationStore?: NotificationStore\n authStore?: AuthStore\n}\nexport const SignTermsAndPrivacy = inject(\n ApplicationStore.names.accountStore,\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.authStore,\n)(\n observer((props: TProps) => {\n const [term, setTerm] = useState()\n const [hasSignedTerm, setHasSignedTerm] = useState(false)\n const [privacy, setPrivacy] = useState()\n const [hasSignedPrivacy, setHasSignedPrivacy] = useState(false)\n const [isAgreeSuspended, setIsAgreeSuspended] = useState(false)\n\n useEffect(() => {\n Promise.all([props.accountStore!.getLatestTerms(), props.accountStore!.getLatestPrivacy()])\n .then(([t, p]) => {\n setTerm(t)\n setPrivacy(p)\n })\n .catch(() => {\n props.notificationStore?.setNotificationMessage(\n 'Failed to load terms and privacy data. Please try again.',\n 'danger',\n 3000,\n )\n })\n }, [])\n\n useEffect(() => {\n if (hasSignedPrivacy && hasSignedTerm) {\n props.authStore!.generateAndSetSalt()\n }\n }, [hasSignedPrivacy, hasSignedTerm])\n\n const signTerm = () => {\n return props.accountStore!.signTerms(term!.id).then(() => {\n setTimeout(() => {\n setHasSignedTerm(true)\n setIsAgreeSuspended(false)\n }, 1000)\n })\n }\n const signPrivacy = () => {\n return props.accountStore!.signPrivacy(privacy!.id).then(() => {\n setTimeout(() => {\n setHasSignedTerm(true)\n setHasSignedPrivacy(true)\n }, 1000)\n })\n }\n const onAgree = (key: string) => {\n setIsAgreeSuspended(true)\n\n const signer = key === 'term' ? signTerm : signPrivacy\n\n return signer().catch(() => {\n setIsAgreeSuspended(false)\n props.notificationStore?.setNotificationMessage(\n `Failed to sign ${key}. Please try again`,\n 'danger',\n 3000,\n )\n })\n }\n\n const renderSignerFor = (key: string, obj: TermsOrPrivacyResponse) => {\n return (\n
\n \n \n

{obj.title}

\n
\n
\n \n \n
\n Effective Date: {parseDate(obj.publishDate)}\n
\n
\n
\n \n \n
{ReactHtmlParser(obj.content)}
\n
\n
\n \n \n onAgree(key)}\n >\n {isAgreeSuspended ? (\n \n ) : (\n \n )}\n Agree\n \n \n \n
\n )\n }\n\n const determineRender = () => {\n if (!term || !privacy) {\n return \n }\n\n if (!hasSignedTerm) {\n return renderSignerFor('term', term)\n }\n if (!hasSignedPrivacy) {\n return renderSignerFor('privacy', privacy)\n }\n\n return \n }\n\n return (\n
\n \n \n \n {determineRender()}\n \n \n \n
\n )\n }),\n)\n\nexport default SignTermsAndPrivacy\n","import React, { FormEvent, useEffect, useState } from 'react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../stores'\nimport { inject, observer } from 'mobx-react'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { Redirect } from 'react-router-dom'\nimport {\n CButton,\n CCard,\n CCardBody,\n CCardFooter,\n CCol,\n CContainer,\n CForm,\n CFormInput,\n CRow,\n} from '@coreui/react'\nimport { Spinner, SupportLinks } from '../components/custom'\nimport { extractRestfulError } from '../lib/errors/utils'\nimport { validateEmail } from '../lib/helpers/validation'\n\ntype TProps = {\n userStore?: UserStore\n notificationStore?: NotificationStore\n authStore?: AuthStore\n}\nexport const ConfirmEmailLanding = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.authStore,\n)(\n observer((props: TProps) => {\n const [params] = useQueryParams({\n confirmationToken: withDefault(StringParam, undefined),\n })\n const [success, setSuccess] = useState(false)\n const [isSuspending, setIsSuspending] = useState(true)\n const [knownErrorReason, setKnownErrorReason] = useState(undefined)\n const [email, setEmail] = useState('')\n\n useEffect(() => {\n if (params.confirmationToken) {\n // For suspense with other loaders (i.e. the AuthBoundary)\n setTimeout(() => {\n props.userStore\n ?.confirmUser(params.confirmationToken!)\n .then((result) => {\n setTimeout(() => {\n setSuccess(true)\n setIsSuspending(false)\n }, 1000)\n })\n .catch((error) => {\n setKnownErrorReason(extractRestfulError(error)?.error)\n setSuccess(false)\n setIsSuspending(false)\n })\n }, 1000)\n } else {\n setIsSuspending(false)\n }\n }, [])\n\n const resendConfirmationEmail = (e: FormEvent) => {\n e.preventDefault()\n\n setIsSuspending(true)\n props.userStore\n ?.resendConfirmationEmail(email)\n .then(() => {\n props.notificationStore?.setNotificationMessage(\n 'Resend confirmation email success.',\n 'success',\n 3000,\n )\n })\n .catch(() => {\n props.notificationStore?.setNotificationMessage(\n 'Unable to resend confirmation email. Please try again.',\n 'danger',\n 3000,\n )\n })\n setIsSuspending(false)\n }\n\n const renderSuspense = () => {\n return (\n <>\n \n \n

Confirming your account...

\n
\n
\n \n \n \n \n \n \n )\n }\n\n const determineFailureMessage = () => {\n // TODO pretty these messages up a bit\n switch (knownErrorReason) {\n case 'InvalidConfirmationToken':\n return 'The confirmation token is invalid.'\n case 'ConfirmationPeriodExpired':\n return 'This confirmation link has expired.'\n default:\n return 'There was a problem confirming your account.'\n }\n }\n\n const renderFailure = () => {\n return (\n <>\n \n \n

Failed to Confirm Account

\n
\n
\n \n \n

{determineFailureMessage()}

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

\n Use the form below to resend a confirmation email if needed. If the email provided\n is in our records and that account is not already confirmed, a new confirmation\n email will be sent.\n

\n
\n
\n \n \n \n ) => setEmail(e.target.value)}\n value={email}\n />\n \n \n \n \n \n Resend Confirmation Email\n \n \n \n \n \n )\n }\n\n const renderSuccess = () => {\n return (\n <>\n \n \n

Your account has been confirmed!

\n
\n
\n \n \n Continue\n \n \n \n )\n }\n\n return (\n
\n {!params.confirmationToken && }\n \n \n \n \n \n {isSuspending && renderSuspense()}\n {!isSuspending && (success ? renderSuccess() : renderFailure())}\n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n }),\n)\n\nexport default ConfirmEmailLanding\n","import { CButton, CCol, CFormInput, CLink } from '@coreui/react'\nimport { inject, observer } from 'mobx-react'\nimport React, { SyntheticEvent, useState } from 'react'\nimport { ApplicationStore, NotificationStore, UserStore } from '../stores'\nimport MobilizeVISIONLogo from '../assets/brand/Ignite_Logo_Mobilize_Full_Color.png'\nimport { useHistory } from 'react-router-dom'\n\ntype TProps = {\n applicationStore?: ApplicationStore\n userStore?: UserStore\n notificationStore?: NotificationStore\n}\n\nexport const RequestPasswordReset = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [email, setEmail] = useState('')\n const mobilizeVisionLogo = MobilizeVISIONLogo\n const history = useHistory()\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const requestReset = (e: SyntheticEvent) => {\n setIsSubmitting(true)\n e.preventDefault()\n\n props.userStore\n ?.requestPasswordReset(email)\n .then((res) => {\n props.notificationStore?.setNotificationMessage(\n 'If the email provided is in our records, an email will be sent with instructions to reset your password',\n 'info',\n 5000,\n )\n history.push('/signin')\n })\n .catch((err) => {\n props.notificationStore?.setNotificationMessage(\n 'Something went wrong. Please try again.',\n 'danger',\n 5000,\n )\n setIsSubmitting(false)\n })\n }\n\n return (\n
\n
\n \n
Forgot your password?
\n

Fill in your email and we will send you password reset instructions.

\n
requestReset(e)}>\n ) => setEmail(e.target.value)}\n value={email}\n />\n \n Request Password Reset\n \n \n \n \n Claim account\n \n \n Sign in\n \n \n
\n
\n )\n }),\n)\n","import { CButton, CCol, CLink } from '@coreui/react'\nimport { inject, observer } from 'mobx-react'\nimport React, { SyntheticEvent, useEffect, useState } from 'react'\nimport { ApplicationStore, NotificationStore, UserStore } from '../stores'\nimport MobilizeVISIONLogo from '../assets/brand/Ignite_Logo_Mobilize_Full_Color.png'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { ValidatedCFormInput } from '../components/custom'\nimport { validatePassword, validateValueMatch } from '../lib/helpers/validation'\nimport { useHistory } from 'react-router-dom'\n\ntype TProps = {\n applicationStore?: ApplicationStore\n userStore?: UserStore\n notificationStore?: NotificationStore\n}\n\nexport const ResetPassword = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [params] = useQueryParams({\n resetPasswordToken: withDefault(StringParam, undefined),\n })\n\n const history = useHistory()\n const [password, setPassword] = useState('')\n const [confirmPassword, setConfirmPassword] = useState('')\n const mobilizeVisionLogo = MobilizeVISIONLogo\n\n const isSubmittable = (): boolean => {\n let errors = [validatePassword(password, 6), validateValueMatch(password, confirmPassword)]\n\n if (errors.some((err) => !!err)) {\n return false\n }\n\n return true\n }\n\n const resetPassword = (e: SyntheticEvent) => {\n e.preventDefault()\n\n props.userStore\n ?.resetPassword(password!, confirmPassword!, params.resetPasswordToken!)\n .then((res) => {\n props.notificationStore?.setNotificationMessage(\n 'Your password has been reset. Please login using your new password.',\n 'info',\n 5000,\n )\n history.push('/signin')\n })\n .catch((err) => {\n props.notificationStore?.setNotificationMessage(\n 'Unable to reset your password. Please try again',\n 'danger',\n 5000,\n )\n })\n }\n\n useEffect(() => {\n if (!params.resetPasswordToken) {\n history.push('/signin')\n }\n }, [params])\n\n return (\n
\n
\n \n
Reset your password.
\n

Fill in and confirm your new password.

\n
resetPassword(e)}>\n setPassword(password)}\n required\n validate={(v) => validatePassword(v, 6)}\n renderInvalidMessage={() =>\n 'Must be at least 6 characters, contain at least one capital and lowercase letter, number, and special character'\n }\n />\n \n setConfirmPassword(confirmPassword)\n }\n required\n validate={(v) => validateValueMatch(password, v)}\n renderInvalidMessage={() => 'Passwords must match'}\n />\n \n Reset Password\n \n \n \n Claim account\n Sign in\n Request reset password\n \n
\n
\n )\n }),\n)\n","import React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { AccountStore, ApplicationStore, AuthStore, NotificationStore } from '../stores'\nimport { TermsOrPrivacyResponse } from '../stores/AccountStore'\nimport { CCard, CCardBody, CCol, CContainer, CRow } from '@coreui/react'\nimport ReactHtmlParser from 'react-html-parser'\nimport { parseDate } from '../lib/time'\nimport classnames from 'classnames'\nimport { Link } from 'react-router-dom'\nimport { leftArrow } from '../components/icons/leftArrow'\n\ntype TProps = {\n authStore?: AuthStore\n accountStore?: AccountStore\n notificationStore?: NotificationStore\n}\nexport const Terms = inject(\n ApplicationStore.names.authStore,\n ApplicationStore.names.accountStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [term, setTerm] = useState(undefined)\n\n useEffect(() => {\n props\n .accountStore!.getLatestTerms()\n .then((data) => setTerm(data))\n .catch(() => {\n props.notificationStore?.setNotificationMessage(\n 'Failed to load terms. Please try again.',\n 'danger',\n 3000,\n )\n })\n }, [])\n\n const renderData = (data: TermsOrPrivacyResponse) => {\n return (\n <>\n \n \n

{data.title}

\n
\n
\n \n \n
\n Effective Date: {parseDate(data.publishDate)}\n
\n
\n
\n\n \n \n
{ReactHtmlParser(data.content)}
\n
\n
\n \n )\n }\n\n return (\n \n \n \n \n {!props.authStore?.isAuthenticated() && (\n \n {leftArrow()}\n \n )}\n {term && renderData(term)}\n \n \n \n \n )\n }),\n)\n","import React, { useEffect, useState } from 'react'\nimport { AccountStore, ApplicationStore, AuthStore, NotificationStore } from '../stores'\nimport { inject, observer } from 'mobx-react'\nimport { TermsOrPrivacyResponse } from '../stores/AccountStore'\nimport { CCard, CCardBody, CCol, CContainer, CRow } from '@coreui/react'\nimport { parseDate } from '../lib/time'\nimport ReactHtmlParser from 'react-html-parser'\nimport classnames from 'classnames'\nimport { Link } from 'react-router-dom'\nimport { leftArrow } from '../components/icons/leftArrow'\n\ntype TProps = {\n authStore?: AuthStore\n accountStore?: AccountStore\n notificationStore?: NotificationStore\n}\nexport const Privacy = inject(\n ApplicationStore.names.authStore,\n ApplicationStore.names.accountStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [privacy, setPrivacy] = useState(undefined)\n\n useEffect(() => {\n props\n .accountStore!.getLatestPrivacy()\n .then((data) => setPrivacy(data))\n .catch(() => {\n props.notificationStore?.setNotificationMessage(\n 'Failed to load privacy statement. Please try again.',\n 'danger',\n 3000,\n )\n })\n }, [])\n\n const renderData = (data: TermsOrPrivacyResponse) => {\n return (\n <>\n \n \n

{data.title}

\n
\n
\n \n \n
\n Effective Date: {parseDate(data.publishDate)}\n
\n
\n
\n\n \n \n
{ReactHtmlParser(data.content)}
\n
\n
\n \n )\n }\n\n return (\n \n \n \n \n {!props.authStore?.isAuthenticated() && (\n \n {leftArrow()}\n \n )}\n {privacy && renderData(privacy)}\n \n \n \n \n )\n }),\n)\n","import React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { AccountStore, ApplicationStore, AuthStore, NotificationStore } from '../stores'\nimport { TermsOrPrivacyResponse } from '../stores/AccountStore'\nimport { CCard, CCardBody, CCol, CContainer, CRow } from '@coreui/react'\nimport ReactHtmlParser from 'react-html-parser'\nimport { parseDate } from '../lib/time'\nimport classnames from 'classnames'\nimport { Link } from 'react-router-dom'\nimport { leftArrow } from '../components/icons/leftArrow'\n\ntype TProps = {\n authStore?: AuthStore\n accountStore?: AccountStore\n notificationStore?: NotificationStore\n}\nexport const AntiSpamPolicy = inject(\n ApplicationStore.names.authStore,\n ApplicationStore.names.accountStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [data, setData] = useState(undefined)\n\n useEffect(() => {\n props\n .accountStore!.getLatestAntiSpamPolicy()\n .then((data) => setData(data))\n .catch(() => {\n props.notificationStore?.setNotificationMessage(\n 'Failed to load policy. Please try again.',\n 'danger',\n 3000,\n )\n })\n }, [])\n\n const renderData = (data: TermsOrPrivacyResponse) => {\n return (\n <>\n \n \n

{data.title}

\n
\n
\n \n \n
\n Effective Date: {parseDate(data.publishDate)}\n
\n
\n
\n\n \n \n
{ReactHtmlParser(data.content)}
\n
\n
\n \n )\n }\n\n return (\n \n \n \n \n {!props.authStore?.isAuthenticated() && (\n \n {leftArrow()}\n \n )}\n {data && renderData(data)}\n \n \n \n \n )\n }),\n)\n","import React, { SyntheticEvent, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../stores'\nimport { useHistory } from 'react-router-dom'\nimport MobilizeVISIONLogo from '../assets/brand/Ignite_Logo_Mobilize_Full_Color.png'\nimport { CButton, CFormInput } from '@coreui/react'\nimport { LegalLinks } from '../components/custom'\n\ntype TProps = {\n applicationStore?: ApplicationStore\n userStore?: UserStore\n authStore?: AuthStore\n notificationStore?: NotificationStore\n}\n\nexport const SignIn = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.authStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const history = useHistory()\n const [email, setEmail] = useState('')\n const [password, setPassword] = useState('')\n const mobilizeVisionLogo = MobilizeVISIONLogo\n\n const signInUser = (e: SyntheticEvent) => {\n e.preventDefault()\n\n return props.userStore\n ?.signInUser(email, password)\n .then(() => {\n props.notificationStore?.setNotificationMessage(\n 'Successfully signed in!',\n 'success',\n 3000,\n )\n props.authStore?.generateAndSetSalt()\n })\n .catch((err) => {\n props.notificationStore?.setNotificationMessage(\n err.response?.data?.message || 'Failed to sign in, please try again later.',\n 'danger',\n 3000,\n )\n })\n }\n\n const goToClaim = () => {\n history.push('/claim')\n }\n\n const goToGovUserSignup = () => {\n history.push('/gov_user')\n }\n\n return (\n
\n
\n \n
\n Login\n
\n

\n VISION users, if you haven’t created an Ignite account, click “Sign Up” below.\n

\n
\n
signInUser(e)}>\n ) => setEmail(e.target.value)}\n value={email}\n />\n ) => setPassword(e.target.value)}\n value={password}\n />\n \n Login\n \n \n \n Forgot password?\n \n
\n Don't have an Ignite account?\n
\n
\n \n Claim an account (SBIR/STTR Companies)\n \n \n Sign Up (Government Users)\n \n
\n
\n \n \n IGNITE FAQ\n \n \n \n \n support@mobilizeignite.com\n \n \n
\n \n
\n
\n
\n )\n }),\n)\n","import React, { useState } from 'react'\nimport { CCard, CCardBody, CCol, CContainer, CForm, CRow } from '@coreui/react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../stores'\nimport {\n SignupLoginData,\n SignupLoginForm,\n SignupUserData,\n SignupUserForm,\n} from '../components/form/fragments'\nimport { validateLength, validatePassword, validateValueMatch } from '../lib/helpers/validation'\nimport ReCAPTCHA from 'react-google-recaptcha'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { SuspensefulButton } from '@mobilizeyourtech/vision-core-react'\nimport { Link } from 'react-router-dom'\nimport { leftArrow } from '../components/icons/leftArrow'\n\ntype InviteUserFormData = SignupLoginData & SignupUserData\n\ntype TProps = {\n userStore?: UserStore\n notificationStore?: NotificationStore\n authStore?: AuthStore\n applicationStore?: ApplicationStore\n}\nexport const InviteSignUp = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.authStore,\n 'applicationStore',\n)(\n observer((props: TProps) => {\n const [params] = useQueryParams({\n inviteToken: withDefault(StringParam, undefined),\n firstName: withDefault(StringParam, undefined),\n lastName: withDefault(StringParam, undefined),\n })\n const [invitedUserData, setInvitedUserData] = useState>({\n firstName: params.firstName,\n lastName: params.lastName,\n })\n const [hasValidated, setHasValidated] = useState(false)\n const [recaptchaToken, setRecaptchaToken] = useState(null)\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const isSubmittable = (): boolean => {\n let errors = [\n validatePassword(invitedUserData.password),\n validateValueMatch(invitedUserData.password, invitedUserData.confirmPassword),\n validateLength(invitedUserData.firstName, 2),\n validateLength(invitedUserData.lastName, 2),\n validateLength(invitedUserData.title, 2),\n validateLength(invitedUserData.cellPhone, 2),\n ]\n\n if (errors.some((err) => !!err)) {\n return false\n }\n\n let presence = [invitedUserData.timezone, recaptchaToken].every((e) => !!e)\n\n return presence\n }\n\n const onSubmit = () => {\n if (!isSubmittable()) {\n return\n }\n\n setHasValidated(true)\n setIsSubmitting(true)\n\n props\n .userStore!.inviteSignUp({\n user: {\n password: invitedUserData.password!,\n confirmPassword: invitedUserData.confirmPassword!,\n firstName: invitedUserData.firstName!,\n lastName: invitedUserData.lastName!,\n title: invitedUserData.title!,\n cellPhone: invitedUserData.cellPhone!,\n workPhone: invitedUserData.workPhone,\n workPhoneExt: invitedUserData.workPhoneExt,\n timezone:\n typeof invitedUserData.timezone === 'string'\n ? invitedUserData.timezone\n : invitedUserData.timezone!.value,\n headshot: invitedUserData.headshot,\n socialMedia: invitedUserData.socialMedia,\n },\n recaptchaToken: recaptchaToken!,\n inviteToken: params.inviteToken!,\n })\n .then(({ authorization, ...userdata }) => {\n setIsSubmitting(false)\n\n props.notificationStore?.setNotificationMessage(\n 'Account successfully created!',\n 'success',\n 3000,\n true,\n )\n props.authStore!.setJWT(authorization)\n props.authStore!.generateAndSetSalt()\n })\n .catch(() => {\n setIsSubmitting(false)\n props.notificationStore?.setNotificationMessage(\n 'Something went wrong, please try again',\n 'danger',\n 3000,\n )\n })\n }\n return (\n
\n \n \n \n \n
\n \n {leftArrow()}\n \n
Invite Sign Up
\n
\n \n \n
\n
\n Your Login\n
\n setInvitedUserData((prev) => ({ ...prev, ...value }))}\n isEmailHidden={true}\n />\n
\n
\n
\n \n \n
\n
\n Your User\n
\n setInvitedUserData((prev) => ({ ...prev, ...value }))}\n />\n
\n
\n
\n \n setRecaptchaToken(token)}\n data-testid=\"recaptcha-checkbox\"\n />\n \n \n \n \n Sign Up\n \n \n \n
\n
\n
\n
\n
\n )\n }),\n)\n","import React, { useEffect, useState } from 'react'\nimport {\n ApplicationStore,\n AuthStore,\n NotificationStore,\n UserStore,\n InvitedUserData,\n} from '../stores'\nimport { inject, observer } from 'mobx-react'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { Redirect } from 'react-router-dom'\nimport { CCard, CCardBody, CCardFooter, CCol, CContainer, CRow } from '@coreui/react'\nimport { SupportLinks } from '../components/custom'\nimport { extractRestfulError } from '../lib/errors/utils'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\n\ntype TProps = {\n userStore?: UserStore\n notificationStore?: NotificationStore\n authStore?: AuthStore\n}\n\nexport const AcceptInviteLanding = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.authStore,\n)(\n observer((props: TProps) => {\n const [params] = useQueryParams({\n inviteToken: withDefault(StringParam, undefined),\n })\n const [isLoading, setIsLoading] = useState(false)\n const [knownErrorReason, setKnownErrorReason] = useState(undefined)\n const [invite, setInvite] = useState(undefined)\n\n useEffect(() => {\n checkToken()\n }, [])\n\n const checkToken = () => {\n setIsLoading(true)\n if (params.inviteToken) {\n // For suspense with other loaders (i.e. the AuthBoundary)\n props.userStore\n ?.checkUserInvite(params.inviteToken!)\n .then((inviteResponse) => {\n setInvite(inviteResponse)\n })\n .catch((error) => {\n setKnownErrorReason(extractRestfulError(error)?.error || 'Unknown')\n })\n .finally(() => setIsLoading(false))\n } else {\n setIsLoading(false)\n }\n }\n const renderCheckResults = () => {\n if (!!invite && !knownErrorReason) {\n return (\n \n )\n } else {\n return renderFailure()\n }\n }\n\n const determineFailureMessage = () => {\n switch (knownErrorReason) {\n case 'InvalidInviteToken':\n return 'The invite token is invalid.'\n case 'InvitePeriodExpired':\n return 'This invite token expired.'\n default:\n return 'There was a problem validating your invite.'\n }\n }\n\n const renderFailure = () => {\n return (\n <>\n \n \n

Failed to Confirm Invite

\n
\n
\n \n \n

{determineFailureMessage()}

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

\n Please reach out to your Ignite administrator regarding your invite. If you already\n have an account, you may go to our sign in page and log in there.\n

\n
\n
\n \n )\n }\n\n return (\n
\n \n \n \n \n \n \n {renderCheckResults()}\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n }),\n)\n\nexport default AcceptInviteLanding\n","import React, { useEffect, useState } from 'react'\nimport { useQueryParams, StringParam, withDefault } from 'use-query-params'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, UserStore, AuthStore, NotificationStore } from '../stores'\nimport { ClaimRequestData, claimErrorDictionary } from '../stores/UserStore'\nimport { extractRestfulError } from '../lib/errors/utils'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport { SupportLinks } from '../components/custom'\nimport { CCard, CCardBody, CCardFooter, CCol, CContainer, CRow } from '@coreui/react'\nimport { Redirect } from 'react-router-dom'\nimport { ResendClaimForm } from '../components/form'\n\ninterface ConfirmClaimLandingProps {\n userStore?: UserStore\n authStore?: AuthStore\n notificationStore?: NotificationStore\n}\n\nexport const ConfirmClaimLanding = inject(\n ApplicationStore.names.authStore,\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.userStore,\n 'applicationStore',\n)(\n observer((props: ConfirmClaimLandingProps) => {\n const [isLoading, setIsLoading] = useState(false)\n const [claimRequest, setClaimRequest] = useState(undefined)\n const [error, setError] = useState(undefined)\n const [params] = useQueryParams({\n claimToken: withDefault(StringParam, undefined),\n })\n\n useEffect(() => {\n setIsLoading(true)\n\n if (params.claimToken) {\n props.userStore\n ?.checkClaim(params.claimToken)\n .then((claimRequest) => {\n setClaimRequest(claimRequest)\n })\n .catch((error) => {\n let errorMessage = extractRestfulError(error)\n if (errorMessage?.error && claimErrorDictionary.hasOwnProperty(errorMessage.error)) {\n setError(errorMessage.error)\n } else {\n setError('UnknownError')\n }\n })\n .finally(() => setIsLoading(false))\n } else {\n setIsLoading(false)\n setError('InvalidClaimToken')\n }\n }, [])\n\n const renderFailure = () => {\n if (error === 'ClaimPeriodExpired') {\n return (\n <>\n \n \n

Claim Request Failed

\n
\n
\n \n \n

\n The claim token provided is expired. Please click resend if you would like us to\n resend a claim email. If already have an account, you may go to{' '}\n sign in.\n

\n
\n
\n \n \n )\n }\n return (\n <>\n \n \n

Failed to Confirm Claim Request

\n
\n
\n \n \n

{error && claimErrorDictionary[error]}

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

\n If you already have an account, you may go to our sign in page and\n log in there.\n

\n
\n
\n \n )\n }\n\n if (!params.claimToken) {\n return \n }\n\n return (\n
\n \n \n \n \n \n \n {error && renderFailure()}\n {!error && !!claimRequest && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n }),\n)\n","import { useState } from 'react'\nimport { CCard, CCardBody, CCol, CContainer, CForm, CRow } from '@coreui/react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../stores'\nimport { UserFormData, isUserSubmittable, claimErrorDictionary } from '../stores/UserStore'\nimport { SignupLoginForm, SignupUserForm } from '../components/form/fragments'\nimport ReCAPTCHA from 'react-google-recaptcha'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { SuspensefulButton } from '@mobilizeyourtech/vision-core-react'\nimport { Link } from 'react-router-dom'\nimport { leftArrow } from '../components/icons/leftArrow'\nimport { extractRestfulError } from '../lib/errors/utils'\n\ntype TProps = {\n userStore?: UserStore\n notificationStore?: NotificationStore\n authStore?: AuthStore\n applicationStore?: ApplicationStore\n}\nexport const ClaimRequestSignUp = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.authStore,\n 'applicationStore',\n)(\n observer((props: TProps) => {\n const [params] = useQueryParams({\n claimToken: withDefault(StringParam, undefined),\n firstName: withDefault(StringParam, undefined),\n lastName: withDefault(StringParam, undefined),\n })\n const [newUserData, setNewUserData] = useState>({\n firstName: params.firstName,\n lastName: params.lastName,\n recaptchaToken: null,\n })\n const [hasValidated, setHasValidated] = useState(false)\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const onSubmit = () => {\n if (!isUserSubmittable(newUserData)) {\n return\n }\n\n setHasValidated(true)\n setIsSubmitting(true)\n\n props\n .userStore!.claimSignUp({\n user: {\n password: newUserData.password!,\n confirmPassword: newUserData.confirmPassword!,\n firstName: newUserData.firstName!,\n lastName: newUserData.lastName!,\n title: newUserData.title!,\n cellPhone: newUserData.cellPhone!,\n workPhone: newUserData.workPhone,\n workPhoneExt: newUserData.workPhoneExt,\n timezone:\n typeof newUserData.timezone === 'string'\n ? newUserData.timezone\n : newUserData.timezone!.value,\n headshot: newUserData.headshot,\n socialMedia: newUserData.socialMedia,\n },\n recaptchaToken: newUserData.recaptchaToken!,\n claimToken: params.claimToken!,\n })\n .then(({ authorization }) => {\n props.notificationStore?.setNotificationMessage(\n 'Account successfully claimed!',\n 'success',\n 3000,\n )\n props.authStore!.setJWT(authorization)\n props.authStore!.generateAndSetSalt()\n })\n .catch((errorResponse) => {\n let restfulError = extractRestfulError(errorResponse)\n let errorMessage: string\n\n if (restfulError?.error && claimErrorDictionary.hasOwnProperty(restfulError.error)) {\n errorMessage = restfulError.error\n } else {\n errorMessage = 'UnknownError'\n }\n\n props.notificationStore?.setNotificationMessage(\n claimErrorDictionary[errorMessage],\n 'danger',\n 3000,\n )\n })\n .finally(() => setIsSubmitting(false))\n }\n return (\n
\n \n \n \n \n
\n \n {leftArrow()}\n \n
Sign Up
\n
\n \n \n
\n
\n Your Login\n
\n setNewUserData((prev) => ({ ...prev, ...value }))}\n isEmailHidden={true}\n />\n
\n
\n
\n \n \n
\n
\n Your User\n
\n setNewUserData((prev) => ({ ...prev, ...value }))}\n />\n
\n
\n
\n \n setNewUserData({ ...newUserData, recaptchaToken: token })}\n data-testid=\"recaptcha-checkbox\"\n />\n \n \n \n \n Sign Up\n \n \n \n
\n
\n
\n
\n
\n )\n }),\n)\n","import React, { useState } from 'react'\nimport { CCard, CCardBody, CCol, CContainer, CForm, CRow } from '@coreui/react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../stores'\nimport {\n SignupAccountData,\n SignupAccountForm,\n ClaimRequestFormData,\n ClaimRequestForm,\n} from '../components/form/fragments'\nimport { leftArrow } from '../components/icons/leftArrow'\nimport { Link } from 'react-router-dom'\nimport { validateEmail, validateLength } from '../lib/helpers/validation'\nimport ReCAPTCHA from 'react-google-recaptcha'\nimport { SuspensefulButton } from '@mobilizeyourtech/vision-core-react'\nimport { extractRestfulError } from '../lib/errors/utils'\nimport { Redirect } from 'react-router-dom'\n\ntype claimFormData = SignupAccountData & ClaimRequestFormData & { recaptchaToken: string | null }\n\ntype TProps = {\n userStore?: UserStore\n notificationStore?: NotificationStore\n authStore?: AuthStore\n applicationStore?: ApplicationStore\n}\nexport const SubmitClaimRequest = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.authStore,\n 'applicationStore',\n)(\n observer((props: TProps) => {\n const [hasValidated, setHasValidated] = useState(false)\n const [isSubmitting, setIsSubmitting] = useState(false)\n const [redirectPath, setRedirectPath] = useState(undefined)\n\n const [claimData, setClaimData] = useState>({ recaptchaToken: null })\n\n const isSubmittable = (): boolean => {\n let errors = [\n validateEmail(claimData.email),\n validateLength(claimData.firstName, 2),\n validateLength(claimData.lastName, 2),\n ]\n\n if (errors.some((err) => !!err)) {\n return false\n }\n\n let presence = [claimData.recaptchaToken, claimData.uniqueEntityId].every((e) => !!e)\n\n return presence\n }\n\n const onSubmit = () => {\n if (!isSubmittable()) {\n return\n }\n\n setHasValidated(true)\n setIsSubmitting(true)\n\n props\n .userStore!.submitClaimRequest({\n email: claimData.email!,\n firstName: claimData.firstName!,\n lastName: claimData.lastName!,\n uniqueEntityId: claimData.uniqueEntityId!,\n recaptchaToken: claimData.recaptchaToken!,\n })\n .then(({ ...claimdata }) => {\n setIsSubmitting(false)\n setRedirectPath(\n `/claim_result?resultMessage=ClaimSuccess&uniqueEntityId=${claimData.uniqueEntityId}&email=${claimData.email}`,\n )\n })\n .catch((error) => {\n setIsSubmitting(false)\n const knownError = extractRestfulError(error)?.error\n if (knownError) {\n knownError === 'ClaimRequestAlreadyExists'\n ? setRedirectPath(\n `/claim_result?resultMessage=${knownError}&uniqueEntityId=${claimData.uniqueEntityId}&email=${claimData.email}`,\n )\n : setRedirectPath(`/claim_result?resultMessage=${knownError}`)\n } else {\n props.notificationStore?.setNotificationMessage(\n 'Something went wrong, please try again',\n 'danger',\n 3000,\n )\n }\n })\n }\n\n if (redirectPath) {\n return \n }\n\n return (\n
\n \n \n \n \n
\n \n {leftArrow()}\n \n
Request to Claim Account
\n
\n \n \n
\n
\n Account\n
\n setClaimData(value)}\n isAccountNameHidden={true}\n />\n
\n
\n
\n \n \n
\n
\n Your Information\n
\n setClaimData(value)}\n />\n
\n
\n
\n \n {\n setClaimData({ ...claimData, recaptchaToken: token })\n }}\n data-testid=\"recaptcha-checkbox\"\n />\n \n \n \n \n Submit\n \n \n \n
\n
\n
\n
\n
\n )\n }),\n)\n","import { inject, observer } from 'mobx-react'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { CCard, CCardBody, CCardFooter, CCol, CContainer, CRow } from '@coreui/react'\nimport { SupportLinks } from '../components/custom'\nimport { Redirect } from 'react-router-dom'\nimport React from 'react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../stores'\nimport { ResendClaimForm } from '../components/form'\n\ntype TProps = {\n userStore?: UserStore\n notificationStore?: NotificationStore\n authStore?: AuthStore\n applicationStore?: ApplicationStore\n}\nexport const SubmitClaimResult = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.authStore,\n 'applicationStore',\n)(\n observer((props: TProps) => {\n const [params] = useQueryParams({\n resultMessage: withDefault(StringParam, undefined),\n email: withDefault(StringParam, undefined),\n uniqueEntityId: withDefault(StringParam, undefined),\n })\n\n const determineTitle = () => {\n if (params.resultMessage === 'ClaimSuccess') {\n return 'Claim Request Processed'\n }\n return 'Claim Request Unsuccessful'\n }\n\n const failureMessage = () => {\n switch (params.resultMessage) {\n case 'UserAlreadyExists':\n return 'A user already exists with the email provided.'\n default:\n return 'There was a problem creating your claim request.'\n }\n }\n\n const resultSuccessResend = (): boolean => {\n return params.resultMessage === 'ClaimSuccess' && !!params.email && !!params.uniqueEntityId\n }\n\n const resultFailureResend = (): boolean => {\n return (\n params.resultMessage === 'ClaimRequestAlreadyExists' &&\n !!params.email &&\n !!params.uniqueEntityId\n )\n }\n\n const resultSamInstructions = (): boolean => {\n return (\n params.resultMessage === 'EmailUnmatched' ||\n params.resultMessage === 'AccountAlreadyClaimed'\n )\n }\n\n const shouldDisplayResendForm = (): boolean => {\n return (\n params.resultMessage === 'ClaimSuccess' ||\n params.resultMessage === 'ClaimRequestAlreadyExists'\n )\n }\n\n const determineResult = () => {\n if (resultSuccessResend()) {\n return (\n

\n To claim your Ignite account, please check your email and follow the instructions. If\n you do not receive an email, please verify the info below and click resend for a new\n claim email to be sent to you. If the info is incorrect, you may try again{' '}\n here or go to sign in.\n

\n )\n } else if (resultFailureResend()) {\n return (\n

\n The email provided already has a claim request in progress. Please verify the\n information below and click resend if you would like us to resend a claim email. If the{' '}\n information is incorrect, you may try again here or go to{' '}\n sign in.\n

\n )\n } else if (resultSamInstructions()) {\n return (\n

\n It looks like that email does not match our records or the account has already been\n claimed. Ignite listings are tied to your{' '}\n Sam.gov listing, so if you're sure you\n typed the email correctly, here's what to do next:\n

\n )\n } else if (params.resultMessage === 'ClaimSuccess') {\n return (\n

\n Your claim request has been successfully submitted. To claim your Ignite account, please\n check your email and follow the instructions.\n

\n )\n } else {\n return (\n

\n {failureMessage()} You may try again here or go to{' '}\n sign in.\n

\n )\n }\n }\n\n const renderResendForm = () => {\n if (params.email && params.uniqueEntityId) {\n return (\n \n )\n }\n }\n\n const renderListedInstructions = () => {\n if (resultSamInstructions()) {\n return (\n
    \n
  1. \n Contact{' '}\n \n Sam.gov\n {' '}\n to find the Point of Contact email on your account. Try again with that email address.\n
  2. \n
  3. \n Contact{' '}\n \n support@mobilizeignite.com\n {' '}\n if you have any questions about the application.\n
  4. \n
  5. \n You may also try to claim your account again here or{' '}\n sign in.\n
  6. \n
\n )\n }\n }\n const renderResult = () => {\n return (\n <>\n \n \n

{determineTitle()}

\n
\n
\n \n {determineResult()}\n \n \n {renderListedInstructions()}\n \n {shouldDisplayResendForm() && renderResendForm()}\n \n )\n }\n\n if (!params.resultMessage) {\n return \n }\n\n return (\n
\n \n \n \n \n {renderResult()}\n \n \n \n \n \n \n \n \n \n \n \n
\n )\n }),\n)\n","export const visionLogoCobalt = () => {\n return (\n \n \n \n )\n}\n","import React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, UserStore, AuthStore, NotificationStore } from '../stores'\nimport {\n CustomModal,\n SuspensefulButton,\n SuspensionBoundary,\n} from '@mobilizeyourtech/vision-core-react'\nimport {\n CCard,\n CCardBody,\n CCol,\n CContainer,\n CForm,\n CRow,\n CLink,\n CFormCheck,\n CModalBody,\n} from '@coreui/react'\nimport { Link, Redirect } from 'react-router-dom'\nimport {\n SignupLoginData,\n SignupLoginForm,\n SignupUserData,\n SignupUserForm,\n GovUserExtendedDataOrganizationForm,\n} from '../components/form/fragments'\nimport {\n validateLength,\n validateLineOfEffort,\n validatePassword,\n validateValueMatch,\n} from '../lib/helpers/validation'\nimport { leftArrow } from '../components/icons/leftArrow'\nimport ReCAPTCHA from 'react-google-recaptcha'\nimport { GovUserExtendedDataProfileForm } from '../components/form/fragments/GovUserExtendedDataProfileForm'\nimport { GovUserExtendedDataFormData } from '../components/form/fragments/types'\nimport { extractRestfulError } from '../lib/errors/utils'\nimport { visionLogoCobalt } from '../assets/brand/visionLogoCobalt'\nimport { clearQParamSessionVariables, getSessionQParam } from '../lib/helpers/sessionHelpers'\n\ntype GovUserFormData = SignupLoginData & SignupUserData\n\ninterface GovUserSignupProps {\n userStore?: UserStore\n authStore?: AuthStore\n notificationStore?: NotificationStore\n applicationStore?: ApplicationStore\n}\n\nexport const GovUserSignup = inject(\n ApplicationStore.names.authStore,\n ApplicationStore.names.notificationStore,\n ApplicationStore.names.userStore,\n 'applicationStore',\n)(\n observer((props: GovUserSignupProps) => {\n const [isLoading, setIsLoading] = useState(false)\n const [govUserSignupData, setGovUserSignupData] = useState>({})\n const [govUserExtendedData, setGovUserExtendedData] = useState<\n Partial\n >({\n linesOfEffort: [{ details: '' }],\n })\n const [hasValidated, setHasValidated] = useState(false)\n const [recaptchaToken, setRecaptchaToken] = useState(null)\n const [isSubmitting, setIsSubmitting] = useState(false)\n const [redirect, setRedirect] = useState(undefined)\n const [connectVisionAccountHelpModalVisible, setConnectVisionAccountHelpModalVisible] =\n useState(false)\n const [unclassifiedConfirmation, setUnclassifiedCofirmation] = useState(false)\n const [spamProtectionModalVisible, setSpamProtectionModalVisible] = useState(false)\n\n const decryptGovUserData = (params: string) => {\n // The user is coming from VISION\n props.userStore\n ?.decryptAndValidateGovUserData(params)\n .then((decryptedGovUserData) => {\n setGovUserSignupData({ ...decryptedGovUserData, title: decryptedGovUserData.position! })\n })\n .catch((error) => {\n let message = extractRestfulError(error)?.error\n if (message === 'UserAlreadyExists') {\n props.notificationStore?.setNotificationMessage(\n 'A User with your Vision email already exists. Please log in.',\n 'info',\n 5000,\n true,\n )\n }\n clearQParamSessionVariables()\n setRedirect('/')\n })\n .finally(() => {\n setIsLoading(false)\n })\n }\n\n useEffect(() => {\n setIsLoading(true)\n const q = getSessionQParam()\n // Intentionally having this consider a blank string as presence\n if (q?.trim() === '') {\n setIsLoading(false)\n setRedirect('/')\n } else if (q) {\n decryptGovUserData(q)\n } else {\n // The user is a non-VISION gov user\n setIsLoading(false)\n }\n }, [])\n\n const isSubmittable = (): boolean => {\n if (!govUserSignupData.emailValid) {\n return false\n }\n\n if (!govUserExtendedData?.technologyTypes || govUserExtendedData.technologyTypes.length < 1) {\n return false\n }\n\n if (\n !govUserExtendedData?.govUserClassifications ||\n govUserExtendedData.govUserClassifications.length < 1\n ) {\n return false\n }\n\n if (!govUserExtendedData.linesOfEffort || govUserExtendedData.linesOfEffort.length < 1) {\n return false\n }\n\n let errors = [\n validatePassword(govUserSignupData.password),\n validateValueMatch(govUserSignupData.password, govUserSignupData.confirmPassword),\n validateLength(govUserSignupData.firstName, 2),\n validateLength(govUserSignupData.lastName, 2),\n validateLength(govUserSignupData.title, 2),\n validateLength(govUserExtendedData.profileDetail?.replace(/<[^>]*>/g, ''), 2),\n validateLineOfEffort(govUserExtendedData.linesOfEffort),\n ]\n\n if (errors.some((err) => !!err)) {\n return false\n }\n\n let presence = [\n govUserExtendedData.govUserOrganization?.id,\n govUserSignupData.timezone,\n unclassifiedConfirmation,\n recaptchaToken,\n ].every((e) => !!e)\n\n return presence\n }\n\n const onSubmit = () => {\n if (!isSubmittable()) {\n return\n }\n\n setHasValidated(true)\n setIsSubmitting(true)\n\n props\n .userStore!.govUserSignUp({\n user: {\n password: govUserSignupData.password!,\n confirmPassword: govUserSignupData.confirmPassword!,\n firstName: govUserSignupData.firstName!,\n lastName: govUserSignupData.lastName!,\n email: govUserSignupData.email!,\n title: govUserSignupData.title!,\n timezone:\n typeof govUserSignupData.timezone === 'string'\n ? govUserSignupData.timezone\n : govUserSignupData.timezone!.value,\n headshot: govUserSignupData.headshot,\n encryptedVisionUserData: getSessionQParam() || undefined,\n govUserOrganizationId: govUserExtendedData.govUserOrganization!.id,\n technologyTypes: govUserExtendedData.technologyTypes,\n profileDetail: govUserExtendedData.profileDetail,\n interactionDetail: govUserExtendedData.interactionDetail,\n linesOfEffort: govUserExtendedData?.linesOfEffort?.filter(\n (el) => el.details && el.details.trim() !== '',\n ),\n govUserClassifications: govUserExtendedData.govUserClassifications,\n city: govUserExtendedData.location?.city,\n stateOrProvince: govUserExtendedData.location?.stateOrProvince,\n country: govUserExtendedData.location?.country,\n govEmployeeSinceYear: govUserExtendedData.govEmployeeSinceYear,\n },\n recaptchaToken: recaptchaToken!,\n })\n .then(({ authorization, ...userdata }) => {\n setIsSubmitting(false)\n\n props.notificationStore?.setNotificationMessage(\n 'Account successfully created!',\n 'success',\n 3000,\n true,\n )\n props.authStore!.setJWT(authorization)\n props.authStore!.generateAndSetSalt()\n })\n .catch(() => {\n setIsSubmitting(false)\n props.notificationStore?.setNotificationMessage(\n 'Something went wrong, please try again',\n 'danger',\n 3000,\n )\n })\n }\n\n if (redirect) {\n return \n }\n\n return (\n
\n \n setConnectVisionAccountHelpModalVisible(false)}\n >\n <>\n
\n
\n {visionLogoCobalt()}\n
\n

Connecting your VISION account to IGNITE

\n
\n
    \n
  1. \n \n Click here\n {' '}\n to access IGNITE within VISION (you will be navigated to the IGNITE search page\n within VISION)\n
  2. \n
  3. On the IGNITE search page, click the "View in IGNITE" button
  4. \n
  5. \n After clicking the "View in IGNITE" button you will be navigated back to\n this page with your VISION account information populated and ready to be linked to\n your new IGNITE account\n
  6. \n
\n \n \n \n \n \n \n
\n \n {leftArrow()}\n \n
Sign Up
\n {/* TODO put this chip/card into a component/atom when time allows */}\n {getSessionQParam() ? (\n
\n
\n
\n {visionLogoCobalt()}\n
\n
\n Your VISION account will be linked to your new IGNITE account\n
\n
\n
\n ) : (\n
\n setConnectVisionAccountHelpModalVisible(true)}\n className=\"clickable d-flex align-items-center border border-secondary rounded p-2 bg-light\"\n data-testid=\"connect-vision-account-card\"\n >\n
\n {visionLogoCobalt()}\n
\n
VISION User?
\n \n Connect your VISION account to IGNITE\n \n
\n
\n )}\n \n \n \n
\n
\n Your Login\n
\n \n setGovUserSignupData((prev) => ({ ...prev, ...value }))\n }\n disableEmail={!!getSessionQParam()}\n isVisionUser={!!getSessionQParam()}\n openConnectVisionAccountModal={() => {\n setConnectVisionAccountHelpModalVisible(true)\n }}\n visionAccountConnected={!!getSessionQParam()}\n />\n
\n
\n
\n \n \n
\n
\n Your Organization\n
\n {\n setGovUserExtendedData((prev) => ({ ...prev, ...value }))\n }}\n />\n
\n
\n
\n \n \n
\n
\n Your User\n
\n \n setGovUserSignupData((prev) => ({ ...prev, ...value }))\n }\n isGovUser={true}\n />\n
\n
\n
\n \n \n
\n setSpamProtectionModalVisible(false)}\n headerContent={\n

How IGNITE protects you from spam

\n }\n >\n \n \n \n \n \n \n \n \n You can disable new communications at any time.\n \n \n \n \n \n \n \n \n \n \n Small businesses can only send 1 message to you to initiate a\n conversation. They can not send more messages until you have\n replied to the first one.\n \n \n \n \n \n \n \n \n \n \n \n At any time, you can pause communications with a small\n business. They will be unable to contact you until you\n un-pause.\n \n \n \n \n \n \n \n \n \n \n \n You have control of the conversation. If you feel like someone\n is misusing the system and spamming you, contact{' '}\n \n support@mobilizeignite.com\n {' '}\n and our team will address the issue.\n \n \n \n \n \n \n \n
\n Your Profile\n
\n
\n \n Important: Your profile information is how people will find in you in\n IGNITE. The more thorough your answers, the better your chances of\n making connections.\n \n
\n
\n setSpamProtectionModalVisible(true)}\n className=\"clickable d-flex align-items-center border border-secondary rounded p-2 bg-light\"\n data-testid=\"spam-protection-card\"\n >\n \n \n How IGNITE protects you from spam\n \n
\n
\n \n setGovUserExtendedData((prev) => ({ ...prev, ...value }))\n }\n />\n
\n setUnclassifiedCofirmation(!unclassifiedConfirmation)}\n checked={unclassifiedConfirmation}\n label={\n
\n
\n I affirm that all information I have inputted is unclassified.{' '}\n \n (required)\n
\n \n IGNITE handles information at a non-CUI level. Do not add any\n information or upload any documents that are classified or\n Controlled Unclassified Information (CUI)\n \n
\n }\n />\n
\n \n
\n
\n \n setRecaptchaToken(token)}\n data-testid=\"recaptcha-checkbox\"\n />\n \n \n \n \n Sign Up\n \n \n \n
\n
\n
\n
\n
\n
\n )\n }),\n)\n","import { Chip, ChipColors, ChipProps } from '@mobilizeyourtech/vision-core-react'\nimport classNames from 'classnames'\n\nimport Styles from './GovUserConnectorChip.module.scss'\nimport { GovUserData } from 'stores/UserStore'\n\nexport interface GovUserConnectorChipProps\n extends Omit {\n govUser: GovUserData | undefined\n 'data-testid'?: string\n}\n\nexport const GovUserConnectorChip = ({ govUser, ...props }: GovUserConnectorChipProps) => {\n if (!govUser?.activeChatThreadsCount) return null\n\n let label = 'Connector'\n let badge = '1+'\n\n if (govUser.activeChatThreadsCount >= 5 && govUser.activeChatThreadsCount < 10) {\n label = 'Super Connector'\n badge = '5+'\n } else if (govUser.activeChatThreadsCount >= 10 && govUser.activeChatThreadsCount < 25) {\n label = 'Mega Connector'\n badge = '10+'\n } else if (govUser.activeChatThreadsCount >= 25 && govUser.activeChatThreadsCount < 50) {\n label = 'Ultra Connector'\n badge = '25+'\n } else if (govUser.activeChatThreadsCount >= 50) {\n label = 'Giga Connector'\n badge = '50+'\n }\n\n return (\n \n )\n}\n","import { inject, observer } from 'mobx-react'\nimport { useRouteMatch, useHistory } from 'react-router-dom'\nimport React, { useEffect, useState } from 'react'\nimport { ApplicationStore, NotificationStore, UserStore } from '../../stores'\nimport {\n CCard,\n CCardBody,\n CCol,\n CContainer,\n CRow,\n CBadge,\n CButton,\n CCardHeader,\n CCardText,\n CTooltip,\n} from '@coreui/react'\n\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport { GovUserData } from '../../stores/UserStore'\nimport { leftArrow } from '../../components/icons/leftArrow'\nimport { StartChatButton } from '../../components/custom'\nimport ReactHtmlParser from 'react-html-parser'\nimport { visionVisibilityIcon } from '../../assets/brand/vision_visibility_icon'\nimport { UserAvatar } from '../../components/user'\nimport { LinesOfEffortCard } from 'components/Organisms/EntityCards/LinesOfEffortCard/LinesOfEffortCard'\nimport { GovUserClassificationsCard } from 'components/Organisms/EntityCards/GovUserClassificationsCard/GovUserClassificationsCard'\nimport { GovUserConnectorChip } from 'components/Atoms/Chips/GovUserConnectorChip/GovUserConnectorChip'\n\ntype TProps = {\n userStore?: UserStore\n notificationStore?: NotificationStore\n}\n\ninterface MatchParams {\n id: string\n}\n\nexport const ViewIndividualGovUser = inject(\n ApplicationStore.names.userStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const {\n params: { id },\n } = useRouteMatch()\n const [govUser, setGovUser] = useState(undefined)\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState(false)\n\n const navigate = useHistory()\n const goBack = () => {\n navigate.goBack()\n }\n\n useEffect(() => {\n setIsLoading(true)\n props.userStore\n ?.retrieveGovUserById(id, 'technologyTypes,govUserSetting,isActive,activeChatThreadsCount')\n .then((data) => setGovUser(data))\n .catch((err) => {\n setError(err)\n props.notificationStore?.setNotificationMessage(\n 'Error retrieving gov user. Please try again.',\n 'danger',\n 3000,\n )\n })\n .finally(() => {\n setTimeout(() => {\n setIsLoading(false)\n }, 300)\n })\n }, [])\n\n const renderLocation = () => {\n let locationValues: Array = []\n if (govUser?.govUserExtendedData) {\n const { city, stateOrProvince, country } = govUser?.govUserExtendedData\n locationValues = [city, stateOrProvince, country].filter(Boolean)\n }\n\n return (\n
\n
\n

\n \n Location\n

\n
\n
\n

{locationValues.join(', ')}

\n
\n
\n )\n }\n\n const renderYearsOfExperience = () => {\n if (!govUser?.govUserExtendedData.govEmployeeSinceYear) return null\n\n let yearsOfExperience = ''\n const currentYear = new Date().getFullYear()\n const experience = currentYear - govUser?.govUserExtendedData.govEmployeeSinceYear\n\n if (experience <= 5) {\n yearsOfExperience = '0-5'\n } else if (experience > 5 && experience <= 10) {\n yearsOfExperience = '6-10'\n } else if (experience > 10 && experience <= 15) {\n yearsOfExperience = '11-15'\n } else if (experience > 15 && experience <= 20) {\n yearsOfExperience = '16-20'\n } else if (experience > 20) {\n yearsOfExperience = '20+'\n }\n return (\n
\n
\n

Years of Gov. Service

\n
\n
\n

{yearsOfExperience}

\n
\n
\n )\n }\n\n const UserInfoCard = () => {\n return (\n \n \n
User Info
\n \n
\n \n
\n
\n

Name

\n
\n
\n

{govUser?.firstName + ' ' + govUser?.lastName}

\n
\n
\n
\n
\n

Title/Rank

\n
\n
\n

{govUser?.title}

\n
\n
\n {renderYearsOfExperience()}\n
\n
\n

Organization

\n
\n
\n

{govUser?.govUserExtendedData.govUserOrganization.name}

\n
\n
\n
\n
\n

\n \n Time Zone\n

\n
\n
\n

{govUser?.timezone.split('_').join(' ')}

\n
\n
\n {renderLocation()}\n
\n
\n )\n }\n\n const ProblemStatementCard = () => {\n return (\n \n Problem Statement & Role Description\n \n
\n {govUser?.govUserExtendedData.profileDetail &&\n ReactHtmlParser(govUser?.govUserExtendedData.profileDetail)}\n
\n
\n
\n )\n }\n\n const renderUser = (user: GovUserData) => (\n \n
\n
\n \n {leftArrow()}\n \n
\n \n
\n
\n

\n {user.firstName} {user.lastName}{' '}\n

\n {user.govUserExtendedData.visionUserId && (\n \n
\n {visionVisibilityIcon()}\n
\n
\n )}\n
\n
\n
{govUser && }
\n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Technology Types\n \n \n {user.technologyTypes.map((tt) => {\n return (\n \n \n {tt.name}\n \n \n )\n })}\n \n \n \n \n \n
\n
\n )\n\n const renderError = () => (\n \n \n \n Error retrieving gov user. Please try again.\n \n \n \n )\n\n return (\n
\n \n {!error && govUser ? renderUser(govUser) : renderError()}\n \n
\n )\n }),\n)\n","import { CCard, CCol, CRow } from '@coreui/react'\nimport { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\n\nimport { AnalyticsStore, ApplicationStore, NotificationStore } from '../../../stores'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\n\ntype TProps = {\n analyticsStore?: AnalyticsStore\n notificationStore?: NotificationStore\n}\n\nexport const AdminAnalyticsResponseRateHeader = inject(\n ApplicationStore.names.analyticsStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState(false)\n const [adminAnalyticsData, setAdminAnalyticsData] = useState<{\n govUserResponseRatePctg: number | string | null\n govUserEngagedCompanies: number\n }>()\n\n const convertResponseRate =\n adminAnalyticsData?.govUserResponseRatePctg &&\n (Number(adminAnalyticsData.govUserResponseRatePctg) * 100).toFixed(0)\n\n const getGovUserEngagedCompaines = () => {\n return props.analyticsStore!.getGovUserEngagedCompaniesStatistic()\n }\n\n const getGovUserChatResponseStats = () => {\n return props.analyticsStore!.getGovUserChatResponseStatistic()\n }\n\n const getHeaderResponse = async () => {\n setIsLoading(true)\n try {\n const res = await Promise.all([getGovUserChatResponseStats(), getGovUserEngagedCompaines()])\n setAdminAnalyticsData({\n govUserResponseRatePctg: res[0].value,\n govUserEngagedCompanies: res[1].count,\n })\n } catch (err) {\n setError(true)\n props.notificationStore?.setNotificationMessage(\n 'Error retrieving response rate data. Please try again.',\n 'danger',\n 3000,\n )\n } finally {\n setTimeout(() => {\n setIsLoading(false)\n }, 300)\n }\n }\n\n useEffect(() => {\n getHeaderResponse()\n }, [])\n\n return (\n \n \n {error ? (\n
Error retrieving government user response rate data
\n ) : (\n \n \n
\n

{convertResponseRate}%

\n
\n

Average government user response rate

\n
\n
\n
\n \n {' '}\n
\n

\n {adminAnalyticsData?.govUserEngagedCompanies}\n

\n
\n

\n Companies engaged in chats with government users\n

\n
\n
\n
\n
\n )}\n
\n
\n )\n }),\n)\n","import React from 'react'\nimport { Legend, Line, LineChart, ResponsiveContainer, Tooltip, XAxis, YAxis } from 'recharts'\nimport { months } from '../../lib/helpers/utils'\n\ntype TProps = {\n data?: Array>\n chartLines: Array<{ displayName: string; dataKey: string; color: string }>\n xAxis: string\n chartId: string\n width?: number\n}\n\nconst formatLegend = (value: string) => {\n return {`${value}`}\n}\n\nconst formatXDate = (iprops: any) => {\n let date = new Date(iprops.payload.value)\n let formattedDate = `${months[date.getUTCMonth()]?.substr(0, 3)} ${date\n .getUTCFullYear()\n .toString()\n .substr(-2)}`\n return (\n \n \n {formattedDate}\n \n \n )\n}\n\nexport const IgniteLineChart = (props: TProps) => {\n const renderLines = () => {\n return props.chartLines.map((chartLine) => {\n let total = props.data?.map((a: Record) => a[chartLine.dataKey])?.slice(-1)\n let label = chartLine.displayName + ' (' + (total ? total : '0') + ')'\n\n return (\n \n )\n })\n }\n\n return (\n
\n \n \n \n \n \n {renderLines()}\n \n \n \n
\n )\n}\n","import { SBCTimelineStatistic } from '../../../../stores/AnalyticsStore'\nimport { IgniteLineChart } from '../../../lineChart/IgniteLineChart'\n\ntype TProp = {\n data?: SBCTimelineStatistic[]\n width?: number\n}\nexport const AdminAnalyticsSBCTimelineLineChart = (props: TProp) => {\n let chartLines = [\n { displayName: 'Claimed Listings', dataKey: 'claimedListingsTotal', color: '#FFB742' },\n { displayName: 'SBC Users', dataKey: 'usersTotal', color: '#f0483e' },\n { displayName: 'Total Listings', dataKey: 'listingsTotal', color: '#0070D8' },\n ]\n\n return (\n \n \n \n )\n}\n","import { CCard } from '@coreui/react'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { AnalyticsStore, ApplicationStore, NotificationStore } from '../../../stores'\nimport { SBCTimelineStatistic } from '../../../stores/AnalyticsStore'\nimport { AdminAnalyticsSBCTimelineLineChart } from './lineCharts/AdminAnalyticsSBCTimelineLineChart'\n\ntype TProps = {\n analyticsStore?: AnalyticsStore\n notificationStore?: NotificationStore\n}\nexport const AdminAnalyticsSBCTimelineStatistics = inject(\n ApplicationStore.names.analyticsStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState(undefined)\n const [sbcTimelineStatistics, setSBCTimelineStatistics] =\n useState>()\n\n useEffect(() => {\n setIsLoading(true)\n props\n .analyticsStore!.getSBCTimelineStatistics()\n .then((data) => {\n setSBCTimelineStatistics(data)\n })\n .catch((e) => {\n props.notificationStore?.setNotificationMessage(\n 'Error loading SBC Timeline Statistic Data',\n 'error',\n 3000,\n )\n setError(e)\n })\n .finally(() => {\n setTimeout(() => {\n setIsLoading(false)\n }, 300)\n })\n }, [])\n\n const LineChart = (props: { data?: SBCTimelineStatistic[] }) => {\n let noResult = (\n \n Error occurred while loading results\n \n )\n\n return (\n
\n \n \n
\n
\n \n

SBC Timeline

\n
\n {!error ? : noResult}\n
\n
\n \n \n \n )\n }\n\n return \n }),\n)\n\nexport default \n","import { PieChart, Pie, Cell, Legend } from 'recharts'\n\nexport type IgnitePieChartPlaceHolderProps = {\n name: string\n}\n\nexport const IgnitePieChartPlaceHolder = (props: IgnitePieChartPlaceHolderProps) => {\n const colors = {\n strokes: '#ECECEC',\n unclickable: '#A2A2A2',\n }\n\n const data = [{ name: 'No Results', value: 1200, fill: colors.strokes }]\n\n const style = {\n top: '50%',\n transform: 'translate(40%, -30%)',\n lineHeight: '30px',\n left: '66%',\n }\n\n const formatLegend = (value: string) => {\n return (\n !parseInt(value) && (\n {value}\n )\n )\n }\n\n return (\n
\n \n \n {data.map((_, index) => (\n \n ))}\n \n \n \n
\n )\n}\n","import { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { titleCase } from '@mobilizeyourtech/vision-core-react'\nimport { PieChart, Pie, Cell, Legend } from 'recharts'\n\nimport { IgnitePieChartPlaceHolder } from './IgnitePieChartPlaceholder'\nimport { PieChartCellDataRecord } from '../../stores/AnalyticsStore'\n\ntype TProps = {\n data?: PieChartCellDataRecord[]\n name: string\n}\n\nconst colors = [\n '#0070D8',\n '#455766',\n '#FFB742',\n '#89E2FD',\n '#00AC7E',\n '#f0483e',\n '#960700',\n '#01b189',\n '#008566',\n '#973A85',\n]\n\nconst style = {\n top: '50%',\n transform: 'translate(40%, -30%)',\n lineHeight: '30px',\n}\n\nlet filterEmptyItems = (array?: PieChartCellDataRecord[]) => {\n return array?.slice().filter(function (a) {\n return a.value > 0\n })\n}\nexport const isGraphEmpty = (data: PieChartCellDataRecord[] | undefined) => {\n let noArray = data === undefined\n let noItemsInArray = data && data?.length === 0\n let noValuesInArrayItems = data && data?.length > 0 && data.every((entry) => entry.value === 0)\n\n return noArray || noItemsInArray || noValuesInArrayItems\n}\n\nexport const IgnitePieChart = inject()(\n observer((props: TProps) => {\n const [data, setData] = useState | undefined>(props.data || [])\n\n useEffect(() => {\n setData(props.data)\n }, [props.data])\n\n const formatLegend = (value: string, entry: any) => {\n return (\n \n {`${titleCase(value)}`}\n
\n )\n }\n\n useEffect(() => {}, [window.innerWidth])\n\n const Chart = (props: TProps) => {\n let filteredData = filterEmptyItems(props.data)\n return (\n
\n \n \n {filteredData?.map((entry, index) => (\n \n ))}\n \n \n \n
\n )\n }\n\n return (\n
\n {isGraphEmpty(data) && }\n {!isGraphEmpty(data) && }\n
\n )\n }),\n)\n\nexport default IgnitePieChart\n","import { PieChartCellDataRecord, TechnologyTypeStatistic } from '../../../../stores/AnalyticsStore'\nimport IgnitePieChart from '../../../piechart/IgnitePieChart'\n\ntype TProps = {\n data?: Array\n}\n\nlet getTopTenRecordsByField = (\n array: Record[],\n field: string,\n): Array => {\n let sortOnFieldDescFunc = (a: Record, b: Record) =>\n a[field] < b[field] ? 1 : -1\n\n return array\n .slice()\n .sort(sortOnFieldDescFunc)\n .slice(0, 10)\n .map((d) => {\n return { id: d.id, testingId: field + '-' + d.id, name: d.name, value: d[field] }\n })\n}\nexport const AdminAnalyticsTechnologyTypePieCharts = (props: TProps) => {\n let focusData = props.data && getTopTenRecordsByField(props.data, 'listingCount')\n let productData = props.data && getTopTenRecordsByField(props.data, 'listingProductCount')\n let serviceData = props.data && getTopTenRecordsByField(props.data, 'listingServiceCount')\n let awardData = props.data && getTopTenRecordsByField(props.data, 'listingAwardCount')\n let govUsersData = props.data && getTopTenRecordsByField(props.data, 'usersCount')\n let visionUsersData = props.data && getTopTenRecordsByField(props.data, 'visionUsersCount')\n\n return (\n
\n
\n
\n

Technology Types At a Glance

\n
\n
\n
\n
\n

Top 10 Company Focuses

\n \n
\n
\n

Top 10 Company Products

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

Top 10 Company Services

\n \n
\n
\n

Top 10 Company Awards

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

Top 10 with Government Users

\n \n
\n
\n

Top 10 with Vision Users

\n \n
\n
\n
\n )\n}\n\nexport default AdminAnalyticsTechnologyTypePieCharts\n","import {\n CCollapse,\n CTable,\n CTableBody,\n CTableDataCell,\n CTableHead,\n CTableHeaderCell,\n CTableRow,\n} from '@coreui/react'\nimport React, { useState } from 'react'\nimport { TechnologyTypeStatistic } from '../../../../stores/AnalyticsStore'\n\ntype TProps = {\n data?: Array\n}\n\nexport const AdminAnalyticsTechnologyTypeTable = (props: TProps) => {\n const [visible, setVisible] = useState(false)\n\n const tableRow = (rowData: TechnologyTypeStatistic) => {\n let percent = (_string: string) => {\n return (Number(_string) * 100).toString().substr(0, 2) + '%'\n }\n let listingPct = ' (' + percent(rowData.listingPct) + ')'\n let listingProductPct = ' (' + percent(rowData.listingProductPct) + ')'\n let listingServicePct = ' (' + percent(rowData.listingServicePct) + ')'\n let usersPct = ' (' + percent(rowData.usersPct) + ')'\n let visionUsersPct = ' (' + percent(rowData.visionUsersPct) + ')'\n\n return (\n \n {rowData.name}\n \n {rowData.listingCount}\n {listingPct}\n \n \n {rowData.listingProductCount}\n {listingProductPct}\n \n \n {rowData.listingServiceCount}\n {listingServicePct}\n \n \n {rowData.usersCount}\n {usersPct}\n \n \n {rowData.visionUsersCount}\n {visionUsersPct}\n \n \n )\n }\n\n const techTypeTable = () => {\n if (!visible) {\n return\n }\n return (\n \n \n \n \n Technology Type\n \n Company Focuses\n Company Products\n Company Services\n Government Users\n Vision Users\n \n \n \n {props.data?.map((row) => {\n return tableRow(row)\n })}\n \n \n )\n }\n\n const tableToggleMessage = () => {\n if (visible) {\n return (\n
\n See Less Technology Types Data\n \n
\n )\n } else {\n return (\n
\n See All Technology Types Data\n \n
\n )\n }\n }\n\n return (\n
\n
\n {\n setVisible(!visible)\n }}\n >\n {tableToggleMessage()}\n \n \n {techTypeTable()}\n \n
\n )\n}\n\nexport default AdminAnalyticsTechnologyTypeTable\n","import { CCard } from '@coreui/react'\nimport { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\n\nimport { AnalyticsStore, ApplicationStore, NotificationStore } from '../../../stores'\nimport { TechnologyTypeStatistic } from '../../../stores/AnalyticsStore'\n\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport { AdminAnalyticsTechnologyTypePieCharts } from './pieCharts/AdminAnalyticsTechnologyTypePieCharts'\nimport { AdminAnalyticsTechnologyTypeTable } from './tables/AdminAnalyticsTechnologyTypeTable'\n\ntype TProps = {\n analyticsStore?: AnalyticsStore\n notificationStore?: NotificationStore\n}\n\nexport const AdminAnalyticsTechnologyTypeStatistics = inject(\n ApplicationStore.names.analyticsStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [isLoading, setIsLoading] = useState(false)\n const [technologyTypeStatistics, setTechnologyTypeStatistics] = useState<\n Array\n >([])\n\n useEffect(() => {\n setIsLoading(true)\n props\n .analyticsStore!.getTechnologyTypeStatistics()\n .then((data) => {\n setTechnologyTypeStatistics(data)\n })\n .catch(() => {\n props.notificationStore?.setNotificationMessage(\n 'Error loading Technology Type Statistic Data',\n 'error',\n 3000,\n )\n })\n .finally(() => {\n setTimeout(() => {\n setIsLoading(false)\n }, 300)\n })\n }, [])\n\n return (\n \n \n \n \n \n \n \n \n )\n }),\n)\n","import { GovUsersTimelineStatistic } from '../../../../stores/AnalyticsStore'\nimport { IgniteLineChart } from '../../../lineChart/IgniteLineChart'\n\ntype TProp = {\n data?: GovUsersTimelineStatistic[]\n width?: number\n}\nexport const AdminAnalyticsGovUsersTimelineLineChart = (props: TProp) => {\n let chartLines = [\n { displayName: 'VISION Users', dataKey: 'visionUsersTotal', color: '#f0483e' },\n { displayName: 'Total Government Users', dataKey: 'usersTotal', color: '#0070D8' },\n ]\n\n return (\n \n \n \n )\n}\n","import { CCard } from '@coreui/react'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { AnalyticsStore, ApplicationStore, NotificationStore } from '../../../stores'\nimport { GovUsersTimelineStatistic } from '../../../stores/AnalyticsStore'\nimport { AdminAnalyticsGovUsersTimelineLineChart } from './lineCharts/AdminAnalyticsGovUsersTimelineLineChart'\n\ntype TProps = {\n analyticsStore?: AnalyticsStore\n notificationStore?: NotificationStore\n}\nexport const AdminAnalyticsGovUsersTimelineStatistics = inject(\n ApplicationStore.names.analyticsStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState(undefined)\n const [govUsersTimelineStatistics, setGovUsersTimelineStatistics] =\n useState>()\n\n useEffect(() => {\n setIsLoading(true)\n props\n .analyticsStore!.getGovUsersTimelineStatistics()\n .then((data) => {\n setGovUsersTimelineStatistics(data)\n })\n .catch((e) => {\n props.notificationStore?.setNotificationMessage(\n 'Error loading Gov User Timeline Statistic Data',\n 'error',\n 3000,\n )\n setError(e)\n })\n .finally(() => {\n setTimeout(() => {\n setIsLoading(false)\n }, 300)\n })\n }, [])\n\n const LineChart = (props: { data?: GovUsersTimelineStatistic[] }) => {\n let noResult = (\n \n Error occurred while loading results\n \n )\n\n return (\n
\n \n \n
\n
\n \n

Government Timelines

\n
\n {!error ? (\n \n ) : (\n noResult\n )}\n
\n
\n \n \n \n )\n }\n\n return \n }),\n)\n\nexport default \n","import {\n CTable,\n CTableBody,\n CTableDataCell,\n CTableHead,\n CTableHeaderCell,\n CTableRow,\n} from '@coreui/react'\nimport { ListingPageViewStatistic } from '../../../../stores/AnalyticsStore'\n\ntype TProps = {\n data?: Array\n}\n\nexport const AdminAnalyticsListingPageViewsTable = (props: TProps) => {\n const tableRow = (rowData: ListingPageViewStatistic) => {\n return (\n \n \n

{rowData.name}

\n
\n \n

{rowData.pageViews}

\n
\n
\n )\n }\n\n const listingPageViewTable = () => {\n return (\n \n \n \n \n

SBC Organization

\n
\n \n

Number of Page Views

\n
\n
\n
\n \n {props.data?.map((row) => {\n return tableRow(row)\n })}\n \n \n )\n }\n\n return
{listingPageViewTable()}
\n}\n\nexport default AdminAnalyticsListingPageViewsTable\n","import { CCard } from '@coreui/react'\nimport React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\n\nimport { AnalyticsStore, ApplicationStore, NotificationStore } from '../../../stores'\nimport { ListingPageViewStatistic } from '../../../stores/AnalyticsStore'\n\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport AdminAnalyticsListingPageViewsTable from './tables/AdminAnalyticsListingPageViewsTable'\n\ntype TProps = {\n analyticsStore?: AnalyticsStore\n notificationStore?: NotificationStore\n}\n\nexport const AdminAnalyticsListingPageViewsStatistics = inject(\n ApplicationStore.names.analyticsStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState(undefined)\n const [listingPageViewsStatistics, setListingPageViewsStatistics] = useState<\n Array\n >([])\n\n useEffect(() => {\n setIsLoading(true)\n props\n .analyticsStore!.getListingPageViewStatistics({ page: 1, perPage: 10 })\n .then((response) => {\n setListingPageViewsStatistics(response.data)\n })\n .catch((e) => {\n props.notificationStore?.setNotificationMessage(\n 'Error loading Listing Page Views Statistic Data',\n 'error',\n 3000,\n )\n setError(e)\n })\n .finally(() => {\n setTimeout(() => {\n setIsLoading(false)\n }, 300)\n })\n }, [])\n const ListingPageViewsTable = (props: { data?: ListingPageViewStatistic[] }) => {\n let noResult = (\n \n Error occurred while loading results\n \n )\n return (\n \n \n \n
\n
\n \n

Top SBC Organization Views

\n
\n {!error ? : noResult}\n
\n \n
\n
\n \n )\n }\n return \n }),\n)\n\nexport default \n","import { ActiveConversationStatistic } from '../../../../stores/AnalyticsStore'\nimport { IgniteLineChart } from '../../../lineChart/IgniteLineChart'\n\ntype TProp = {\n data?: ActiveConversationStatistic[]\n width?: number\n}\nexport const ActiveConversationStatisticLineChart = (props: TProp) => {\n let chartLines = [\n { displayName: 'Active Conversations', dataKey: 'activeConversations', color: '#f0483e' },\n { displayName: 'Messages Sent', dataKey: 'messagesSent', color: '#0070D8' },\n ]\n\n return (\n \n \n \n )\n}\n","import { CCard } from '@coreui/react'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { AnalyticsStore, ApplicationStore, NotificationStore } from '../../../stores'\nimport { ActiveConversationStatistic } from '../../../stores/AnalyticsStore'\nimport { ActiveConversationStatisticLineChart } from './lineCharts/ActiveConversationStatisticLineChart'\n\ntype TProps = {\n analyticsStore?: AnalyticsStore\n notificationStore?: NotificationStore\n}\nexport const ActiveConversationStatistics = inject(\n ApplicationStore.names.analyticsStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState(undefined)\n const [activeConversationStatistics, setActiveConversationStatistics] =\n useState>()\n\n useEffect(() => {\n setIsLoading(true)\n props\n .analyticsStore!.getActiveConversationStatistics()\n .then((data) => {\n setActiveConversationStatistics(data)\n })\n .catch((e) => {\n props.notificationStore?.setNotificationMessage(\n 'Error loading Active Conversation Statistic Data',\n 'error',\n 3000,\n )\n setError(e)\n })\n .finally(() => {\n setTimeout(() => {\n setIsLoading(false)\n }, 300)\n })\n }, [])\n\n const LineChart = (props: { data?: ActiveConversationStatistic[] }) => {\n let noResult = (\n \n Error occurred while loading results\n \n )\n\n return (\n
\n \n \n
\n
\n \n

Active Conversations

\n
\n {!error ? : noResult}\n
\n
\n \n \n \n )\n }\n\n return \n }),\n)\n\nexport default \n","import { DafUsersStatistic } from '../../../../stores/AnalyticsStore'\nimport { IgniteLineChart } from '../../../lineChart/IgniteLineChart'\n\ntype TProp = {\n data?: DafUsersStatistic[]\n width?: number\n}\nexport const DafUserStatisticsLineChart = (props: TProp) => {\n let chartLines = [\n { displayName: 'DAF Logins', dataKey: 'userLogins', color: '#f0483e' },\n { displayName: 'DAF Messages Sent', dataKey: 'messagesSent', color: '#0070D8' },\n ]\n\n return (\n \n \n \n )\n}\n","import { CCard } from '@coreui/react'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { AnalyticsStore, ApplicationStore, NotificationStore } from '../../../stores'\nimport { DafUsersStatistic } from '../../../stores/AnalyticsStore'\nimport { DafUserStatisticsLineChart } from './lineCharts/DafUserStatisticLineChart'\n\ntype TProps = {\n analyticsStore?: AnalyticsStore\n notificationStore?: NotificationStore\n}\nexport const DafUsersStatistics = inject(\n ApplicationStore.names.analyticsStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState(undefined)\n const [dafUserStatistics, setDafUserStatistics] = useState>()\n\n useEffect(() => {\n setIsLoading(true)\n props\n .analyticsStore!.getDafUserStatistics()\n .then((data) => {\n setDafUserStatistics(data)\n })\n .catch((e) => {\n props.notificationStore?.setNotificationMessage(\n 'Error loading DAF User Statistic Data',\n 'error',\n 3000,\n )\n setError(e)\n })\n .finally(() => {\n setTimeout(() => {\n setIsLoading(false)\n }, 300)\n })\n }, [])\n\n const LineChart = (props: { data?: DafUsersStatistic[] }) => {\n let noResult = (\n \n Error occurred while loading results\n \n )\n\n return (\n
\n \n \n
\n
\n \n

DAF Users

\n
\n {!error ? : noResult}\n
\n
\n \n \n \n )\n }\n\n return \n }),\n)\n\nexport default \n","import { SbcUsersStatistic } from '../../../../stores/AnalyticsStore'\nimport { IgniteLineChart } from '../../../lineChart/IgniteLineChart'\n\ntype TProp = {\n data?: SbcUsersStatistic[]\n width?: number\n}\nexport const SbcUserStatisticLineChart = (props: TProp) => {\n let chartLines = [\n { displayName: 'SBC Logins', dataKey: 'userLogins', color: '#f0483e' },\n { displayName: 'SBC Messages Sent', dataKey: 'messagesSent', color: '#0070D8' },\n ]\n\n return (\n
\n \n
\n )\n}\n","import { CCard } from '@coreui/react'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { AnalyticsStore, ApplicationStore, NotificationStore } from '../../../stores'\nimport { SbcUsersStatistic } from '../../../stores/AnalyticsStore'\nimport { SbcUserStatisticLineChart } from './lineCharts/SbcUserStatisticLineChart'\n\ntype TProps = {\n analyticsStore?: AnalyticsStore\n notificationStore?: NotificationStore\n}\nexport const SbcUserStatistics = inject(\n ApplicationStore.names.analyticsStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState(undefined)\n const [sbcUserStatistics, setSbcUserStatistics] = useState>()\n\n useEffect(() => {\n setIsLoading(true)\n props\n .analyticsStore!.getSbcUserStatistics()\n .then((data) => {\n setSbcUserStatistics(data)\n })\n .catch((e) => {\n props.notificationStore?.setNotificationMessage(\n 'Error loading SBC User Statistic Data',\n 'error',\n 3000,\n )\n setError(e)\n })\n .finally(() => {\n setTimeout(() => {\n setIsLoading(false)\n }, 300)\n })\n }, [])\n\n const LineChart = (props: { data?: SbcUsersStatistic[] }) => {\n let noResult = (\n \n Error occurred while loading results\n \n )\n\n return (\n
\n \n \n
\n
\n \n

SBC Users

\n
\n {!error ? : noResult}\n
\n
\n \n \n \n )\n }\n\n return \n }),\n)\n\nexport default \n","import {\n CTable,\n CTableBody,\n CTableDataCell,\n CTableHead,\n CTableHeaderCell,\n CTableRow,\n} from '@coreui/react'\nimport { OrganizationUserStatistic } from '../../../../stores/AnalyticsStore'\n\ntype TProps = {\n data?: Array\n}\n\nexport const OrganizationUserStatisticTable = (props: TProps) => {\n const tableRow = (rowData: OrganizationUserStatistic) => {\n return (\n \n \n {rowData.organization}\n \n \n

{rowData.usersCount}

\n \n
\n )\n }\n\n const OrganizationUsersTable = () => {\n return (\n \n \n \n \n

Organization

\n
\n \n

Number of Users

\n
\n
\n
\n \n {props.data?.map((row) => {\n return tableRow(row)\n })}\n \n \n )\n }\n\n return
{OrganizationUsersTable()}
\n}\n\nexport default OrganizationUserStatisticTable\n","import { CCard } from '@coreui/react'\nimport React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\n\nimport { AnalyticsStore, ApplicationStore, NotificationStore } from '../../../stores'\nimport { OrganizationUserStatistic } from '../../../stores/AnalyticsStore'\n\nimport { PaginationData, SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport OrganizationUserTable from './tables/OrganizationUserStatisticTable'\nimport { NumberParam, useQueryParams, withDefault } from 'use-query-params'\nimport { Pagination } from '../../custom'\n\ntype TProps = {\n analyticsStore?: AnalyticsStore\n notificationStore?: NotificationStore\n}\n\nexport const OrganizationUserStatistics = inject(\n ApplicationStore.names.analyticsStore,\n ApplicationStore.names.notificationStore,\n)(\n observer((props: TProps) => {\n const [organizationUserStatistics, setOrganizationUserStatistics] = useState<\n Array\n >([])\n const [pagination, setPagination] = useState(undefined)\n const [paginationParams] = useQueryParams({\n page: withDefault(NumberParam, 1),\n perPage: withDefault(NumberParam, 10),\n })\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState(undefined)\n\n const loadData = () => {\n setIsLoading(true)\n props.analyticsStore\n ?.getOrganizationUserStatistics(paginationParams)\n .then((response) => {\n setOrganizationUserStatistics(response.data)\n setPagination(response.pagination)\n })\n .catch((e) => {\n props.notificationStore?.setNotificationMessage(\n 'Error loading Organization User Statistic Data',\n 'error',\n 3000,\n )\n setError(e)\n })\n .finally(() => {\n setTimeout(() => {\n setIsLoading(false)\n }, 300)\n })\n }\n\n useEffect(() => {\n loadData()\n }, [paginationParams])\n\n const Table = (props: { data?: OrganizationUserStatistic[] }) => {\n let noResult = (\n \n Error occurred while loading results\n \n )\n return (\n \n \n \n
\n
\n \n

Organization Users

\n
\n {!error ? : noResult}\n
\n \n
\n
\n {pagination && }\n
\n
\n \n )\n }\n return \n }),\n)\n\nexport default \n","import { AdminAnalyticsResponseRateHeader } from '../../components/admin/adminAnalytics/AdminAnalyticsResponseRateStatistics'\nimport { AdminAnalyticsSBCTimelineStatistics } from '../../components/admin/adminAnalytics/AdminAnalyticsSBCTimelineStatistics'\nimport { AdminAnalyticsTechnologyTypeStatistics } from '../../components/admin/adminAnalytics/AdminAnalyticsTechnologyTypeStatistics'\nimport { AdminAnalyticsGovUsersTimelineStatistics } from '../../components/admin/adminAnalytics/AdminAnalyticsGovUserTimelineStatistics'\nimport { AdminAnalyticsListingPageViewsStatistics } from '../../components/admin/adminAnalytics/AdminAnalyticsListingPageViewsStatistics'\nimport { ActiveConversationStatistics } from '../../components/admin/adminAnalytics/ActiveConversationStatistics'\nimport { DafUsersStatistics } from '../../components/admin/adminAnalytics/DafUsersStatistics'\nimport { SbcUserStatistics } from '../../components/admin/adminAnalytics/SbcUsersStatistics'\nimport { OrganizationUserStatistics } from '../../components/admin/adminAnalytics/OrganizationUserStatistic'\n\nexport const AdminAnalytics = () => {\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n )\n}\n","import { SimpleCollapse } from '@mobilizeyourtech/vision-core-react'\nimport React from 'react'\nimport MobilizeVISIONLogo from '../../assets/brand/Ignite_Logo_Mobilize_Full_Color.png'\nimport { visionVisibilityIcon } from '../../assets/brand/vision_visibility_icon'\nimport { CCard, CCardBody, CLink } from '@coreui/react'\nimport { leftArrow } from '../../components/icons/leftArrow'\nimport { Link } from 'react-router-dom'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore } from '../../stores'\n\nconst choices = [\n {\n icon: visionVisibilityIcon('vision-badge-blue'),\n header: 'I have a VISION Account',\n nextStep: 'Connect your VISION account to Ignite',\n instructions: (siteSettings: { [key: string]: any }) => {\n return (\n
    \n
  1. \n \n Login\n {' '}\n to your VISION account\n
  2. \n
  3. Click "Ignite SBIR|STTR" in the left sidebar
  4. \n
  5. \n On the Ignite search page OR an Ignite storefront, click the "View in Ignite"\n button\n
  6. \n
  7. Follow the instructions to create your Ignite account
  8. \n
\n )\n },\n },\n {\n icon: visionVisibilityIcon('vision-badge-grey'),\n header: 'My organization has a VISION license, but I have not created my account',\n nextStep: 'Create a VISION account and connect it to Ignite',\n instructions: (siteSettings: { [key: string]: any }) => (\n
\n
    \n
  1. \n \n Click here\n {' '}\n for instructions on how to create your VISION account\n
  2. \n
  3. Click "Ignite SBIR|STTR" in the left sidebar
  4. \n
  5. \n On the Ignite search page OR an Ignite storefront, click the "View in Ignite"\n button\n
  6. \n
  7. Follow the instructions to create your Ignite account
  8. \n
\n\n
\n Not sure if your organization has a VISION license?\n
\n\n
\n Click here to email us and we'll help\n you find out.\n
\n
\n ),\n },\n {\n icon: ,\n header: 'My organization does not have a VISION license',\n nextStep: (\n <>\n \n Click here\n {' '}\n to create an Ignite account\n \n ),\n },\n]\n\nexport type SignupChoiceProps = {\n applicationStore?: ApplicationStore\n}\nexport const SignupChoice = inject('applicationStore')(\n observer((props: SignupChoiceProps) => {\n return (\n
\n
\n \n {leftArrow()}\n \n \n
\n\n
\n
\n
\n Choose the option that best represents you\n
\n
\n
\n \n

\n {/*Some SBIR/STTR companies choose to only show their storefronts to users with VISION*/}\n {/*accounts connected. Connecting your VISION account to your Ignite account will*/}\n {/*ensure that you can view these storefronts.*/}\n {/*
*/}\n {/*
*/}\n VISION users get a VISION-verified badge {visionVisibilityIcon()}, establishing\n greater trust and recognition in Ignite.\n

\n
\n
\n
\n\n
\n {choices.map((choice, idx) => (\n \n \n {choice.icon}\n
\n {choice.header}\n
\n
Next Step: {choice.nextStep}
\n\n {choice.instructions && (\n \n {choice.instructions(props.applicationStore!.siteSettings!)}\n \n )}\n
\n
\n ))}\n
\n
\n )\n }),\n)\n"],"sourceRoot":""}